| bitflags! { |
| /// Constants shared by multiple CSS Box Alignment properties |
| /// |
| /// These constants match Gecko's `NS_STYLE_ALIGN_*` constants. |
| #[derive(MallocSizeOf)] |
| #[repr(C)] |
| pub struct AlignFlags: u8 { |
| /// 'auto' |
| const AUTO = 0; |
| /// 'normal' |
| const NORMAL = 1; |
| /// 'start' |
| const START = 1 << 1; |
| /// 'end' |
| const END = 1 << 2; |
| const ALIAS = Self::END.bits; |
| /// 'flex-start' |
| const FLEX_START = 1 << 3; |
| const MIXED = 1 << 4 | AlignFlags::FLEX_START.bits | AlignFlags::END.bits; |
| const MIXED_SELF = 1 << 5 | AlignFlags::FLEX_START.bits | AlignFlags::END.bits; |
| } |
| } |
| |
| /// An arbitrary identifier for a native (OS compositor) surface |
| #[repr(C)] |
| #[derive(Debug, Copy, Clone, Hash, Eq, PartialEq)] |
| pub struct NativeSurfaceId(pub u64); |
| |
| impl NativeSurfaceId { |
| /// A special id for the native surface that is used for debug / profiler overlays. |
| pub const DEBUG_OVERLAY: NativeSurfaceId = NativeSurfaceId(u64::MAX); |
| } |
| |
| #[repr(C)] |
| #[derive(Debug, Copy, Clone, Hash, Eq, PartialEq)] |
| #[cfg_attr(feature = "capture", derive(Serialize))] |
| #[cfg_attr(feature = "replay", derive(Deserialize))] |
| pub struct NativeTileId { |
| pub surface_id: NativeSurfaceId, |
| pub x: i32, |
| pub y: i32, |
| } |
| |
| impl NativeTileId { |
| /// A special id for the native surface that is used for debug / profiler overlays. |
| pub const DEBUG_OVERLAY: NativeTileId = NativeTileId { |
| surface_id: NativeSurfaceId::DEBUG_OVERLAY, |
| x: 0, |
| y: 0, |
| }; |
| } |
| |
| #[no_mangle] |
| pub extern "C" fn root(flags: AlignFlags, tile: NativeTileId) {} |