pub struct ZNumber { /* private fields */ }Expand description
Schema for number validation (f64). Created via vld::number().
Use .int() to convert to integer validation (i64).
§Example
use vld::prelude::*;
let schema = vld::number().min(0.0).max(100.0);
let int_schema = vld::number().int().min(0).max(100);Implementations§
Source§impl ZNumber
impl ZNumber
pub fn new() -> Self
Sourcepub fn type_error(self, msg: impl Into<String>) -> Self
pub fn type_error(self, msg: impl Into<String>) -> Self
Set a custom error message for type mismatch (when the input is not a number).
§Example
use vld::prelude::*;
let schema = vld::number().type_error("Must be a number!");
let err = schema.parse(r#""hello""#).unwrap_err();
assert!(err.issues[0].message.contains("Must be a number!"));Sourcepub fn with_messages<F>(self, f: F) -> Self
pub fn with_messages<F>(self, f: F) -> Self
Override error messages in bulk by check key.
The closure receives the check key (e.g. "too_small", "too_big",
"not_positive", "not_finite", "not_multiple_of", "not_safe")
and should return Some(new_message) to replace, or None to keep the original.
§Example
use vld::prelude::*;
let schema = vld::number().min(0.0).max(100.0)
.with_messages(|key| match key {
"too_small" => Some("Must be >= 0".into()),
"too_big" => Some("Must be <= 100".into()),
_ => None,
});Sourcepub fn non_negative(self) -> Self
pub fn non_negative(self) -> Self
Must be non-negative (>= 0).
Sourcepub fn non_positive(self) -> Self
pub fn non_positive(self) -> Self
Must be non-positive (<= 0).
Sourcepub fn multiple_of(self, val: f64) -> Self
pub fn multiple_of(self, val: f64) -> Self
Must be a multiple of the given value.
Trait Implementations§
Source§impl VldSchema for ZNumber
impl VldSchema for ZNumber
Source§fn parse_value(&self, value: &Value) -> Result<f64, VldError>
fn parse_value(&self, value: &Value) -> Result<f64, VldError>
Parse and validate a
serde_json::Value.Source§fn parse<I: VldInput + ?Sized>(
&self,
input: &I,
) -> Result<Self::Output, VldError>
fn parse<I: VldInput + ?Sized>( &self, input: &I, ) -> Result<Self::Output, VldError>
Parse from any supported input (JSON string, file path,
serde_json::Value, etc.)Source§fn optional(self) -> ZOptional<Self>
fn optional(self) -> ZOptional<Self>
Make this field optional. Missing or null values become
None.Source§fn with_default(self, value: Self::Output) -> ZDefault<Self>
fn with_default(self, value: Self::Output) -> ZDefault<Self>
Provide a default value when the field is missing or null.
Source§fn refine<F>(self, check: F, message: &str) -> ZRefine<Self, F>
fn refine<F>(self, check: F, message: &str) -> ZRefine<Self, F>
Add a custom refinement check without changing the output type.
Source§fn transform<F, U>(self, f: F) -> ZTransform<Self, F, U>
fn transform<F, U>(self, f: F) -> ZTransform<Self, F, U>
Transform the output value after successful parsing.
Source§fn catch(self, fallback: Self::Output) -> ZCatch<Self>
fn catch(self, fallback: Self::Output) -> ZCatch<Self>
Return a fallback value on ANY validation error.
Source§fn pipe<S: VldSchema>(self, next: S) -> ZPipe<Self, S>
fn pipe<S: VldSchema>(self, next: S) -> ZPipe<Self, S>
Chain this schema’s output into another schema. Read more
Source§fn describe(self, description: &str) -> ZDescribe<Self>
fn describe(self, description: &str) -> ZDescribe<Self>
Attach a human-readable description/label to this schema. Read more
Source§fn super_refine<F>(self, check: F) -> ZSuperRefine<Self, F>
fn super_refine<F>(self, check: F) -> ZSuperRefine<Self, F>
Add a custom refinement that can produce multiple errors. Read more
Source§fn or<B: VldSchema>(self, other: B) -> ZUnion2<Self, B>
fn or<B: VldSchema>(self, other: B) -> ZUnion2<Self, B>
Create a union: this schema or another. Returns
Either<Self::Output, B::Output>.Source§fn and<B: VldSchema>(self, other: B) -> ZIntersection<Self, B>
fn and<B: VldSchema>(self, other: B) -> ZIntersection<Self, B>
Create an intersection: input must satisfy both schemas.
Auto Trait Implementations§
impl Freeze for ZNumber
impl RefUnwindSafe for ZNumber
impl Send for ZNumber
impl Sync for ZNumber
impl Unpin for ZNumber
impl UnsafeUnpin for ZNumber
impl UnwindSafe for ZNumber
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more