Спільні типи

#[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, } }

Speaker Notes

  • Підтримуються тільки C-подібні (одиничні) переліки.
  • Для #[derive()] на спільних типах підтримується обмежена кількість трейтів. Відповідна функціональність також генерується для C++ коду, наприклад, якщо ви виводите Hash, також генерується реалізація std::hash для відповідного типу C++.