setting/lib.rs
1#![deny(rustdoc::missing_crate_level_docs)]
2#![deny(missing_docs)]
3#![deny(missing_debug_implementations)]
4#![doc = include_str ! ("../Readme.md")]
5
6mod methods;
7mod traits;
8
9/// A configurable field follows 3-state logic.
10#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
11#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
12pub enum Setting<T>
13where
14    T: Default,
15{
16    /// Every settable property has a initial value
17    ///
18    /// ```rust
19    /// this.cfg = Default::default()
20    /// ```
21    Initial,
22    /// ```rust
23    /// this.cfg = None
24    /// ```
25    Unset,
26    /// ```rust
27    /// this.cfg = Some(cfg)
28    /// ```
29    Normal(T),
30}