haar_lib/misc/
nullable_usize.rs

1//! 最大値を`NULL`として扱う`usize`
2
3/// 最大値を`NULL`として扱う`usize`
4#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
5pub struct NullableUsize(pub usize);
6
7impl NullableUsize {
8    /// NULLとして扱う値(`usize`の最大値)
9    pub const NULL: NullableUsize = Self(!0);
10
11    /// `NULL`ならば`true`を返す
12    pub fn is_null(self) -> bool {
13        self.0 == Self::NULL.0
14    }
15}
16
17impl Default for NullableUsize {
18    fn default() -> Self {
19        Self::NULL
20    }
21}