#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct StructTypeFlag(pub u16);
impl StructTypeFlag {
pub const IS_FINAL: u16 = 1 << 0;
pub const IS_APPENDABLE: u16 = 1 << 1;
pub const IS_MUTABLE: u16 = 1 << 2;
pub const IS_NESTED: u16 = 1 << 3;
pub const IS_AUTOID_HASH: u16 = 1 << 4;
#[must_use]
pub const fn empty() -> Self {
Self(0)
}
#[must_use]
pub const fn has(self, bit: u16) -> bool {
(self.0 & bit) != 0
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct StructMemberFlag(pub u16);
impl StructMemberFlag {
pub const TRY_CONSTRUCT1: u16 = 1 << 0;
pub const TRY_CONSTRUCT2: u16 = 1 << 1;
pub const IS_EXTERNAL: u16 = 1 << 2;
pub const IS_OPTIONAL: u16 = 1 << 3;
pub const IS_MUST_UNDERSTAND: u16 = 1 << 4;
pub const IS_KEY: u16 = 1 << 5;
pub const IS_DEFAULT: u16 = 1 << 6;
#[must_use]
pub const fn empty() -> Self {
Self(0)
}
#[must_use]
pub const fn has(self, bit: u16) -> bool {
(self.0 & bit) != 0
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct UnionTypeFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct UnionMemberFlag(pub u16);
impl UnionMemberFlag {
pub const IS_DEFAULT: u16 = 1 << 6;
#[must_use]
pub const fn empty() -> Self {
Self(0)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct UnionDiscriminatorFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct EnumTypeFlag(pub u16);
impl EnumTypeFlag {
pub const IGNORE_LITERAL_NAMES: u16 = 1 << 0;
#[must_use]
pub const fn empty() -> Self {
Self(0)
}
#[must_use]
pub const fn has(self, bit: u16) -> bool {
(self.0 & bit) != 0
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct EnumLiteralFlag(pub u16);
impl EnumLiteralFlag {
pub const IS_DEFAULT_LITERAL: u16 = 1 << 0;
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct BitmaskTypeFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct BitflagFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct CollectionTypeFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct CollectionElementFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct AliasTypeFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct AliasMemberFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct AnnotationTypeFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct AnnotationParameterFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct BitsetTypeFlag(pub u16);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct BitfieldFlag(pub u16);