pub struct ZDuration { /* private fields */ }Expand description
Schema for std::time::Duration. Created via vld::duration().
Accepts a non-negative JSON number of seconds (3, 1.5) or a string:
10s / 1.5s, 250ms (integer milliseconds) or PT15S / PT1.5S.
Negative numbers fail with too_small (origin duration, minimum 0);
anything else with invalid_type.
§Example
use vld::prelude::*;
use std::time::Duration;
let d = vld::duration().max_secs(60);
assert_eq!(d.parse("1.5").unwrap(), Duration::from_millis(1500));
assert_eq!(d.parse(r#""PT2.25S""#).unwrap(), Duration::from_millis(2250));
assert_eq!(d.parse(r#""250ms""#).unwrap(), Duration::from_millis(250));
assert!(d.parse("-1").is_err());Implementations§
Trait Implementations§
Source§impl CollectNestedSchemas for ZDuration
Available on crate feature openapi only.
impl CollectNestedSchemas for ZDuration
Available on crate feature
openapi only.Source§fn collect_nested_schemas(&self, _out: &mut Vec<NestedSchemaEntry>)
fn collect_nested_schemas(&self, _out: &mut Vec<NestedSchemaEntry>)
Add the named schemas this schema references to
_out (for components.schemas).Source§impl JsonSchema for ZDuration
Available on crate feature openapi only.JSON Schema. min/max become minimum/maximum (seconds) on the
number branch and x-minSeconds/x-maxSeconds on the string branch.
impl JsonSchema for ZDuration
Available on crate feature
openapi only.JSON Schema. min/max become minimum/maximum (seconds) on the
number branch and x-minSeconds/x-maxSeconds on the string branch.
Source§fn json_schema(&self) -> Value
fn json_schema(&self) -> Value
Generate a JSON Schema representation.
Source§fn is_required(&self) -> bool
fn is_required(&self) -> bool
Whether this schema should be included in an object’s
required array. Read moreSource§impl VldSchema for ZDuration
impl VldSchema for ZDuration
Source§fn parse_value(&self, value: &Value) -> Result<Duration, VldError>
fn parse_value(&self, value: &Value) -> Result<Duration, VldError>
Parse and validate a
serde_json::Value.Source§fn parse_missing(&self) -> Result<Self::Output, VldError>
fn parse_missing(&self) -> Result<Self::Output, VldError>
Parse an object field whose key is absent. Read more
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 validate<T: Serialize>(&self, value: &T) -> Result<Self::Output, VldError>
fn validate<T: Serialize>(&self, value: &T) -> Result<Self::Output, VldError>
Validate an existing Rust value against this schema. Read more
Source§fn is_valid<T: Serialize>(&self, value: &T) -> bool
fn is_valid<T: Serialize>(&self, value: &T) -> bool
Check if an existing Rust value passes this schema’s validation. Read more
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 blank_as(self, value: Self::Output) -> ZDefault<Self>
fn blank_as(self, value: Self::Output) -> ZDefault<Self>
Like
with_default, and a blank string (empty or
whitespace only) also becomes value: legacy stores that write ""
or null for “unset”. Read moreSource§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 rule_msg<R>(self, rule: R, msg: impl Into<String>) -> ZRule<Self, R>
fn rule_msg<R>(self, rule: R, msg: impl Into<String>) -> ZRule<Self, R>
rule with a custom error message.Source§fn try_transform<F, U, E>(self, f: F) -> ZTryTransform<Self, F, U>
fn try_transform<F, U, E>(self, f: F) -> ZTryTransform<Self, F, U>
Transform the output with a fallible function; an
Err becomes a
validation issue (Custom { code: "transform" }, message = the error). Read moreSource§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 Forget for ZDuration
impl Freeze for ZDuration
impl RefUnwindSafe for ZDuration
impl Send for ZDuration
impl Sync for ZDuration
impl Unpin for ZDuration
impl UnsafeUnpin for ZDuration
impl UnwindSafe for ZDuration
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DynSchema for T
impl<T> DynSchema for T
Source§fn dyn_parse(&self, value: &Value) -> Result<Value, VldError>
fn dyn_parse(&self, value: &Value) -> Result<Value, VldError>
Parse
value and return the output serialized back to JSON.Source§fn dyn_parse_missing(&self) -> Result<Value, VldError>
fn dyn_parse_missing(&self) -> Result<Value, VldError>
VldSchema::parse_missing of the erased schema.Source§fn dyn_json_schema(&self) -> Value
fn dyn_json_schema(&self) -> Value
Available on crate feature
openapi only.JSON Schema of the erased schema.
Source§fn dyn_is_required(&self) -> bool
fn dyn_is_required(&self) -> bool
Available on crate feature
openapi only.Whether this field belongs in an object’s JSON Schema
required array.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().