safe_arithmetic/
round.rs

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}