pets 0.1.2

Predicate existential types.
Documentation
use crate::Pred;
use num_integer::Integer;
std_prelude!();

#[derive(Clone, Copy, Debug, Default)]
/// Accepts even integers.
pub struct Even;

#[derive(Clone, Copy, Debug, Default)]
/// Accepts odd integers.
pub struct Odd;

impl<T: Integer> Pred<T> for Even {
    fn accept(t: &T) -> bool {
        t.is_even()
    }
}

impl<T: Integer> Pred<T> for Odd {
    fn accept(t: &T) -> bool {
        t.is_odd()
    }
}