pub struct ZMap<K: VldSchema, V: VldSchema> { /* private fields */ }Expand description
Schema for validating a JSON array of [key, value] pairs into a HashMap.
Created via vld::map().
A key that appears twice (after validation) is an error
(duplicate_key, reported at the later entry’s index).
§Example
ⓘ
let schema = vld::map(vld::string(), vld::number().int());
// Input: [["a", 1], ["b", 2]]
// Output: HashMap { "a" => 1, "b" => 2 }Implementations§
Trait Implementations§
Source§impl<K, V> CollectNestedSchemas for ZMap<K, V>
Available on crate feature openapi only.
impl<K, V> CollectNestedSchemas for ZMap<K, V>
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<K, V> JsonSchema for ZMap<K, V>
Available on crate feature openapi only.[[key, value], ...]: an array of 2-item tuples.
impl<K, V> JsonSchema for ZMap<K, V>
Available on crate feature
openapi only.[[key, value], ...]: an array of 2-item tuples.
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<K, V> VldSchema for ZMap<K, V>
impl<K, V> VldSchema for ZMap<K, V>
Source§type Output = HashMap<<K as VldSchema>::Output, <V as VldSchema>::Output>
type Output = HashMap<<K as VldSchema>::Output, <V as VldSchema>::Output>
The Rust type produced by this schema after successful parsing.
Source§fn parse_value(&self, value: &Value) -> Result<Self::Output, VldError>
fn parse_value(&self, value: &Value) -> Result<Self::Output, 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<K, V> Forget for ZMap<K, V>
impl<K, V> Freeze for ZMap<K, V>
impl<K, V> RefUnwindSafe for ZMap<K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V> Send for ZMap<K, V>
impl<K, V> Sync for ZMap<K, V>
impl<K, V> Unpin for ZMap<K, V>
impl<K, V> UnsafeUnpin for ZMap<K, V>where
K: UnsafeUnpin,
V: UnsafeUnpin,
impl<K, V> UnwindSafe for ZMap<K, V>where
K: UnwindSafe,
V: UnwindSafe,
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> 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 more