#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum Kind {
Decimal = 1,
Uuid = 2,
Instant = 3,
Date = 4,
DateTime = 5,
Interval = 6,
Uint8 = 7,
Uint16 = 8,
Uint32 = 9,
Uint64 = 10,
Time = 11,
}
#[allow(dead_code)] pub struct Descriptor {
pub kind: Kind,
pub name: &'static str,
pub affinity: u8,
pub tag: u8,
pub payload_size: usize,
}
pub const TYPES: &[Descriptor] = &[
Descriptor {
kind: Kind::Decimal,
name: "DECIMAL",
affinity: 0x47,
tag: b'd',
payload_size: 0,
},
Descriptor {
kind: Kind::Uuid,
name: "UUID",
affinity: 0x48,
tag: b'u',
payload_size: 16,
},
Descriptor {
kind: Kind::Instant,
name: "INSTANT",
affinity: 0x49,
tag: b'i',
payload_size: 12,
},
Descriptor {
kind: Kind::Date,
name: "DATE",
affinity: 0x4a,
tag: b'a',
payload_size: 4,
},
Descriptor {
kind: Kind::DateTime,
name: "DATETIME",
affinity: 0x4b,
tag: b't',
payload_size: 12,
},
Descriptor {
kind: Kind::Interval,
name: "INTERVAL",
affinity: 0x4c,
tag: b'v',
payload_size: 16,
},
Descriptor {
kind: Kind::Uint8,
name: "UINT8",
affinity: 0x4d,
tag: b'C',
payload_size: 1,
},
Descriptor {
kind: Kind::Uint16,
name: "UINT16",
affinity: 0x4e,
tag: b'S',
payload_size: 2,
},
Descriptor {
kind: Kind::Uint32,
name: "UINT32",
affinity: 0x4f,
tag: b'L',
payload_size: 4,
},
Descriptor {
kind: Kind::Uint64,
name: "UINT64",
affinity: 0x60,
tag: b'Q',
payload_size: 8,
},
Descriptor {
kind: Kind::Time,
name: "TIME",
affinity: 0x61,
tag: b'h',
payload_size: 8,
},
];