//! Copyright (C) 2022, Dmitriy Pleshevskiy //! //! vnetod is free software: you can redistribute it and/or modify //! it under the terms of the GNU General Public License as published by //! the Free Software Foundation, either version 3 of the License, or //! (at your option) any later version. //! //! vnetod is distributed in the hope that it will be useful, //! but WITHOUT ANY WARRANTY; without even the implied warranty of //! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //! GNU General Public License for more details. //! //! You should have received a copy of the GNU General Public License //! along with vnetod. If not, see . //! pub mod switch; #[derive(Debug, Clone, PartialEq, Eq)] struct Section { namespace: Option, name: String, } impl Section { fn new(name: &str) -> Self { Self { name: name.to_string(), namespace: None, } } fn with_namespace(namespace: &str, name: &str) -> Self { Self { name: name.to_string(), namespace: Some(namespace.to_string()), } } fn parse(s: &str) -> Self { let s = s.trim(); s.split_once(':') .map_or_else(|| Self::new(s), |(ns, name)| Self::with_namespace(ns, name)) } } struct SectionInfo { enable_variable: bool, disable_variable: bool, }