abi_stable/prefix_type/
accessible_fields.rs1use crate::sabi_types::bitarray::{bool_to_enum, enum_to_bool, BitArray64, BooleanEnum};
2
3#[derive(StableAbi, Debug, Copy, Clone, PartialEq, Eq)]
7#[repr(u8)]
8pub enum IsAccessible {
9 No = 0,
11 Yes = 1,
13}
14
15impl IsAccessible {
16 pub const fn new(is_accessible: bool) -> Self {
18 bool_to_enum(is_accessible)
19 }
20 pub const fn is_accessible(self) -> bool {
22 enum_to_bool(self)
23 }
24}
25
26unsafe impl BooleanEnum for IsAccessible {
27 const FALSE: Self = Self::No;
28 const TRUE: Self = Self::Yes;
29}
30
31pub type FieldAccessibility = BitArray64<IsAccessible>;
34
35#[derive(StableAbi, Debug, Copy, Clone, PartialEq, Eq)]
40#[repr(u8)]
41pub enum IsConditional {
42 No = 0,
44 Yes = 1,
46}
47
48impl IsConditional {
49 pub const fn new(is_conditional: bool) -> Self {
51 bool_to_enum(is_conditional)
52 }
53 pub const fn is_conditional(self) -> bool {
55 enum_to_bool(self)
56 }
57}
58
59unsafe impl BooleanEnum for IsConditional {
60 const FALSE: Self = Self::No;
61 const TRUE: Self = Self::Yes;
62}
63
64pub type FieldConditionality = BitArray64<IsConditional>;