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>;
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§
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
sourcefn 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
Object Safety§
This trait is not object safe.