libgir/config/
work_mode.rs
1use std::str::FromStr;
2
3#[derive(Default, Clone, Copy, Debug, Eq, PartialEq)]
4pub enum WorkMode {
5 #[default]
6 Normal, Sys, Doc, DisplayNotBound, }
11
12impl WorkMode {
13 pub fn is_normal(self) -> bool {
14 matches!(self, Self::Normal)
15 }
16
17 pub fn is_generate_rust_files(self) -> bool {
18 matches!(self, Self::Normal | Self::Sys)
19 }
20}
21
22impl FromStr for WorkMode {
23 type Err = String;
24 fn from_str(s: &str) -> Result<Self, Self::Err> {
25 match s {
26 "normal" => Ok(Self::Normal),
27 "sys" => Ok(Self::Sys),
28 "doc" => Ok(Self::Doc),
29 "not_bound" => Ok(Self::DisplayNotBound),
30 _ => Err(format!("Wrong work mode '{s}'")),
31 }
32 }
33}