MCPcopy Create free account
hub / github.com/assert-rs/predicates-rs / PredicateBooleanExt

Interface PredicateBooleanExt

src/boolean.rs:440–501  ·  view source on GitHub ↗

`Predicate` extension that adds boolean logic.

Source from the content-addressed store, hash-verified

438
439/// `Predicate` extension that adds boolean logic.
440pub trait PredicateBooleanExt<Item: ?Sized>
441where
442 Self: Predicate<Item>,
443{
444 /// Compute the logical AND of two `Predicate` results, returning the result.
445 ///
446 /// # Examples
447 ///
448 /// ```
449 /// use predicates::prelude::*;
450 ///
451 /// let predicate_fn1 = predicate::always().and(predicate::always());
452 /// let predicate_fn2 = predicate::always().and(predicate::never());
453 /// assert_eq!(true, predicate_fn1.eval(&4));
454 /// assert_eq!(false, predicate_fn2.eval(&4));
455 fn and<B>(self, other: B) -> AndPredicate<Self, B, Item>
456 where
457 B: Predicate<Item>,
458 Self: Sized,
459 {
460 AndPredicate::new(self, other)
461 }
462
463 /// Compute the logical OR of two `Predicate` results, returning the result.
464 ///
465 /// # Examples
466 ///
467 /// ```
468 /// use predicates::prelude::*;
469 ///
470 /// let predicate_fn1 = predicate::always().or(predicate::always());
471 /// let predicate_fn2 = predicate::always().or(predicate::never());
472 /// let predicate_fn3 = predicate::never().or(predicate::never());
473 /// assert_eq!(true, predicate_fn1.eval(&4));
474 /// assert_eq!(true, predicate_fn2.eval(&4));
475 /// assert_eq!(false, predicate_fn3.eval(&4));
476 fn or<B>(self, other: B) -> OrPredicate<Self, B, Item>
477 where
478 B: Predicate<Item>,
479 Self: Sized,
480 {
481 OrPredicate::new(self, other)
482 }
483
484 /// Compute the logical NOT of a `Predicate`, returning the result.
485 ///
486 /// # Examples
487 ///
488 /// ```
489 /// use predicates::prelude::*;
490 ///
491 /// let predicate_fn1 = predicate::always().not();
492 /// let predicate_fn2 = predicate::never().not();
493 /// assert_eq!(false, predicate_fn1.eval(&4));
494 /// assert_eq!(true, predicate_fn2.eval(&4));
495 fn not(self) -> NotPredicate<Self, Item>
496 where
497 Self: Sized,

Callers 2

mainFunction · 0.80
mainFunction · 0.80

Implementers 1

boolean.rssrc/boolean.rs

Calls

no outgoing calls

Tested by

no test coverage detected