Files
cbindgen/tests/rust/bitflags.rs
T
Kartikaya Gupta 977d95b0ff Add failing scenario to test
A u32 bitflags structure should allow a 1<<31 value. However, with
current cbindgen this produces a compiler error with latest clang, because
1<<31 is treated as a signed value (-2147483648) which cannot be narrowed
back into a uint32_t without a cast.
2020-07-31 16:22:48 +02:00

31 lines
748 B
Rust

bitflags! {
/// Constants shared by multiple CSS Box Alignment properties
///
/// These constants match Gecko's `NS_STYLE_ALIGN_*` constants.
#[derive(MallocSizeOf, ToComputedValue)]
#[repr(C)]
pub struct AlignFlags: u8 {
/// 'auto'
const AUTO = 0;
/// 'normal'
const NORMAL = 1;
/// 'start'
const START = 1 << 1;
/// 'end'
const END = 1 << 2;
/// 'flex-start'
const FLEX_START = 1 << 3;
}
}
bitflags! {
#[repr(C)]
pub struct DebugFlags: u32 {
/// Flag with the topmost bit set of the u32
const BIGGEST_ALLOWED = 1 << 31;
}
}
#[no_mangle]
pub extern "C" fn root(flags: AlignFlags, bigger_flags: DebugFlags) {}