#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ValueType {
String,
Boolean,
Int16,
Int32,
Int64,
Double,
BinaryChunk,
}
pub fn value_type_of(code: u16) -> ValueType {
match code {
0..=9 => ValueType::String,
10..=59 => ValueType::Double,
60..=89 => ValueType::Int16,
90..=99 => ValueType::Int32,
100..=109 => ValueType::String,
110..=159 => ValueType::Double,
160..=169 => ValueType::Int64,
170..=189 => ValueType::Int16,
210..=239 => ValueType::Double,
260..=289 => ValueType::Int16,
290..=299 => ValueType::Boolean,
300..=309 => ValueType::String,
310..=319 => ValueType::BinaryChunk,
320..=369 => ValueType::String,
370..=389 => ValueType::Int16,
390..=399 => ValueType::String,
400..=409 => ValueType::Int16,
410..=419 => ValueType::String,
420..=429 => ValueType::Int32,
430..=439 => ValueType::String,
440..=459 => ValueType::Int32,
460..=469 => ValueType::Double,
470..=479 => ValueType::String,
480..=489 => ValueType::String,
999 => ValueType::String,
1000..=1003 => ValueType::String,
1004 => ValueType::BinaryChunk,
1005..=1009 => ValueType::String,
1010..=1059 => ValueType::Double,
1060..=1070 => ValueType::Int16,
1071 => ValueType::Int32,
_ => ValueType::String,
}
}