共享类型
#[cxx::bridge]
mod ffi {
#[derive(Clone, Debug, Hash)]
struct PlayingCard {
suit: Suit,
value: u8, // A=1, J=11, Q=12, K=13
}
enum Suit {
Clubs,
Diamonds,
Hearts,
Spades,
}
}
- 仅支持类似 C 函数(单元)的枚举。
- 共享类型的
#[derive()]
支持有限数量的 trait。系统还会针对 C++ 代码生成相应的功能,例如,如果您派生了Hash
,还会为相应的 C++ 类型生成std::hash
实现。