orbtk_utils/
selection_mode.rs

1/// Represents a selection mode.
2#[derive(Copy, Clone, PartialEq, Debug)]
3pub enum SelectionMode {
4    None,
5    Single,
6    Multiple,
7}
8
9impl Default for SelectionMode {
10    fn default() -> Self {
11        SelectionMode::Single
12    }
13}
14
15impl From<&str> for SelectionMode {
16    fn from(t: &str) -> Self {
17        match t {
18            "Single" | "single" => SelectionMode::Single,
19            "Multiple" | "multiple" => SelectionMode::Multiple,
20            _ => SelectionMode::None,
21        }
22    }
23}
24
25#[cfg(test)]
26mod tests {
27    use crate::prelude::*;
28
29    #[test]
30    fn test_into() {
31        let selection_mode: SelectionMode = "Single".into();
32        assert_eq!(selection_mode, SelectionMode::Single);
33
34        let selection_mode: SelectionMode = "single".into();
35        assert_eq!(selection_mode, SelectionMode::Single);
36
37        let selection_mode: SelectionMode = "Multiple".into();
38        assert_eq!(selection_mode, SelectionMode::Multiple);
39
40        let selection_mode: SelectionMode = "multiple".into();
41        assert_eq!(selection_mode, SelectionMode::Multiple);
42
43        let selection_mode: SelectionMode = "None".into();
44        assert_eq!(selection_mode, SelectionMode::None);
45
46        let selection_mode: SelectionMode = "none".into();
47        assert_eq!(selection_mode, SelectionMode::None);
48
49        let selection_mode: SelectionMode = "other".into();
50        assert_eq!(selection_mode, SelectionMode::None);
51    }
52}