eryon_core/ops/
increment.rs1pub trait Increment {
7 fn increment(self) -> Self;
8}
9
10pub trait IncrementMut {
11 fn increment_mut(&mut self);
12}
13
14pub trait Decrement {
15 fn decrement(self) -> Self;
16}
17
18pub trait DecrementMut {
19 fn decrement_mut(&mut self);
20}
21
22impl<T> Decrement for T
23where
24 T: num::One + core::ops::Sub<T, Output = T>,
25{
26 fn decrement(self) -> Self {
27 self - T::one()
28 }
29}
30
31impl<T> DecrementMut for T
32where
33 T: num::One + core::ops::SubAssign<T>,
34{
35 fn decrement_mut(&mut self) {
36 *self -= T::one()
37 }
38}
39
40impl<T> Increment for T
41where
42 T: num::One + core::ops::Add<T, Output = T>,
43{
44 fn increment(self) -> Self {
45 self + T::one()
46 }
47}
48
49impl<T> IncrementMut for T
50where
51 T: num::One + core::ops::AddAssign<T>,
52{
53 fn increment_mut(&mut self) {
54 *self += T::one()
55 }
56}