pub struct LibCfg {
pub scheme_sync_default: String,
pub scheme: Vec<Scheme>,
pub tmpl_html: TmplHtml,
}
Expand description
Processed configuration data.
Its structure is different form the input form defined in LibCfgRaw
(see
example in LIB_CONFIG_DEFAULT_TOML
).
For conversion use:
use tpnote_lib::config::LIB_CONFIG_DEFAULT_TOML;
use tpnote_lib::config::LibCfg;
use tpnote_lib::config_value::CfgVal;
use std::str::FromStr;
let cfg_val = CfgVal::from_str(LIB_CONFIG_DEFAULT_TOML).unwrap();
// Run test.
let lib_cfg = LibCfg::try_from(cfg_val).unwrap();
// Check.
assert_eq!(lib_cfg.scheme_sync_default, "default")
Fields§
§scheme_sync_default: String
The fallback scheme for the sync_filename
template choice, if the
scheme
header variable is empty or is not defined.
scheme: Vec<Scheme>
Configuration of Scheme
.
tmpl_html: TmplHtml
Configuration of HTML templates.
Implementations§
Source§impl LibCfg
impl LibCfg
Sourcepub fn scheme_idx(&self, name: &str) -> Result<usize, LibCfgError>
pub fn scheme_idx(&self, name: &str) -> Result<usize, LibCfgError>
Returns the index of a named scheme. If no scheme with that name can be
found, return LibCfgError::SchemeNotFound
.
Sourcepub fn assert_validity(&self) -> Result<(), LibCfgError>
pub fn assert_validity(&self) -> Result<(), LibCfgError>
Perform some semantic consistency checks.
sort_tag.extra_separator
must NOT be insort_tag.extra_chars
.sort_tag.extra_separator
must NOT be in0..9
.sort_tag.extra_separator
must NOT be ina..z
.sort_tag.extra_separator
must NOT be insort_tag.extra_chars
.sort_tag.extra_separator
must NOTFILENAME_DOTFILE_MARKER
.copy_counter.extra_separator
must be one ofsanitize_filename_reader_friendly::TRIM_LINE_CHARS
.- All characters of
sort_tag.separator
must be insort_tag.extra_chars
. sort_tag.separator
must start with NOTFILENAME_DOTFILE_MARKER
.
Trait Implementations§
Source§impl Default for LibCfg
Reads the file ./config_default.toml
(LIB_CONFIG_DEFAULT_TOML
) into
LibCfg
. Panics if this is not possible.
impl Default for LibCfg
Reads the file ./config_default.toml
(LIB_CONFIG_DEFAULT_TOML
) into
LibCfg
. Panics if this is not possible.
Source§impl<'de> Deserialize<'de> for LibCfg
impl<'de> Deserialize<'de> for LibCfg
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl TryFrom<CfgVal> for LibCfg
This constructor accepts as input the newtype CfgVal
containing
a toml::map::Map<String, Value>
. Each String
is the name of a top
level configuration variable.
The inner Map is expected to be a data structure that can be copied into
the internal temporary variable LibCfgRaw
. This internal variable
is then processed and the result is stored in a LibCfg
struct. For details
see the impl TryFrom<LibCfgRaw> for LibCfg
. The processing occurs as
follows:
impl TryFrom<CfgVal> for LibCfg
This constructor accepts as input the newtype CfgVal
containing
a toml::map::Map<String, Value>
. Each String
is the name of a top
level configuration variable.
The inner Map is expected to be a data structure that can be copied into
the internal temporary variable LibCfgRaw
. This internal variable
is then processed and the result is stored in a LibCfg
struct. For details
see the impl TryFrom<LibCfgRaw> for LibCfg
. The processing occurs as
follows:
- Merge each incomplete
CfgVal(key="scheme")
intoCfgVal(key="base_scheme")
and store the resultingscheme
struct inLibCfg.scheme
. - If
CfgVal(key="html_tmpl.viewer_highlighting_css")
is empty, generate the value fromCfgVal(key="tmpl.viewer_highlighting_theme")
. - Do the same for
CfgVal(key="html_tmpl.exporter_highlighting_css")
.
Auto Trait Implementations§
impl Freeze for LibCfg
impl RefUnwindSafe for LibCfg
impl Send for LibCfg
impl Sync for LibCfg
impl Unpin for LibCfg
impl UnwindSafe for LibCfg
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more