rstmt_core/freq/
impl_freq_ext.rs1use super::Frequency;
7use crate::RawFrequency;
8use num_traits::{Num, One, Zero};
9
10contained::fmt_wrapper! {
11 impl Frequency<T> {
12 Binary,
13 Debug,
14 Display,
15 LowerExp,
16 LowerHex,
17 Octal,
18 Pointer,
19 UpperExp,
20 UpperHex
21 }
22}
23
24contained::unary_wrapper! {
25 impl Frequency {
26 Neg.neg,
27 Not.not,
28 }
29}
30
31contained::binary_wrapper! {
32 impl Frequency {
33 Add.add,
34 Sub.sub,
35 Mul.mul,
36 Div.div,
37 Rem.rem,
38 BitAnd.bitand,
39 BitOr.bitor,
40 BitXor.bitxor,
41 Shl.shl,
42 Shr.shr,
43 }
44}
45
46impl<T> AsRef<T> for Frequency<T> {
47 fn as_ref(&self) -> &T {
48 &self.0
49 }
50}
51
52impl<T> AsMut<T> for Frequency<T> {
53 fn as_mut(&mut self) -> &mut T {
54 &mut self.0
55 }
56}
57
58impl<T> core::borrow::Borrow<T> for Frequency<T> {
59 fn borrow(&self) -> &T {
60 &self.0
61 }
62}
63
64impl<T> core::borrow::BorrowMut<T> for Frequency<T> {
65 fn borrow_mut(&mut self) -> &mut T {
66 &mut self.0
67 }
68}
69
70impl<T> core::ops::Deref for Frequency<T> {
71 type Target = T;
72
73 fn deref(&self) -> &Self::Target {
74 &self.0
75 }
76}
77
78impl<T> core::ops::DerefMut for Frequency<T> {
79 fn deref_mut(&mut self) -> &mut Self::Target {
80 &mut self.0
81 }
82}
83
84impl<T> From<T> for Frequency<T>
85where
86 T: RawFrequency,
87{
88 fn from(value: T) -> Self {
89 Frequency(value)
90 }
91}
92
93impl<T> PartialEq<T> for Frequency<T>
94where
95 T: PartialEq,
96{
97 fn eq(&self, other: &T) -> bool {
98 &self.0 == other
99 }
100}
101
102impl<'a, T> PartialEq<&'a T> for Frequency<T>
103where
104 T: PartialEq,
105{
106 fn eq(&self, other: &&'a T) -> bool {
107 &self.0 == *other
108 }
109}
110
111impl<'a, T> PartialEq<&'a mut T> for Frequency<T>
112where
113 T: PartialEq,
114{
115 fn eq(&self, other: &&'a mut T) -> bool {
116 &self.0 == *other
117 }
118}
119
120impl<T> PartialOrd<T> for Frequency<T>
121where
122 T: PartialOrd,
123{
124 fn partial_cmp(&self, other: &T) -> Option<core::cmp::Ordering> {
125 self.0.partial_cmp(other)
126 }
127}
128
129impl<'a, T> PartialOrd<&'a T> for Frequency<T>
130where
131 T: PartialOrd,
132{
133 fn partial_cmp(&self, other: &&'a T) -> Option<core::cmp::Ordering> {
134 self.0.partial_cmp(*other)
135 }
136}
137
138impl<'a, T> PartialOrd<&'a mut T> for Frequency<T>
139where
140 T: PartialOrd,
141{
142 fn partial_cmp(&self, other: &&'a mut T) -> Option<core::cmp::Ordering> {
143 self.0.partial_cmp(*other)
144 }
145}
146
147impl<T> One for Frequency<T>
148where
149 T: One,
150{
151 fn one() -> Self {
152 Frequency(T::one())
153 }
154}
155
156impl<T> Zero for Frequency<T>
157where
158 T: Zero,
159{
160 fn zero() -> Self {
161 Frequency(T::zero())
162 }
163
164 fn is_zero(&self) -> bool {
165 self.0.is_zero()
166 }
167}
168
169impl<T> Num for Frequency<T>
170where
171 T: Num,
172{
173 type FromStrRadixErr = T::FromStrRadixErr;
174
175 fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr> {
176 T::from_str_radix(str, radix).map(Frequency)
177 }
178}