[−][src]Trait trait_eval::Fact
Factorial!
Did I hear shouting? Or was that just this epic compile-time factorial operator?!
assert_eq!(<Zero as Fact>::Result::eval(), 1); assert_eq!(<One as Fact>::Result::eval(), 1); assert_eq!(<Two as Fact>::Result::eval(), 2); assert_eq!(<Three as Fact>::Result::eval(), 6); assert_eq!(<Four as Fact>::Result::eval(), 24); assert_eq!(<Five as Fact>::Result::eval(), 120); // assert_eq!(<Six as Fact>::Result::eval(), 720); -- `rustc` gives up about here :((
(Ok, fine, yes, the recursion limit is on like 20,000,0000.)
Associated Types
Loading content...Implementors
impl Fact for Zero
[src]
impl<T: Nat, U: Nat> Fact for Succ<T> where
T: Fact<Result = U>,
U: Times<Succ<T>>,
[src]
T: Fact<Result = U>,
U: Times<Succ<T>>,