Skip to main content

luaur_analysis/enums/
mark.rs

1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
2#[allow(non_camel_case_types)]
3pub enum Mark {
4    None,
5    Temporary,
6    Permanent,
7}
8
9impl Mark {
10    pub const None: Self = Self::None;
11    pub const Temporary: Self = Self::Temporary;
12    pub const Permanent: Self = Self::Permanent;
13}
14
15impl Default for Mark {
16    fn default() -> Self {
17        Self::None
18    }
19}
20
21// Required so `Mark` can be a `DenseHashMap` value type in `Frontend::parseGraph`
22// (C++: `DenseHashMap<SourceNode*, Mark> seen(nullptr)`). The map default-inserts
23// `Mark{}` for absent keys, which is the zero-initialized first enumerator `None`.
24impl luaur_common::records::dense_hash_table::DenseDefault for Mark {
25    fn dense_default() -> Self {
26        Self::None
27    }
28}