orbtk_utils/
selection_mode.rs1#[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}