Struct lib_config::Config
source · pub struct Config { /* private fields */ }Expand description
Object representing an open config file, use lib_config::open_from_path or lib_config::open_from_home to get an instance
Usage
A Config may contain primitive values (such as strings or numbers), arrays or Sections. A Section is a JSON object that can contain the same values as a Config,
useful to logically split the config file. To save the contents of the config call the save() associated function.
Implementations§
source§impl Config
impl Config
sourcepub fn write_value<K: Into<String>, V: Serialize>(
&mut self,
key: K,
value: V
) -> Result<(), Box<dyn Error>>
pub fn write_value<K: Into<String>, V: Serialize>( &mut self, key: K, value: V ) -> Result<(), Box<dyn Error>>
Writes a valute to the given key, if it doesn’t exist, inserts the key - value pair
sourcepub fn read_value<K: Into<String>, V: DeserializeOwned>(
&self,
key: K
) -> Result<V, Box<dyn Error>>
pub fn read_value<K: Into<String>, V: DeserializeOwned>( &self, key: K ) -> Result<V, Box<dyn Error>>
Reads a value from the given key, if the key does not exist returns Err
sourcepub fn read_or_insert<K: Into<String>, V: DeserializeOwned + Serialize + Clone>(
&mut self,
key: K,
value: V
) -> Result<V, Box<dyn Error>>
pub fn read_or_insert<K: Into<String>, V: DeserializeOwned + Serialize + Clone>( &mut self, key: K, value: V ) -> Result<V, Box<dyn Error>>
Reads a value from the given key, if the key does not exists, inserts it with the given value
sourcepub fn update_value<K, V, Out, F>(
&mut self,
key: &K,
f_upd: F
) -> Result<Out, Box<dyn Error>>where
K: ?Sized + Ord + Eq + Hash,
String: Borrow<K>,
V: DeserializeOwned,
Out: Serialize,
F: FnOnce(&V) -> Out,
pub fn update_value<K, V, Out, F>( &mut self, key: &K, f_upd: F ) -> Result<Out, Box<dyn Error>>where K: ?Sized + Ord + Eq + Hash, String: Borrow<K>, V: DeserializeOwned, Out: Serialize, F: FnOnce(&V) -> Out,
Updates a value with the given key using the provided function, returns the final value of the key, if the key does not exist returns Err
sourcepub fn get_section<K>(
&self,
key: &K
) -> Result<Section<&JObject>, Box<dyn Error>>where
K: ?Sized + Ord + Eq + Hash,
String: Borrow<K>,
pub fn get_section<K>( &self, key: &K ) -> Result<Section<&JObject>, Box<dyn Error>>where K: ?Sized + Ord + Eq + Hash, String: Borrow<K>,
Gets an immutable reference to Section at the given key
sourcepub fn get_section_mut<K>(
&mut self,
key: &K
) -> Result<Section<&mut JObject>, Box<dyn Error>>where
K: ?Sized + Ord + Eq + Hash,
String: Borrow<K>,
pub fn get_section_mut<K>( &mut self, key: &K ) -> Result<Section<&mut JObject>, Box<dyn Error>>where K: ?Sized + Ord + Eq + Hash, String: Borrow<K>,
Gets a mutable reference to Section at the given key
Remarks
Changing the Section’s value will also change the Config data
sourcepub fn clone_data(&self) -> JObject
pub fn clone_data(&self) -> JObject
Clones the Config data, the result does not have any reference to the original Config