1pub trait RoundingMode {
2 fn round<F>(value: F) -> F
3 where
4 F: num::Float;
5}
6
7pub struct Ceil {}
8pub struct Floor {}
9pub struct Round {}
10
11impl RoundingMode for Round {
12 fn round<F>(value: F) -> F
13 where
14 F: num::Float,
15 {
16 value.round()
17 }
18}
19
20impl RoundingMode for Ceil {
21 fn round<F>(value: F) -> F
22 where
23 F: num::Float,
24 {
25 value.ceil()
26 }
27}
28
29impl RoundingMode for Floor {
30 fn round<F>(value: F) -> F
31 where
32 F: num::Float,
33 {
34 value.floor()
35 }
36}