reference_interval/
reference_interval_struct.rs1use serde::Serialize;
2use crate::reference_interval::ReferenceInterval;
3
4#[derive(Debug, Serialize)]
6pub struct ReferenceIntervalStruct<T: PartialOrd> {
7
8 #[allow(dead_code)]
10 pub lower: T,
11
12 #[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}