[][src]Trait trait_eval::Plus

pub trait Plus<T: Nat>: Nat {
    type Result: Nat;
}

Addition

Addition at compile-time. That's right. Only limited by your imagination (and maybe your #[recursion_limit]).

assert_eq!(<Four as Plus<Three>>::Result::eval(), 7);
assert_eq!(<Seven as Plus<One>>::Result::eval(), 8);
assert_eq!(<Three as Plus<Three>>::Result::eval(), 6);
assert_eq!(<Two as Plus<Three>>::Result::eval(), 5);

Associated Types

type Result: Nat

Loading content...

Implementors

impl<T: Nat> Plus<T> for Zero[src]

type Result = T

impl<T: Nat, U: Nat> Plus<T> for Succ<U> where
    U: Plus<T>, 
[src]

type Result = Succ<U::Result>

Loading content...