fixed_sqrt/
traits.rs

1//! Additional traits
2
3use fixed::types::extra::*;
4use typenum::{uint, B0, IsLess};
5
6pub trait IsEven : uint::GetBit <U0, Output=B0> {}
7pub trait LtU8   : LeEqU8   + IsLess <U8,   Output=True> {}
8pub trait LtU16  : LeEqU16  + IsLess <U16,  Output=True> {}
9pub trait LtU32  : LeEqU32  + IsLess <U32,  Output=True> {}
10pub trait LtU64  : LeEqU64  + IsLess <U64,  Output=True> {}
11pub trait LtU128 : LeEqU128 + IsLess <U128, Output=True> {}
12
13impl <U> IsEven for U where U : uint::GetBit <U0, Output=B0> {}
14impl <U> LtU8   for U where U : LeEqU8   + IsLess <U8,   Output=True> {}
15impl <U> LtU16  for U where U : LeEqU16  + IsLess <U16,  Output=True> {}
16impl <U> LtU32  for U where U : LeEqU32  + IsLess <U32,  Output=True> {}
17impl <U> LtU64  for U where U : LeEqU64  + IsLess <U64,  Output=True> {}
18impl <U> LtU128 for U where U : LeEqU128 + IsLess <U128, Output=True> {}