diff options
Diffstat (limited to '')
-rw-r--r-- | tests/rust/asserted_cast.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/rust/asserted_cast.rs b/tests/rust/asserted_cast.rs new file mode 100644 index 0000000..983131b --- /dev/null +++ b/tests/rust/asserted_cast.rs @@ -0,0 +1,44 @@ +/// cbindgen:prefix-with-name +#[repr(C, u8)] +pub enum H { + /// cbindgen:variant-mut-cast-attributes=MY_ATTRS + Foo(i16), + /// cbindgen:variant-const-cast-attributes=MY_ATTRS + Bar { x: u8, y: i16 }, + /// cbindgen:variant-is-attributes=MY_ATTRS + Baz +} + +/// cbindgen:prefix-with-name +#[repr(C, u8, u16)] +pub enum I { + /// cbindgen:variant-constructor-attributes=MY_ATTRS + Foo(i16), + /// cbindgen:eq-attributes=MY_ATTRS + Bar { x: u8, y: i16 }, + Baz +} + +/// cbindgen:prefix-with-name +#[repr(C, u8)] +pub enum J { + Foo(i16), + Bar { x: u8, y: i16 }, + Baz +} + +/// cbindgen:prefix-with-name +#[repr(u8)] +pub enum K { + Foo(i16), + Bar { x: u8, y: i16 }, + Baz +} + +#[no_mangle] +pub extern "C" fn foo( + h: H, + i: I, + j: J, + k: K, +) {} |