segment_map/
next.rs

1pub trait Next: Clone + PartialOrd {
2    fn next_checked(&self) -> Option<Self>;
3    fn next_unchecked(&self) -> Self { self.next_checked().expect("overflow") }
4}
5
6impl Next for usize {
7    fn next_checked(&self) -> Option<usize> { self.checked_add(1) }
8}
9
10impl Next for u8 {
11    fn next_checked(&self) -> Option<u8> { self.checked_add(1) }
12}
13
14impl Next for u16 {
15    fn next_checked(&self) -> Option<u16> { self.checked_add(1) }
16}
17
18impl Next for u32 {
19    fn next_checked(&self) -> Option<u32> { self.checked_add(1) }
20}
21
22impl Next for u64 {
23    fn next_checked(&self) -> Option<u64> { self.checked_add(1) }
24}
25
26impl Next for u128 {
27    fn next_checked(&self) -> Option<u128> { self.checked_add(1) }
28}
29
30impl Next for isize {
31    fn next_checked(&self) -> Option<isize> { self.checked_add(1) }
32}
33
34impl Next for i8 {
35    fn next_checked(&self) -> Option<i8> { self.checked_add(1) }
36}
37
38impl Next for i16 {
39    fn next_checked(&self) -> Option<i16> { self.checked_add(1) }
40}
41
42impl Next for i32 {
43    fn next_checked(&self) -> Option<i32> { self.checked_add(1) }
44}
45
46impl Next for i64 {
47    fn next_checked(&self) -> Option<i64> { self.checked_add(1) }
48}
49
50impl Next for i128 {
51    fn next_checked(&self) -> Option<i128> { self.checked_add(1) }
52}