#[repr(u8)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[allow(missing_docs)]
pub enum PositionAreaAxis {
Horizontal = 0b000,
Vertical = 0b001,
X = 0b010,
Y = 0b011,
Inline = 0b110,
Block = 0b111,
}
#[repr(u8)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum PositionAreaTrack {
Start = 0b001,
SpanStart = 0b011,
End = 0b100,
SpanEnd = 0b110,
Center = 0b010,
SpanAll = 0b111,
}
pub const AXIS_SHIFT: usize = 3;
pub const SELF_WM_SHIFT: usize = 6;
pub const SELF_WM: u8 = 1u8 << 6;
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
#[allow(missing_docs)]
#[repr(u8)]
pub enum PositionAreaKeyword {
#[default]
None = 0,
Center = PositionAreaTrack::Center as u8,
SpanAll = PositionAreaTrack::SpanAll as u8,
Start = PositionAreaTrack::Start as u8,
End = PositionAreaTrack::End as u8,
SpanStart = PositionAreaTrack::SpanStart as u8,
SpanEnd = PositionAreaTrack::SpanEnd as u8,
Top = ((PositionAreaAxis::Vertical as u8) << AXIS_SHIFT) | PositionAreaTrack::Start as u8,
Bottom = ((PositionAreaAxis::Vertical as u8) << AXIS_SHIFT) | PositionAreaTrack::End as u8,
}
#[no_mangle]
extern "C" fn root(_: PositionAreaKeyword, _: PositionAreaTrack, _: PositionAreaAxis) {}