Trait arrow_array::types::DecimalType
source · 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>;
}
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§
sourceconst BYTE_LENGTH: usize
const BYTE_LENGTH: usize
Width of the type
sourceconst MAX_PRECISION: u8
const MAX_PRECISION: u8
Maximum number of significant digits
sourceconst MAX_SCALE: i8
const MAX_SCALE: i8
Maximum no of digits after the decimal point (note the scale can be negative)
sourceconst DEFAULT_TYPE: DataType
const DEFAULT_TYPE: DataType
Default values for DataType
Required Methods§
sourcefn 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
sourcefn 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