Struct Eval

Source
pub struct Eval<'a, T>(pub T, pub &'a str);
Expand description

Rule to constrain any type to a predicate

The value is always passed by its reference

If you pass a closure make sure that the value are typed, without this, rust consider that your closure is not general enough because it can’t ensure that it implements FnOnce for any lifetime

§Example

use type_rules::prelude::*;

#[derive(Validator)]
struct EvenInteger(
    #[rule(Eval(|v: &u32| v % 2 == 0, "Value need to be even"))]
    u32
);

Tuple Fields§

§0: T§1: &'a str

Trait Implementations§

Source§

impl<'a, T, U> Rule<U> for Eval<'a, T>
where T: Fn(&U) -> bool,

Source§

fn check(&self, value: &U) -> Result<(), String>

Auto Trait Implementations§

§

impl<'a, T> Freeze for Eval<'a, T>
where T: Freeze,

§

impl<'a, T> RefUnwindSafe for Eval<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for Eval<'a, T>
where T: Send,

§

impl<'a, T> Sync for Eval<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for Eval<'a, T>
where T: Unpin,

§

impl<'a, T> UnwindSafe for Eval<'a, T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.