Tipos de datos compartidos

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

  • Solo se admiten enums tipo C (unidad).
  • Un número limitado de traits es compatible con #[derive()] en los tipos compartidos. La función correspondiente también se genera para el código C++; por ejemplo, si derivas Hash, también genera una implementación de std::hash para el tipo de C++ correspondiente.