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}