共用型別

#[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()] 只支援部分特徵。系統也會為 C++ 程式碼產生相對應的功能。舉例來說,如果衍生出 Hash,也會為相應的 C++ 型別產生 std::hash 的實作項目。