dashu_ratio/
fmt.rs

1use crate::{
2    rbig::{RBig, Relaxed},
3    repr::Repr,
4};
5use core::fmt::{self, Write};
6
7impl fmt::Debug for Repr {
8    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9        if f.alternate() {
10            f.debug_struct("Repr")
11                .field("numerator", &format_args!("{:#?}", &self.numerator))
12                .field("denominator", &format_args!("{:#?}", &self.denominator))
13                .finish()
14        } else {
15            f.write_fmt(format_args!("{:?} / {:?}", &self.numerator, &self.denominator))
16        }
17    }
18}
19
20impl fmt::Display for Repr {
21    #[inline]
22    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
23        if self.denominator.is_one() {
24            fmt::Display::fmt(&self.numerator, f)
25        } else {
26            fmt::Display::fmt(&self.numerator, f)?;
27            f.write_char('/')?;
28            fmt::Display::fmt(&self.denominator, f)
29        }
30    }
31}
32
33impl fmt::Debug for RBig {
34    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
35        if f.alternate() {
36            f.debug_struct("RBig")
37                .field("numerator", &format_args!("{:#?}", self.numerator()))
38                .field("denominator", &format_args!("{:#?}", self.denominator()))
39                .finish()
40        } else {
41            f.write_fmt(format_args!("{:?} / {:?}", self.numerator(), self.denominator()))
42        }
43    }
44}
45
46impl fmt::Display for RBig {
47    #[inline]
48    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
49        fmt::Display::fmt(&self.0, f)
50    }
51}
52
53impl fmt::Debug for Relaxed {
54    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
55        if f.alternate() {
56            f.debug_struct("Relaxed")
57                .field("numerator", &format_args!("{:#?}", self.numerator()))
58                .field("denominator", &format_args!("{:#?}", self.denominator()))
59                .finish()
60        } else {
61            f.write_fmt(format_args!("{:?} / {:?}", self.numerator(), self.denominator()))
62        }
63    }
64}
65
66impl fmt::Display for Relaxed {
67    #[inline]
68    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
69        fmt::Display::fmt(&self.0, f)
70    }
71}