Спільні переліки
#[cxx::bridge]
mod ffi {
enum Suit {
Clubs,
Diamonds,
Hearts,
Spades,
}
}
Згенерований Rust
Згенерований C++:
enum class Suit : uint8_t {
Clubs = 0,
Diamonds = 1,
Hearts = 2,
Spades = 3,
};
Speaker Notes
- З боку Rust, код, що генерується для спільних переліків, насправді є структурою, що обгортає числове значення. Це пов’язано з тим, що у C++ це не є UB для класу переліку зберігати значення, відмінне від усіх перелічених варіантів, і наше представлення у Rust повинно мати таку саму поведінку.