pub trait LogicalPrimitiveType: 'static + Sized {
type ArrowPrimitive: ArrowPrimitiveType<Native = Self::Native>;
type Native: ArrowNativeType;
type Wrapper: WrapperType<LogicalType = Self, Native = Self::Native> + for<'a> Scalar<VectorType = PrimitiveVector<Self>, RefType<'a> = Self::Wrapper> + for<'a> ScalarRef<'a, ScalarType = Self::Wrapper>;
type LargestType: LogicalPrimitiveType;
// Required methods
fn build_data_type() -> ConcreteDataType;
fn type_name() -> &'static str;
fn cast_vector(vector: &dyn Vector) -> Result<&PrimitiveVector<Self>>;
fn cast_value_ref(value: ValueRef<'_>) -> Result<Option<Self::Wrapper>>;
}
Expand description
Trait bridging the logical primitive type with [ArrowPrimitiveType].
Required Associated Types§
Sourcetype ArrowPrimitive: ArrowPrimitiveType<Native = Self::Native>
type ArrowPrimitive: ArrowPrimitiveType<Native = Self::Native>
Arrow primitive type of this logical type.
Sourcetype Wrapper: WrapperType<LogicalType = Self, Native = Self::Native> + for<'a> Scalar<VectorType = PrimitiveVector<Self>, RefType<'a> = Self::Wrapper> + for<'a> ScalarRef<'a, ScalarType = Self::Wrapper>
type Wrapper: WrapperType<LogicalType = Self, Native = Self::Native> + for<'a> Scalar<VectorType = PrimitiveVector<Self>, RefType<'a> = Self::Wrapper> + for<'a> ScalarRef<'a, ScalarType = Self::Wrapper>
Wrapper type that the vector returns.
Sourcetype LargestType: LogicalPrimitiveType
type LargestType: LogicalPrimitiveType
Largest type this primitive type can cast to.
Required Methods§
Sourcefn build_data_type() -> ConcreteDataType
fn build_data_type() -> ConcreteDataType
Construct the data type struct.
Sourcefn cast_vector(vector: &dyn Vector) -> Result<&PrimitiveVector<Self>>
fn cast_vector(vector: &dyn Vector) -> Result<&PrimitiveVector<Self>>
Dynamic cast the vector to the concrete vector type.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.