共享类型

1. #[cxx::bridge]
2. mod ffi {
3. #[derive(Clone, Debug, Hash)]
4. struct PlayingCard {
5. suit: Suit,
6. value: u8,  // A=1, J=11, Q=12, K=13
7. }

9. enum Suit {
10. Clubs,
11. Diamonds,
12. Hearts,
13. Spades,
14. }
15. }
  • 仅支持类似 C 函数(单元)的枚举。
  • 共享类型的 #[derive()] 支持有限数量的 trait。系统还会针对 C++ 代码生成相应的功能,例如,如果您派生了 Hash,还会为相应的 C++ 类型生成 std::hash 实现。