pub struct PropTag(pub u32);
impl PropTag {
pub const fn new(prop_id: u16, prop_type: u16) -> Self {
Self(((prop_id as u32) << 16) | (prop_type as u32))
}
pub const fn prop_id(&self) -> u16 {
((self.0 & 0xFFFF_0000) >> 16) as u16
}
pub const fn prop_type(&self) -> u16 {
(self.0 & 0xFFFF) as u16
}
}
impl From<u32> for PropTag {
fn from(value: u32) -> Self {
Self(value)
}
}
impl From<PropTag> for u32 {
fn from(value: PropTag) -> Self {
value.0
}
}