datatypes::data_type

Trait DataType

Source
pub trait DataType:
    Debug
    + Send
    + Sync {
    // Required methods
    fn name(&self) -> String;
    fn logical_type_id(&self) -> LogicalTypeId;
    fn default_value(&self) -> Value;
    fn as_arrow_type(&self) -> ArrowDataType;
    fn create_mutable_vector(&self, capacity: usize) -> Box<dyn MutableVector>;
    fn try_cast(&self, from: Value) -> Option<Value>;
}
Expand description

Data type abstraction.

Required Methods§

Source

fn name(&self) -> String

Name of this data type.

Source

fn logical_type_id(&self) -> LogicalTypeId

Returns id of the Logical data type.

Source

fn default_value(&self) -> Value

Returns the default value of this type.

Source

fn as_arrow_type(&self) -> ArrowDataType

Convert this type as [arrow::datatypes::DataType].

Source

fn create_mutable_vector(&self, capacity: usize) -> Box<dyn MutableVector>

Creates a mutable vector with given capacity of this type.

Source

fn try_cast(&self, from: Value) -> Option<Value>

Casts the value to specific DataType. Return None if cast failed.

Implementors§

Source§

impl DataType for DurationType

Source§

impl DataType for IntervalType

Source§

impl DataType for TimeType

Source§

impl DataType for TimestampType

Source§

impl DataType for ConcreteDataType

Source§

impl DataType for BinaryType

Source§

impl DataType for BooleanType

Source§

impl DataType for DateType

Source§

impl DataType for DateTimeType

Source§

impl DataType for Decimal128Type

Source§

impl DataType for DictionaryType

Source§

impl DataType for DurationMicrosecondType

Source§

impl DataType for DurationMillisecondType

Source§

impl DataType for DurationNanosecondType

Source§

impl DataType for DurationSecondType

Source§

impl DataType for IntervalDayTimeType

Source§

impl DataType for IntervalMonthDayNanoType

Source§

impl DataType for IntervalYearMonthType

Source§

impl DataType for JsonType

Source§

impl DataType for ListType

Source§

impl DataType for NullType

Source§

impl DataType for Float32Type

Source§

impl DataType for Float64Type

Source§

impl DataType for Int8Type

Source§

impl DataType for Int16Type

Source§

impl DataType for Int32Type

Source§

impl DataType for Int64Type

Source§

impl DataType for UInt8Type

Source§

impl DataType for UInt16Type

Source§

impl DataType for UInt32Type

Source§

impl DataType for UInt64Type

Source§

impl DataType for StringType

Source§

impl DataType for TimeMicrosecondType

Source§

impl DataType for TimeMillisecondType

Source§

impl DataType for TimeNanosecondType

Source§

impl DataType for TimeSecondType

Source§

impl DataType for TimestampMicrosecondType

Source§

impl DataType for TimestampMillisecondType

Source§

impl DataType for TimestampNanosecondType

Source§

impl DataType for TimestampSecondType

Source§

impl DataType for VectorType