Skip to main content

Validate

Trait 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 methods
    fn validate(&self) -> Result<(), Report>
       where Self::Context: Default { ... }
    fn validate_with(&self, ctx: &Self::Context) -> Result<(), Report> { ... }
}
Expand description

garde’s validation, which every write path runs: payload.validate(), and on a refusal limits::report_text for the agent, verbatim 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) -> Result<(), Report>
where Self::Context: Default,

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.

Source

fn validate_with(&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_with has a default implementation that calls Validate::validate_into.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Validate for ()

Source§

type Context = ()

Source§

fn validate_into( &self, _: &<() as Validate>::Context, _: &mut dyn FnMut() -> Path, _: &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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>, G: Validate<Context = <A as Validate>::Context>, H: Validate<Context = <A as Validate>::Context>, I: Validate<Context = <A as Validate>::Context>, J: Validate<Context = <A as Validate>::Context>, K: Validate<Context = <A as Validate>::Context>, L: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F, G, H, I, J, K, L) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>, G: Validate<Context = <A as Validate>::Context>, H: Validate<Context = <A as Validate>::Context>, I: Validate<Context = <A as Validate>::Context>, J: Validate<Context = <A as Validate>::Context>, K: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F, G, H, I, J, K) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>, G: Validate<Context = <A as Validate>::Context>, H: Validate<Context = <A as Validate>::Context>, I: Validate<Context = <A as Validate>::Context>, J: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F, G, H, I, J) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>, G: Validate<Context = <A as Validate>::Context>, H: Validate<Context = <A as Validate>::Context>, I: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F, G, H, I) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>, G: Validate<Context = <A as Validate>::Context>, H: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F, G, H) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>, G: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F, G) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>, F: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E, F) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>, E: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D, E) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>, D: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C, D) as Validate>::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 as Validate>::Context>, C: Validate<Context = <A as Validate>::Context>,

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B, C) as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A, B) as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <A as Validate>::Context

Source§

fn validate_into( &self, ctx: &<(A,) as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

impl<B> Validate for Cow<'_, B>
where B: Validate + ToOwned,

Source§

type Context = <B as Validate>::Context

Source§

fn validate_into( &self, ctx: &<Cow<'_, B> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <V as Validate>::Context

Source§

fn validate_into( &self, ctx: &<HashMap<K, V, S> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <V as Validate>::Context

Source§

fn validate_into( &self, ctx: &<BTreeMap<K, V> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<HashSet<T, S> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<[T; N] as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<&T as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<&mut T as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<Arc<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<BTreeSet<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<BinaryHeap<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<Box<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<LinkedList<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<Option<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<Rc<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<Vec<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<VecDeque<T> as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Source§

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

Source§

type Context = <T as Validate>::Context

Source§

fn validate_into( &self, ctx: &<[T] as Validate>::Context, parent: &mut dyn FnMut() -> Path, report: &mut Report, )

Implementors§