segment_map/
bounded.rs

1use std::{
2    usize,
3    u8,
4    u16,
5    u32,
6    u64,
7    u128,
8    isize,
9    i8,
10    i16,
11    i32,
12    i64,
13    i128
14};
15
16pub trait Bounded {
17    fn min() -> Self;
18    fn max() -> Self;
19}
20
21impl Bounded for usize {
22    fn min() -> usize { usize::MIN }
23    fn max() -> usize { usize::MAX }
24}
25
26impl Bounded for u8 {
27    fn min() -> u8 { u8::MIN }
28    fn max() -> u8 { u8::MAX }
29}
30
31impl Bounded for u16 {
32    fn min() -> u16 { u16::MIN }
33    fn max() -> u16 { u16::MAX }
34}
35
36impl Bounded for u32 {
37    fn min() -> u32 { u32::MIN }
38    fn max() -> u32 { u32::MAX }
39}
40
41impl Bounded for u64 {
42    fn min() -> u64 { u64::MIN }
43    fn max() -> u64 { u64::MAX }
44}
45
46impl Bounded for u128 {
47    fn min() -> u128 { u128::MIN }
48    fn max() -> u128 { u128::MAX }
49}
50
51impl Bounded for isize {
52    fn min() -> isize { isize::MIN }
53    fn max() -> isize { isize::MAX }
54}
55
56impl Bounded for i8 {
57    fn min() -> i8 { i8::MIN }
58    fn max() -> i8 { i8::MAX }
59}
60
61impl Bounded for i16 {
62    fn min() -> i16 { i16::MIN }
63    fn max() -> i16 { i16::MAX }
64}
65
66impl Bounded for i32 {
67    fn min() -> i32 { i32::MIN }
68    fn max() -> i32 { i32::MAX }
69}
70
71impl Bounded for i64 {
72    fn min() -> i64 { i64::MIN }
73    fn max() -> i64 { i64::MAX }
74}
75
76impl Bounded for i128 {
77    fn min() -> i128 { i128::MIN }
78    fn max() -> i128 { i128::MAX }
79}