ʰ
#[derive (Debug)]вот условно два энама, которые постепенно начинают ебать мозгу
enum Container {
I8 (i8),
U8 (u8),
I16 (i16),
U16 (u16),
I32 (i32),
U32 (u32),
I64 (i64),
U64 (u64),
Varchar (String)
}
#[derive (Copy, Clone, PartialEq, Debug)]
enum Datatype {
I8,
U8,
I16,
U16,
U32,
I32,
I64,
U64,
Varchar { size: u16 }
}
и проблема в том, что при условной десериализации строки из таблицы мне на ум не приходит ничего умнее чем
Datatype::I8 => Container::I8(i8::from_le_bytes(get_c(data, &mut cursor, 1)?.try_into().unwrap())),
Datatype::U8 => Container::U8(u8::from_le_bytes(get_c(data, &mut cursor, 1)?.try_into().unwrap())),
Datatype::I16 => Container::I16(i16::from_le_bytes(get_c(data, &mut cursor, 2)?.try_into().unwrap())),
Datatype::U16 => Container::U16(u16::from_le_bytes(get_c(data, &mut cursor, 2)?.try_into().unwrap())),
Datatype::I32 => Container::I32(i32::from_le_bytes(get_c(data, &mut cursor, 4)?.try_into().unwrap())),
Datatype::U32 => Container::U32(u32::from_le_bytes(get_c(data, &mut cursor, 4)?.try_into().unwrap())),
Datatype::I64 => Container::I64(i64::from_le_bytes(get_c(data, &mut cursor, 8)?.try_into().unwrap())),
Datatype::U64 => Container::U64(u64::from_le_bytes(get_c(data, &mut cursor, 8)?.try_into().unwrap())),
Datatype::Varchar {size} => {
и так далее и тому подобноеget_c чисто рандомно, потом что нибудь придумаю