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".