pub enum TypeSignatureClass {
Any,
Timestamp,
Time,
Interval,
Duration,
Native(Arc<dyn LogicalType>),
Integer,
Float,
Decimal,
Numeric,
Binary,
}Expand description
Represents the class of types that can be used in a function signature.
This is used to specify what types are valid for function arguments in a more flexible way than just listing specific DataTypes. For example, TypeSignatureClass::Timestamp matches any timestamp type regardless of timezone or precision.
Used primarily with TypeSignature::Coercible to define function signatures that can accept
arguments that can be coerced to a particular class of types.
Variants§
Any
Allows an arbitrary type argument without coercing the argument.
Timestamp
Timestamps, allowing arbitrary (or no) timezones
Time
All time types
Interval
All interval types
Duration
All duration types
Native(Arc<dyn LogicalType>)
A specific native type
Integer
Signed and unsigned integers
Float
All float types
Decimal
All decimal types, allowing arbitrary precision & scale
Numeric
Integers, floats and decimals
Binary
Encompasses both the native Binary/LargeBinary types as well as arbitrarily sized FixedSizeBinary types
Implementations§
Source§impl TypeSignatureClass
impl TypeSignatureClass
Sourcepub fn matches_native_type(&self, logical_type: &NativeType) -> bool
pub fn matches_native_type(&self, logical_type: &NativeType) -> bool
Does the specified NativeType match this type signature class?
Sourcepub fn default_casted_type(
&self,
native_type: &NativeType,
origin_type: &DataType,
) -> Result<DataType, DataFusionError>
pub fn default_casted_type( &self, native_type: &NativeType, origin_type: &DataType, ) -> Result<DataType, DataFusionError>
What type would origin_type be casted to when casting to the specified native type?
Trait Implementations§
Source§impl Clone for TypeSignatureClass
impl Clone for TypeSignatureClass
Source§fn clone(&self) -> TypeSignatureClass
fn clone(&self) -> TypeSignatureClass
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TypeSignatureClass
impl Debug for TypeSignatureClass
Source§impl Display for TypeSignatureClass
impl Display for TypeSignatureClass
Source§impl Hash for TypeSignatureClass
impl Hash for TypeSignatureClass
Source§impl PartialEq for TypeSignatureClass
impl PartialEq for TypeSignatureClass
Source§impl PartialOrd for TypeSignatureClass
impl PartialOrd for TypeSignatureClass
impl Eq for TypeSignatureClass
impl StructuralPartialEq for TypeSignatureClass
Auto Trait Implementations§
impl Freeze for TypeSignatureClass
impl !RefUnwindSafe for TypeSignatureClass
impl Send for TypeSignatureClass
impl Sync for TypeSignatureClass
impl Unpin for TypeSignatureClass
impl !UnwindSafe for TypeSignatureClass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more