Trait DecimalType
pub trait DecimalType:
'static
+ Send
+ Sync
+ ArrowPrimitiveType
+ DecimalTypeSealed {
const BYTE_LENGTH: usize;
const MAX_PRECISION: u8;
const MAX_SCALE: i8;
const TYPE_CONSTRUCTOR: fn(_: u8, _: i8) -> DataType;
const DEFAULT_TYPE: DataType;
const PREFIX: &'static str;
// Required methods
fn format_decimal(value: Self::Native, precision: u8, scale: i8) -> String;
fn validate_decimal_precision(
value: Self::Native,
precision: u8,
) -> Result<(), ArrowError>;
fn is_valid_decimal_precision(value: Self::Native, precision: u8) -> bool;
}
Expand description
A trait over the decimal types, used by PrimitiveArray
to provide a generic
implementation across the various decimal types
Implemented by Decimal128Type
and Decimal256Type
for Decimal128Array
and Decimal256Array
respectively
Required Associated Constants§
const BYTE_LENGTH: usize
const BYTE_LENGTH: usize
Width of the type
const MAX_PRECISION: u8
const MAX_PRECISION: u8
Maximum number of significant digits
const DEFAULT_TYPE: DataType
const DEFAULT_TYPE: DataType
Default values for DataType
Required Methods§
fn format_decimal(value: Self::Native, precision: u8, scale: i8) -> String
fn format_decimal(value: Self::Native, precision: u8, scale: i8) -> String
Formats the decimal value with the provided precision and scale
fn validate_decimal_precision(
value: Self::Native,
precision: u8,
) -> Result<(), ArrowError>
fn validate_decimal_precision( value: Self::Native, precision: u8, ) -> Result<(), ArrowError>
Validates that value
contains no more than precision
decimal digits
fn is_valid_decimal_precision(value: Self::Native, precision: u8) -> bool
fn is_valid_decimal_precision(value: Self::Native, precision: u8) -> bool
Determines whether value
contains no more than precision
decimal digits
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.