Trait DecimalType
pub trait DecimalType:
'static
+ Send
+ Sync
+ ArrowPrimitiveType
+ DecimalTypeSealed {
const BYTE_LENGTH: usize;
const MAX_PRECISION: u8;
const MAX_SCALE: i8;
const MAX_FOR_EACH_PRECISION: &'static [Self::Native];
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,
scale: i8,
) -> 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 Decimal32Type, Decimal64Type, Decimal128Type and Decimal256Type
for Decimal32Array, Decimal64Array, 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 MAX_FOR_EACH_PRECISION: &'static [Self::Native]
const MAX_FOR_EACH_PRECISION: &'static [Self::Native]
The maximum value for each precision in 0..=MAX_PRECISION: [0, 9, 99, …]
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,
scale: i8,
) -> Result<(), ArrowError>
fn validate_decimal_precision( value: Self::Native, precision: u8, scale: i8, ) -> 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".