pub use crate::types::PrimitiveType;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum PhysicalType {
Null,
Boolean,
Primitive(PrimitiveType),
Binary,
FixedSizeBinary,
LargeBinary,
Utf8,
LargeUtf8,
List,
FixedSizeList,
LargeList,
Struct,
Union,
Map,
Dictionary(IntegerType),
}
impl PhysicalType {
pub fn eq_primitive(&self, primitive: PrimitiveType) -> bool {
if let Self::Primitive(o) = self {
o == &primitive
} else {
false
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IntegerType {
Int8,
Int16,
Int32,
Int64,
UInt8,
UInt16,
UInt32,
UInt64,
}