pub use crate::types::PrimitiveType;
#[cfg(feature = "serde_types")]
use serde_derive::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde_types", derive(Serialize, Deserialize))]
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)]
#[cfg_attr(feature = "serde_types", derive(Serialize, Deserialize))]
pub enum IntegerType {
Int8,
Int16,
Int32,
Int64,
UInt8,
UInt16,
UInt32,
UInt64,
}