pub struct Or<A, B>(/* private fields */);Expand description
Passes when either sub-rule A or B passes.
A is checked first; if it passes, B is not run. If A fails, the result
of B is returned — so when both fail, the error is B’s. Both sub-rules
must share the same Validator::Error type.
§Examples
use type_lib::combinator::Or;
use type_lib::rules::{Alphanumeric, Trimmed};
use type_lib::Validator;
type AlnumOrTrimmed = Or<Alphanumeric, Trimmed>;
assert!(AlnumOrTrimmed::validate("abc123").is_ok()); // alphanumeric
assert!(AlnumOrTrimmed::validate("a b c").is_ok()); // trimmed
assert!(AlnumOrTrimmed::validate(" oops ").is_err()); // neitherTrait Implementations§
Auto Trait Implementations§
impl<A, B> Freeze for Or<A, B>
impl<A, B> RefUnwindSafe for Or<A, B>
impl<A, B> Send for Or<A, B>
impl<A, B> Sync for Or<A, B>
impl<A, B> Unpin for Or<A, B>
impl<A, B> UnsafeUnpin for Or<A, B>
impl<A, B> UnwindSafe for Or<A, B>
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