pub struct ZIntersection<A, B>{ /* private fields */ }Expand description
Intersection of two schemas: input must satisfy both.
Both schemas are run on the same input. If both succeed, the output of the first schema is returned. If either fails, all errors are merged.
Created via vld::intersection().
§Example
ⓘ
let schema = vld::intersection(
vld::string().min(3),
vld::string().email(),
);Implementations§
Trait Implementations§
Source§impl<A, B> VldSchema for ZIntersection<A, B>
impl<A, B> VldSchema for ZIntersection<A, B>
Source§type Output = <A as VldSchema>::Output
type Output = <A as VldSchema>::Output
The Rust type produced by this schema after successful parsing.
Source§fn parse_value(
&self,
value: &Value,
) -> Result<<A as VldSchema>::Output, VldError>
fn parse_value( &self, value: &Value, ) -> Result<<A as VldSchema>::Output, VldError>
Parse and validate a
serde_json::Value.Source§fn parse<I>(&self, input: &I) -> Result<Self::Output, VldError>
fn parse<I>(&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>(self, next: S) -> ZPipe<Self, S>
fn pipe<S>(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>(self, other: B) -> ZUnion2<Self, B>where
B: VldSchema,
fn or<B>(self, other: B) -> ZUnion2<Self, B>where
B: VldSchema,
Create a union: this schema or another. Returns
Either<Self::Output, B::Output>.Source§fn and<B>(self, other: B) -> ZIntersection<Self, B>where
B: VldSchema,
fn and<B>(self, other: B) -> ZIntersection<Self, B>where
B: VldSchema,
Create an intersection: input must satisfy both schemas.
Auto Trait Implementations§
impl<A, B> Freeze for ZIntersection<A, B>
impl<A, B> RefUnwindSafe for ZIntersection<A, B>where
A: RefUnwindSafe,
B: RefUnwindSafe,
impl<A, B> Send for ZIntersection<A, B>
impl<A, B> Sync for ZIntersection<A, B>
impl<A, B> Unpin for ZIntersection<A, B>
impl<A, B> UnsafeUnpin for ZIntersection<A, B>where
A: UnsafeUnpin,
B: UnsafeUnpin,
impl<A, B> UnwindSafe for ZIntersection<A, B>where
A: UnwindSafe,
B: 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