package CRSDK;

public enum CrDataType {
    CrDataType_Undefined(0),
    CrDataType_UInt8(1),
    CrDataType_UInt16(2),
    CrDataType_UInt32(3),
    CrDataType_UInt64(4),
    CrDataType_UInt128(5),
    CrDataType_SignBit(0x1000),
    CrDataType_Int8(CrDataType_SignBit.getCode() | CrDataType_UInt8.getCode()),
    CrDataType_Int16(CrDataType_SignBit.getCode() | CrDataType_UInt16.getCode()),
    CrDataType_Int32(CrDataType_SignBit.getCode() | CrDataType_UInt32.getCode()),
    CrDataType_Int64(CrDataType_SignBit.getCode() | CrDataType_UInt64.getCode()),
    CrDataType_Int128(CrDataType_SignBit.getCode() | CrDataType_UInt128.getCode()),
    CrDataType_ArrayBit(0x2000),
    CrDataType_UInt8Array(CrDataType_ArrayBit.getCode() | CrDataType_UInt8.getCode()),
    CrDataType_UInt16Array(CrDataType_ArrayBit.getCode() | CrDataType_UInt16.getCode()),
    CrDataType_UInt32Array(CrDataType_ArrayBit.getCode() | CrDataType_UInt32.getCode()),
    CrDataType_UInt64Array(CrDataType_ArrayBit.getCode() | CrDataType_UInt64.getCode()),
    CrDataType_UInt128Array(CrDataType_ArrayBit.getCode() | CrDataType_UInt128.getCode()),
    CrDataType_Int8Array(CrDataType_ArrayBit.getCode() | CrDataType_Int8.getCode()),
    CrDataType_Int16Array(CrDataType_ArrayBit.getCode() | CrDataType_Int16.getCode()),
    CrDataType_Int32Array(CrDataType_ArrayBit.getCode() | CrDataType_Int32.getCode()),
    CrDataType_Int64Array(CrDataType_ArrayBit.getCode() | CrDataType_Int64.getCode()),
    CrDataType_Int128Array(CrDataType_ArrayBit.getCode() | CrDataType_Int128.getCode()),
    CrDataType_RangeBit(0x4000),
    CrDataType_UInt8Range(CrDataType_RangeBit.getCode() | CrDataType_UInt8.getCode()),
    CrDataType_UInt16Range(CrDataType_RangeBit.getCode() | CrDataType_UInt16.getCode()),
    CrDataType_UInt32Range(CrDataType_RangeBit.getCode() | CrDataType_UInt32.getCode()),
    CrDataType_UInt64Range(CrDataType_RangeBit.getCode() | CrDataType_UInt64.getCode()),
    CrDataType_UInt128Range(CrDataType_RangeBit.getCode() | CrDataType_UInt128.getCode()),
    CrDataType_Int8Range(CrDataType_RangeBit.getCode() | CrDataType_Int8.getCode()),
    CrDataType_Int16Range(CrDataType_RangeBit.getCode() | CrDataType_Int16.getCode()),
    CrDataType_Int32Range(CrDataType_RangeBit.getCode() | CrDataType_Int32.getCode()),
    CrDataType_Int64Range(CrDataType_RangeBit.getCode() | CrDataType_Int64.getCode()),
    CrDataType_Int128Range(CrDataType_RangeBit.getCode() | CrDataType_Int128.getCode()),
    CrDataType_STR(0xFFFF);
    private final CrInt32u code;
    CrDataType(int code) {
        this.code = new CrInt32u(code);
    }
    public int getCode() {
        return code.intValue();
    }
}
