Macro and

Source
macro_rules! and {
    ($first: ty, $second: ty) => { ... };
    ($first: ty, $second: ty, $($rest: ty),+ $(,)?) => { ... };
}
Expand description

Given two or more predicates, composes them together with And.

For predicates P and Q, and!(P, Q) is And<P, Q>.

For predicates P, Q, and R, and!(P, Q, R) is And<P, And<Q, R>>.

Ad infinitum…