pub const PROPERTY_INVALID: i32 = 1 << 0;
pub const PROPERTY_PRIVILEGED: i32 = 1 << 3;
pub const PROPERTY_GRID: i32 = 1 << 4;
pub const PROPERTY_PRIVATE: i32 = 1 << 5;
pub const PROPERTY_DISABLED: i32 = 1 << 6;
pub const PROPERTY_SUSPENDED: i32 = 1 << 7;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
#[expect(
clippy::module_name_repetitions,
reason = "the type is going to be used outside this module"
)]
pub struct ExperienceProperties(pub i32);
impl ExperienceProperties {
#[must_use]
pub const fn contains(self, flag: i32) -> bool {
self.0 & flag == flag
}
#[must_use]
pub const fn is_invalid(self) -> bool {
self.contains(PROPERTY_INVALID)
}
#[must_use]
pub const fn is_privileged(self) -> bool {
self.contains(PROPERTY_PRIVILEGED)
}
#[must_use]
pub const fn is_grid(self) -> bool {
self.contains(PROPERTY_GRID)
}
#[must_use]
pub const fn is_private(self) -> bool {
self.contains(PROPERTY_PRIVATE)
}
#[must_use]
pub const fn is_disabled(self) -> bool {
self.contains(PROPERTY_DISABLED)
}
#[must_use]
pub const fn is_suspended(self) -> bool {
self.contains(PROPERTY_SUSPENDED)
}
}