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,
}
}
- 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 derivasHash
, también genera una implementación destd::hash
para el tipo de C++ correspondiente.