It seems reasonable to want to derive it for a variant, but want to provide your own for the containing enum or such, for example.
60 lines
821 B
Rust
60 lines
821 B
Rust
/// cbindgen:derive-ostream
|
|
#[repr(C)]
|
|
pub struct A(i32);
|
|
|
|
/// cbindgen:field-names=[x, y]
|
|
/// cbindgen:derive-ostream
|
|
#[repr(C)]
|
|
pub struct B(i32, f32);
|
|
|
|
/// cbindgen:derive-ostream
|
|
#[repr(u32)]
|
|
pub enum C {
|
|
X = 2,
|
|
Y,
|
|
}
|
|
|
|
/// cbindgen:derive-ostream
|
|
#[repr(C)]
|
|
pub struct D {
|
|
List: u8,
|
|
Of: usize,
|
|
Things: B,
|
|
}
|
|
|
|
/// cbindgen:derive-ostream
|
|
#[repr(u8)]
|
|
pub enum F {
|
|
Foo(i16),
|
|
Bar { x: u8, y: i16 },
|
|
Baz
|
|
}
|
|
|
|
/// cbindgen:derive-ostream
|
|
#[repr(C, u8)]
|
|
pub enum H {
|
|
Hello(i16),
|
|
There { x: u8, y: i16 },
|
|
Everyone
|
|
}
|
|
|
|
/// cbindgen:derive-ostream=false
|
|
#[repr(C, u8)]
|
|
pub enum I {
|
|
/// cbindgen:derive-ostream=true
|
|
ThereAgain { x: u8, y: i16 },
|
|
SomethingElse
|
|
}
|
|
|
|
#[no_mangle]
|
|
pub extern "C" fn root(
|
|
a: A,
|
|
b: B,
|
|
c: C,
|
|
d: D,
|
|
f: F,
|
|
h: H,
|
|
i: I,
|
|
) { }
|
|
|