共有の型

#[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 の実装も生成されます。