ByteEnum Primitive Examples

[1]:
from enum import IntEnum

from byteclasses.print import byteclass_info, byteclass_inspect
from byteclasses.types.primitives.byte_enum import ByteEnum
from byteclasses.types.primitives.integers import UInt8
[2]:
class TestEnum(IntEnum):
    """Test Enum class."""

    ONE = 0x1
    TWO = 0x2
    THREE = 0x3
[3]:
known = ByteEnum(TestEnum, UInt8, 3)
byteclass_info(known)
byteclass_inspect(known)
                   Byteclass Info                   
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Property                  Value                 ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│ type()                    ByteEnum              │
│ is_byteclass()            True                  │
│ is_collection_instance()  False                 │
│ is_primitive_instance()   False                 │
│ mro                       ByteEnum -> object    │
│ len()                     1                     │
│ str()                     THREE                 │
│ repr()                    <TestEnum.THREE: 0x3> │
│ .data                     b'\x03'               │
└──────────────────────────┴───────────────────────┘
╭────────────────── Byteclass Inspect ───────────────────╮
│      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f   │
│ ----------------------------------------------------   │
│ 0x0 |03                                                │
╰────────────────────────────────────────────────────────╯
 Legend  
┏━━━━━━━┓
┃ Value ┃
┡━━━━━━━┩
│ THREE │
└───────┘
[4]:
unknown = ByteEnum(TestEnum, UInt8, 4)
byteclass_info(unknown)
byteclass_inspect(unknown)
                    Byteclass Info                    
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Property                  Value                   ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ type()                    ByteEnum                │
│ is_byteclass()            True                    │
│ is_collection_instance()  False                   │
│ is_primitive_instance()   False                   │
│ mro                       ByteEnum -> object      │
│ len()                     1                       │
│ str()                     UNKNOWN                 │
│ repr()                    <TestEnum.UNKNOWN: 0x4> │
│ .data                     b'\x04'                 │
└──────────────────────────┴─────────────────────────┘
╭────────────────── Byteclass Inspect ───────────────────╮
│      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f   │
│ ----------------------------------------------------   │
│ 0x0 |04                                                │
╰────────────────────────────────────────────────────────╯
  Legend   
┏━━━━━━━━━┓
┃ Value   ┃
┡━━━━━━━━━┩
│ UNKNOWN │
└─────────┘