reference_interval/
reference_interval_struct.rs

1use serde::Serialize;
2use crate::reference_interval::ReferenceInterval;
3
4/// Reference interval with a lower reference limit and upper reference limit.
5#[derive(Debug, Serialize)]
6pub struct ReferenceIntervalStruct<T: PartialOrd> {
7
8    /// Lower Reference Limit (LRL)
9    #[allow(dead_code)]
10    pub lower: T,
11
12    /// Upper Reference Limit (URL)
13    #[allow(dead_code)]
14    pub upper: T,
15
16}
17
18impl<T: PartialOrd> ReferenceInterval<T> for ReferenceIntervalStruct<T> {
19
20    fn lower(&self) -> &T {
21        &self.lower
22    }
23
24    fn upper(&self) -> &T {
25        &self.upper
26    }    
27   
28}
29
30#[cfg(test)]
31mod tests {
32    use super::*;
33
34    #[test]
35    fn test_struct() {
36        let x = ReferenceIntervalStruct{
37            lower: 11,
38            upper: 97,
39        };
40        assert_eq!(x.lower, 11);
41        assert_eq!(x.upper, 97);
42    }
43
44    #[test]
45    fn test_trait() {
46        let x = ReferenceIntervalStruct{
47            lower: 11,
48            upper: 97,
49        };
50        assert_eq!(*x.lower(), 11);
51        assert_eq!(*x.upper(), 97);
52    }
53}