########################################################################### # # Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file generic_defs.py # # @author (last) Zoltan Miskolci # @date (last) 04-May-2026 # @author (last) Zoltan Miskolci # @date (last) 01-May-2026 # ############################################################################ from enum import unique from ..utils.enums import DialinEnum @unique class DataTypes(DialinEnum): NONE = (0, None, 0) # No Data Type - None U32 = (1, ' Integer S32 = (2, ' Integer F32 = (3, ' Float # Could use ' Integer U08 = (5, ' Integer U16 = (6, ' Integer NUM_OF_DATA_TYPES = (7, None, 0) # Number of Data Types - None def __new__(cls, value, unpack_fmt, unpack_size): obj = object.__new__(cls) obj._value_ = value # keeps .value as int obj.unpack_fmt = unpack_fmt # attach extra attribute obj.unpack_size = unpack_size # attach extra attribute return obj def unpack_attrib(self) -> str: return self.unpack_fmt def size(self) -> int: return self.unpack_size DataTypes._str_list = { # Official Name : Accepted strings 'NONE': [], 'U32': [], 'S32': [], 'F32': [], 'BOOL': ['boolean'], 'U08': ['u8'], 'U16': [], 'NUM_OF_DATA_TYPES': [], }