Trait garde::validate::Validate

source ·
pub trait Validate {
    type Context;

    // Required method
    fn validate_into(
        &self,
        ctx: &Self::Context,
        parent: &mut dyn FnMut() -> Path,
        report: &mut Report
    );

    // Provided method
    fn validate(&self, ctx: &Self::Context) -> Result<(), Report> { ... }
}
Expand description

The core trait of this crate.

Validation runs the fields through every validation rules, and aggregates any errors into a Report.

Required Associated Types§

source

type Context

A user-provided context.

Custom validators receive a reference to this context.

Required Methods§

source

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

Validates Self, aggregating all validation errors into Report.

Provided Methods§

source

fn validate(&self, ctx: &Self::Context) -> Result<(), Report>

Validates Self, returning an Err with an aggregate of all errors if the validation failed.

This method should not be implemented manually. Implement Validate::validate_into instead, because Validate::validate has a default implementation that calls Validate::validate_into.

Implementations on Foreign Types§

source§

impl Validate for ()

§

type Context = ()

source§

fn validate_into( &self, _: &Self::Context, _: &mut dyn FnMut() -> Path, _: &mut Report )

source§

impl<'a, T: ?Sized + Validate> Validate for &'a T

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<'a, T: ?Sized + Validate> Validate for &'a mut T

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A> Validate for (A,)
where A: Validate,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B> Validate for (A, B)
where A: Validate, B: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C> Validate for (A, B, C)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D> Validate for (A, B, C, D)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E> Validate for (A, B, C, D, E)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F> Validate for (A, B, C, D, E, F)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F, G> Validate for (A, B, C, D, E, F, G)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>, G: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F, G, H> Validate for (A, B, C, D, E, F, G, H)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>, G: Validate<Context = A::Context>, H: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F, G, H, I> Validate for (A, B, C, D, E, F, G, H, I)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>, G: Validate<Context = A::Context>, H: Validate<Context = A::Context>, I: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F, G, H, I, J> Validate for (A, B, C, D, E, F, G, H, I, J)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>, G: Validate<Context = A::Context>, H: Validate<Context = A::Context>, I: Validate<Context = A::Context>, J: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F, G, H, I, J, K> Validate for (A, B, C, D, E, F, G, H, I, J, K)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>, G: Validate<Context = A::Context>, H: Validate<Context = A::Context>, I: Validate<Context = A::Context>, J: Validate<Context = A::Context>, K: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> Validate for (A, B, C, D, E, F, G, H, I, J, K, L)
where A: Validate, B: Validate<Context = A::Context>, C: Validate<Context = A::Context>, D: Validate<Context = A::Context>, E: Validate<Context = A::Context>, F: Validate<Context = A::Context>, G: Validate<Context = A::Context>, H: Validate<Context = A::Context>, I: Validate<Context = A::Context>, J: Validate<Context = A::Context>, K: Validate<Context = A::Context>, L: Validate<Context = A::Context>,

§

type Context = <A as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<K, V> Validate for BTreeMap<K, V>

§

type Context = <V as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<K, V, S> Validate for HashMap<K, V, S>

§

type Context = <V as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T> Validate for [T]
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T> Validate for BinaryHeap<T>
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T> Validate for BTreeSet<T>
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T> Validate for LinkedList<T>
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T> Validate for VecDeque<T>
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T> Validate for Vec<T>
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T, S> Validate for HashSet<T, S>
where T: Validate,

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T: Validate> Validate for Option<T>

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T: Validate> Validate for Box<T>

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T: Validate> Validate for Rc<T>

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T: Validate> Validate for Arc<T>

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

source§

impl<T: Validate, const N: usize> Validate for [T; N]

§

type Context = <T as Validate>::Context

source§

fn validate_into( &self, ctx: &Self::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report )

Implementors§