Skip to main content

DecimalField

Struct DecimalField 

Source
pub struct DecimalField {
Show 13 fields pub name: String, pub label: Option<String>, pub required: bool, pub help_text: Option<String>, pub widget: Widget, pub initial: Option<Value>, pub max_value: Option<f64>, pub min_value: Option<f64>, pub max_digits: Option<usize>, pub decimal_places: Option<usize>, pub localize: bool, pub locale: Option<String>, pub use_thousands_separator: bool,
}
Expand description

DecimalField for decimal number input with digit and precision validation.

Precision Note: This field stores values internally as f64 (IEEE 754), which provides approximately 15-17 significant decimal digits of precision. All digit count and decimal place validations are performed on the string representation before conversion to f64, ensuring accurate constraint enforcement even for values that cannot be exactly represented in binary floating-point.

For applications requiring exact decimal arithmetic (e.g., financial calculations), consider using rust_decimal::Decimal in your application layer after form validation.

Fields§

§name: String§label: Option<String>§required: bool§help_text: Option<String>§widget: Widget§initial: Option<Value>§max_value: Option<f64>§min_value: Option<f64>§max_digits: Option<usize>§decimal_places: Option<usize>§localize: bool§locale: Option<String>§use_thousands_separator: bool

Implementations§

Source§

impl DecimalField

Source

pub fn new(name: String) -> Self

Create a new DecimalField

§Examples
use reinhardt_forms::fields::DecimalField;

let field = DecimalField::new("price".to_string());
assert_eq!(field.name, "price");
assert!(field.required);
Source

pub fn with_localize(self, localize: bool) -> Self

Source

pub fn with_locale(self, locale: String) -> Self

Source

pub fn with_thousands_separator(self, use_separator: bool) -> Self

Trait Implementations§

Source§

impl FormField for DecimalField

Source§

fn name(&self) -> &str

Source§

fn label(&self) -> Option<&str>

Source§

fn required(&self) -> bool

Source§

fn help_text(&self) -> Option<&str>

Source§

fn widget(&self) -> &Widget

Source§

fn initial(&self) -> Option<&Value>

Source§

fn clean(&self, value: Option<&Value>) -> FieldResult<Value>

Source§

fn has_changed(&self, initial: Option<&Value>, data: Option<&Value>) -> bool

Check if the field value has changed from its initial value
Source§

fn error_messages(&self) -> HashMap<ErrorType, String>

Get custom error messages for this field

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.