sel4_async_time/
sub_key.rs
1pub trait SubKey: Sized + Ord {
8 fn min() -> Self;
9
10 #[allow(dead_code)]
11 fn max() -> Self;
12
13 fn succ(&self) -> Option<Self>;
14}
15
16macro_rules! sub_key_impl {
17 ($t:ty) => {
18 impl SubKey for $t {
19 fn min() -> Self {
20 <$t>::MIN
21 }
22
23 fn max() -> Self {
24 <$t>::MAX
25 }
26
27 fn succ(&self) -> Option<Self> {
28 self.checked_add(1)
29 }
30 }
31 };
32}
33
34sub_key_impl!(u8);
35sub_key_impl!(u16);
36sub_key_impl!(u32);
37sub_key_impl!(u64);
38sub_key_impl!(u128);
39sub_key_impl!(usize);