cbindgen/tests/rust/const_generics_thru.rs
2022-05-25 10:41:44 +02:00

23 lines
465 B
Rust

// Propagating const arguments through generics that use generics.
#[repr(C)]
pub struct Inner<const N: usize> {
pub bytes: [u8; N],
}
#[repr(C)]
pub struct Outer<const N: usize> {
pub inner: Inner<N>, // don't declare two different structs named `Inner_N`
}
#[no_mangle]
pub extern "C" fn one() -> Outer<1> {
Outer { inner: Inner { bytes: [0] } }
}
#[no_mangle]
pub extern "C" fn two() -> Outer<2> {
Outer { inner: Inner { bytes: [0, 0] } }
}