| |
@@ -0,0 +1,49 @@
|
| |
+ diff --git a/src/file/format/ini.rs b/src/file/format/ini.rs
|
| |
+ index e5e5950..b463560 100644
|
| |
+ --- a/src/file/format/ini.rs
|
| |
+ +++ b/src/file/format/ini.rs
|
| |
+ @@ -11,25 +11,25 @@ pub fn parse(
|
| |
+ let mut map: HashMap<String, Value> = HashMap::new();
|
| |
+ let i = Ini::load_from_str(text)?;
|
| |
+ for (sec, prop) in i.iter() {
|
| |
+ - match *sec {
|
| |
+ - Some(ref sec) => {
|
| |
+ + match sec {
|
| |
+ + Some(sec) => {
|
| |
+ let mut sec_map: HashMap<String, Value> = HashMap::new();
|
| |
+ for (k, v) in prop.iter() {
|
| |
+ sec_map.insert(
|
| |
+ - k.clone(),
|
| |
+ - Value::new(uri, ValueKind::String(v.clone())),
|
| |
+ + k.to_owned(),
|
| |
+ + Value::new(uri, ValueKind::String(v.to_owned())),
|
| |
+ );
|
| |
+ }
|
| |
+ map.insert(
|
| |
+ - sec.clone(),
|
| |
+ + sec.to_owned(),
|
| |
+ Value::new(uri, ValueKind::Table(sec_map)),
|
| |
+ );
|
| |
+ }
|
| |
+ None => {
|
| |
+ for (k, v) in prop.iter() {
|
| |
+ map.insert(
|
| |
+ - k.clone(),
|
| |
+ - Value::new(uri, ValueKind::String(v.clone())),
|
| |
+ + k.to_owned(),
|
| |
+ + Value::new(uri, ValueKind::String(v.to_owned())),
|
| |
+ );
|
| |
+ }
|
| |
+ }
|
| |
+ diff --git a/tests/file_ini.rs b/tests/file_ini.rs
|
| |
+ index 0b7b6a0..844beea 100644
|
| |
+ --- a/tests/file_ini.rs
|
| |
+ +++ b/tests/file_ini.rs
|
| |
+ @@ -63,6 +63,6 @@ fn test_error_parse() {
|
| |
+ assert!(res.is_err());
|
| |
+ assert_eq!(
|
| |
+ res.unwrap_err().to_string(),
|
| |
+ - r#"2:0 Expecting "[Some('='), Some(':')]" but found EOF. in tests/Settings-invalid.ini"#
|
| |
+ + r#"2:0 expecting "[Some('='), Some(':')]" but found EOF. in tests/Settings-invalid.ini"#
|
| |
+ );
|
| |
+ }
|
| |
Upstream PR: https://github.com/mehcode/config-rs/pull/152
Requires: https://src.fedoraproject.org/rpms/rust-rust-ini/pull-request/1