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
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.