| #[repr(C, u8)] | |
| pub enum TT { | |
| AA(u64, u64), | |
| BB, | |
| } | |
| #[repr(C, u8)] | |
| pub enum T { | |
| A(u64), | |
| B, | |
| } | |
| extern "C" { | |
| pub fn t_add(a: T, b: T) -> u64; | |
| pub fn tt_add(a: TT, b: TT) -> u64; | |
| } | |
| fn main() { | |
| assert_eq!(33, unsafe { tt_add(TT::AA(1, 2), TT::AA(10, 20)) }); | |
| assert_eq!(11, unsafe { t_add(T::A(1), T::A(10)) }); | |
| } |