Struct Ini

Source
pub struct Ini { /* private fields */ }
Expand description

Ini struct

Implementations§

Source§

impl Ini

Source

pub fn new() -> Ini

Create an instance

Examples found in repository?
examples/test.rs (line 8)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn with_section<S>(&mut self, section: Option<S>) -> SectionSetter<'_>
where S: Into<String>,

Set with a specified section, None is for the general section

Examples found in repository?
examples/test.rs (line 9)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn with_general_section(&mut self) -> SectionSetter<'_>

Set with general section, a simple wrapper of with_section(None::<String>)

Source

pub fn general_section(&self) -> &Properties

Get the immutable general section

Examples found in repository?
examples/test.rs (line 43)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn general_section_mut(&mut self) -> &mut Properties

Get the mutable general section

Source

pub fn section<S>(&self, name: Option<S>) -> Option<&Properties>
where S: Into<String>,

Get a immutable section

Examples found in repository?
examples/test.rs (line 40)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn section_mut<S>(&mut self, name: Option<S>) -> Option<&mut Properties>
where S: Into<String>,

Get a mutable section

Examples found in repository?
examples/test.rs (line 17)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn section_all<S>( &self, name: Option<S>, ) -> impl DoubleEndedIterator<Item = &Properties>
where S: Into<String>,

Get all sections immutable with the same key

Source

pub fn section_all_mut<S>( &mut self, name: Option<S>, ) -> impl DoubleEndedIterator<Item = &mut Properties>
where S: Into<String>,

Get all sections mutable with the same key

Source

pub fn entry(&mut self, name: Option<String>) -> SectionEntry<'_>

Get the entry

Source

pub fn clear(&mut self)

Clear all entries

Source

pub fn sections(&self) -> impl DoubleEndedIterator<Item = Option<&str>>

Iterate with sections

Source

pub fn set_to<S>(&mut self, section: Option<S>, key: String, value: String)
where S: Into<String>,

Set key-value to a section

Source

pub fn get_from<'a, S>( &'a self, section: Option<S>, key: &str, ) -> Option<&'a str>
where S: Into<String>,

Get the first value from the sections with key

Example:

use ini::Ini;
let input = "[sec]\nabc = def\n";
let ini = Ini::load_from_str(input).unwrap();
assert_eq!(ini.get_from(Some("sec"), "abc"), Some("def"));
Source

pub fn get_from_or<'a, S>( &'a self, section: Option<S>, key: &str, default: &'a str, ) -> &'a str
where S: Into<String>,

Get the first value from the sections with key, return the default value if it does not exist

Example:

use ini::Ini;
let input = "[sec]\n";
let ini = Ini::load_from_str(input).unwrap();
assert_eq!(ini.get_from_or(Some("sec"), "key", "default"), "default");
Source

pub fn get_from_mut<'a, S>( &'a mut self, section: Option<S>, key: &str, ) -> Option<&'a mut str>
where S: Into<String>,

Get the first mutable value from the sections with key

Source

pub fn delete<S>(&mut self, section: Option<S>) -> Option<Properties>
where S: Into<String>,

Delete the first section with key, return the properties if it exists

Source

pub fn delete_from<S>( &mut self, section: Option<S>, key: &str, ) -> Option<String>
where S: Into<String>,

Delete the key from the section, return the value if key exists or None

Source

pub fn len(&self) -> usize

Total sections count

Source

pub fn is_empty(&self) -> bool

Check if object contains no section

Source§

impl Ini

Source

pub fn write_to_file<P: AsRef<Path>>(&self, filename: P) -> Result<()>

Write to a file

Examples found in repository?
examples/test.rs (line 23)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn write_to_file_policy<P: AsRef<Path>>( &self, filename: P, policy: EscapePolicy, ) -> Result<()>

Write to a file

Source

pub fn write_to_file_opt<P: AsRef<Path>>( &self, filename: P, opt: WriteOption, ) -> Result<()>

Write to a file with options

Source

pub fn write_to<W: Write>(&self, writer: &mut W) -> Result<()>

Write to a writer

Examples found in repository?
examples/test.rs (line 21)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn write_to_policy<W: Write>( &self, writer: &mut W, policy: EscapePolicy, ) -> Result<()>

Write to a writer

Source

pub fn write_to_opt<W: Write>( &self, writer: &mut W, opt: WriteOption, ) -> Result<()>

Write to a writer with options

Source§

impl Ini

Source

pub fn load_from_str(buf: &str) -> Result<Ini, ParseError>

Load from a string

Source

pub fn load_from_str_noescape(buf: &str) -> Result<Ini, ParseError>

Load from a string, but do not interpret ’' as an escape character

Source

pub fn load_from_str_opt(buf: &str, opt: ParseOption) -> Result<Ini, ParseError>

Load from a string with options

Source

pub fn read_from<R: Read>(reader: &mut R) -> Result<Ini, Error>

Load from a reader

Source

pub fn read_from_noescape<R: Read>(reader: &mut R) -> Result<Ini, Error>

Load from a reader, but do not interpret ’' as an escape character

Source

pub fn read_from_opt<R: Read>( reader: &mut R, opt: ParseOption, ) -> Result<Ini, Error>

Load from a reader with options

Source

pub fn load_from_file<P: AsRef<Path>>(filename: P) -> Result<Ini, Error>

Load from a file

Examples found in repository?
examples/test.rs (line 27)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn load_from_file_noescape<P: AsRef<Path>>( filename: P, ) -> Result<Ini, Error>

Load from a file, but do not interpret ’' as an escape character

Source

pub fn load_from_file_opt<P: AsRef<Path>>( filename: P, opt: ParseOption, ) -> Result<Ini, Error>

Load from a file with options

Source§

impl<'a> Ini

Source

pub fn iter(&'a self) -> SectionIter<'a>

Immutable iterate though sections

Examples found in repository?
examples/test.rs (line 31)
7fn main() {
8    let mut conf = Ini::new();
9    conf.with_section(None::<String>).set("encoding", "utf-8");
10    conf.with_section(Some("User"))
11        .set("name", "Raspberry树莓")
12        .set("value", "Pi");
13    conf.with_section(Some("Library"))
14        .set("name", "Sun Yat-sen U")
15        .set("location", "Guangzhou=world\x0ahahaha");
16
17    conf.section_mut(Some("Library")).unwrap().insert("seats", "42");
18
19    println!("---------------------------------------");
20    println!("Writing to file {:?}\n", CONF_FILE_NAME);
21    conf.write_to(&mut stdout()).unwrap();
22
23    conf.write_to_file(CONF_FILE_NAME).unwrap();
24
25    println!("----------------------------------------");
26    println!("Reading from file {:?}", CONF_FILE_NAME);
27    let i = Ini::load_from_file(CONF_FILE_NAME).unwrap();
28
29    println!("Iterating");
30    let general_section_name = "__General__";
31    for (sec, prop) in i.iter() {
32        let section_name = sec.as_ref().unwrap_or(&general_section_name);
33        println!("-- Section: {:?} begins", section_name);
34        for (k, v) in prop.iter() {
35            println!("{}: {:?}", k, v);
36        }
37    }
38    println!();
39
40    let section = i.section(Some("User")).unwrap();
41    println!("name={}", section.get("name").unwrap());
42    println!("conf[User][name]={}", &i["User"]["name"]);
43    println!("General Section: {:?}", i.general_section());
44}
Source

pub fn mut_iter(&'a mut self) -> SectionIterMut<'a>

👎Deprecated: Use iter_mut instead!

Mutable iterate though sections

Source

pub fn iter_mut(&'a mut self) -> SectionIterMut<'a>

Mutable iterate though sections

Trait Implementations§

Source§

impl Clone for Ini

Source§

fn clone(&self) -> Ini

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Ini

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Ini

Source§

fn default() -> Self

Creates an ini instance with an empty general section. This allows Ini::general_section and Ini::with_general_section to be called without panicking.

Source§

impl<'q> Index<&'q str> for Ini

Source§

type Output = Properties

The returned type after indexing.
Source§

fn index<'a>(&'a self, index: &'q str) -> &'a Properties

Performs the indexing (container[index]) operation. Read more
Source§

impl<S: Into<String>> Index<Option<S>> for Ini

Source§

type Output = Properties

The returned type after indexing.
Source§

fn index(&self, index: Option<S>) -> &Properties

Performs the indexing (container[index]) operation. Read more
Source§

impl<'q> IndexMut<&'q str> for Ini

Source§

fn index_mut<'a>(&'a mut self, index: &'q str) -> &'a mut Properties

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl<S: Into<String>> IndexMut<Option<S>> for Ini

Source§

fn index_mut(&mut self, index: Option<S>) -> &mut Properties

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl<'a> IntoIterator for &'a Ini

Source§

type IntoIter = SectionIter<'a>

Which kind of iterator are we turning this into?
Source§

type Item = (Option<&'a str>, &'a Properties)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a> IntoIterator for &'a mut Ini

Source§

type IntoIter = SectionIterMut<'a>

Which kind of iterator are we turning this into?
Source§

type Item = (Option<&'a str>, &'a mut Properties)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl IntoIterator for Ini

Source§

type IntoIter = SectionIntoIter

Which kind of iterator are we turning this into?
Source§

type Item = (Option<String>, Properties)

The type of the elements being iterated over.
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more

Auto Trait Implementations§

§

impl Freeze for Ini

§

impl RefUnwindSafe for Ini

§

impl Send for Ini

§

impl Sync for Ini

§

impl Unpin for Ini

§

impl UnwindSafe for Ini

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.