pub struct Conj<L: ValidateString, R: ValidateString> { /* private fields */ }Expand description
Require both rules to pass, from left to right.
See also:
Disj(dual).EitherError(error type).
§Example
use validus::prelude::*;
// Length limit and ASCII only.
pub type UserNameRule = Conj<StringSizeRule<4, 12>, StringAsciiRule>;
let bad1 = "123".validate::<UserNameRule>();
assert!(bad1.is_err());
assert!(bad1.unwrap_err().is_left()); // left = length limit
let bad2 = "1234567890123".validate::<UserNameRule>();
assert!(bad2.is_err());
assert!(bad2.unwrap_err().is_left()); // left
let bad3 = "wow 😎".validate::<UserNameRule>();
assert!(bad3.is_err());
assert!(bad3.unwrap_err().is_right()); // right = ASCII only
let good = "1234".validate::<UserNameRule>();
assert!(good.is_ok());
assert_eq!(good.unwrap(), "1234");Trait Implementations§
Source§impl<L: Clone + ValidateString, R: Clone + ValidateString> Clone for Conj<L, R>
impl<L: Clone + ValidateString, R: Clone + ValidateString> Clone for Conj<L, R>
Source§impl<L: Debug + ValidateString, R: Debug + ValidateString> Debug for Conj<L, R>
impl<L: Debug + ValidateString, R: Debug + ValidateString> Debug for Conj<L, R>
Source§impl<L: Default + ValidateString, R: Default + ValidateString> Default for Conj<L, R>
impl<L: Default + ValidateString, R: Default + ValidateString> Default for Conj<L, R>
Source§impl<L: Hash + ValidateString, R: Hash + ValidateString> Hash for Conj<L, R>
impl<L: Hash + ValidateString, R: Hash + ValidateString> Hash for Conj<L, R>
Source§impl<L: Ord + ValidateString, R: Ord + ValidateString> Ord for Conj<L, R>
impl<L: Ord + ValidateString, R: Ord + ValidateString> Ord for Conj<L, R>
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<L: PartialEq + ValidateString, R: PartialEq + ValidateString> PartialEq for Conj<L, R>
impl<L: PartialEq + ValidateString, R: PartialEq + ValidateString> PartialEq for Conj<L, R>
Source§impl<L: PartialOrd + ValidateString, R: PartialOrd + ValidateString> PartialOrd for Conj<L, R>
impl<L: PartialOrd + ValidateString, R: PartialOrd + ValidateString> PartialOrd for Conj<L, R>
Source§impl<L: ValidateString, R: ValidateString> ValidateString for Conj<L, R>
impl<L: ValidateString, R: ValidateString> ValidateString for Conj<L, R>
Source§type Error = EitherError<<L as ValidateString>::Error, <R as ValidateString>::Error>
type Error = EitherError<<L as ValidateString>::Error, <R as ValidateString>::Error>
Explain why the string slice is invalid. Read more
impl<L: Copy + ValidateString, R: Copy + ValidateString> Copy for Conj<L, R>
impl<L: Eq + ValidateString, R: Eq + ValidateString> Eq for Conj<L, R>
impl<L: ValidateString, R: ValidateString> StructuralPartialEq for Conj<L, R>
Auto Trait Implementations§
impl<L, R> Freeze for Conj<L, R>
impl<L, R> RefUnwindSafe for Conj<L, R>where
L: RefUnwindSafe,
R: RefUnwindSafe,
impl<L, R> Send for Conj<L, R>
impl<L, R> Sync for Conj<L, R>
impl<L, R> Unpin for Conj<L, R>
impl<L, R> UnwindSafe for Conj<L, R>where
L: UnwindSafe,
R: 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