-/* Utils */
-impl<T: Clone + Integer + Ord>
- Round for Ratio<T> {
-
- fn floor(&self) -> Ratio<T> {
- if *self < Zero::zero() {
- Ratio::from_integer((self.numer - self.denom + One::one()) / self.denom)
- } else {
- Ratio::from_integer(self.numer / self.denom)
- }
- }
-
- fn ceil(&self) -> Ratio<T> {
- if *self < Zero::zero() {
- Ratio::from_integer(self.numer / self.denom)
- } else {
- Ratio::from_integer((self.numer + self.denom - One::one()) / self.denom)
- }
- }
-
- #[inline]
- fn round(&self) -> Ratio<T> {
- if *self < Zero::zero() {
- Ratio::from_integer((self.numer - self.denom + One::one()) / self.denom)
- } else {
- Ratio::from_integer((self.numer + self.denom - One::one()) / self.denom)
- }
- }
-
- #[inline]
- fn trunc(&self) -> Ratio<T> {
- Ratio::from_integer(self.numer / self.denom)
- }
-
- fn fract(&self) -> Ratio<T> {
- Ratio::new_raw(self.numer % self.denom, self.denom.clone())
- }
-}
-