remove Frac: LeEqU bounds from struct Fixed, leave them for impl

This commit is contained in:
Trevor Spiteri 2019-08-16 15:57:38 +02:00
parent 9eab1c5be9
commit 875305bdc3
1 changed files with 14 additions and 8 deletions

View File

@ -323,32 +323,38 @@ assert_eq!(two_point_75.to_string(), \"2.8\");
[typenum crate]: https://crates.io/crates/typenum [typenum crate]: https://crates.io/crates/typenum
"; ";
#[repr(transparent)] #[repr(transparent)]
pub struct $Fixed<Frac: $LeEqU> { pub struct $Fixed<Frac> {
bits: $Inner, bits: $Inner,
phantom: PhantomData<Frac>, phantom: PhantomData<Frac>,
} }
); );
impl<Frac: $LeEqU> Clone for $Fixed<Frac> { impl<Frac> Clone for $Fixed<Frac> {
#[inline] #[inline]
fn clone(&self) -> $Fixed<Frac> { fn clone(&self) -> $Fixed<Frac> {
Self::from_bits(self.to_bits()) $Fixed {
bits: self.bits,
phantom: PhantomData,
}
} }
} }
impl<Frac: $LeEqU> Copy for $Fixed<Frac> {} impl<Frac> Copy for $Fixed<Frac> {}
impl<Frac: $LeEqU> Default for $Fixed<Frac> { impl<Frac> Default for $Fixed<Frac> {
#[inline] #[inline]
fn default() -> $Fixed<Frac> { fn default() -> $Fixed<Frac> {
Self::from_bits(<$Inner>::default()) $Fixed {
bits: <$Inner>::default(),
phantom: PhantomData
}
} }
} }
impl<Frac: $LeEqU> Hash for $Fixed<Frac> { impl<Frac> Hash for $Fixed<Frac> {
#[inline] #[inline]
fn hash<H: Hasher>(&self, state: &mut H) { fn hash<H: Hasher>(&self, state: &mut H) {
self.to_bits().hash(state); self.bits.hash(state);
} }
} }