summaryrefslogtreecommitdiffstats
path: root/tests/file_yaml.rs
diff options
context:
space:
mode:
authorYounessBird <67457600+YounessBird@users.noreply.github.com>2022-06-01 19:15:43 +0100
committerYounessBird <67457600+YounessBird@users.noreply.github.com>2022-06-01 22:04:20 +0100
commit2b2966611b70485e184178d0c43ed340e8991593 (patch)
tree57398f49d080eae695880bf1fde89db830896776 /tests/file_yaml.rs
parentc8ee9f1335fb093cda3debabe15ad0f7a3ab9071 (diff)
fix yaml to parse int keys
Diffstat (limited to 'tests/file_yaml.rs')
-rw-r--r--tests/file_yaml.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/file_yaml.rs b/tests/file_yaml.rs
index 233b92c..0ece482 100644
--- a/tests/file_yaml.rs
+++ b/tests/file_yaml.rs
@@ -91,3 +91,32 @@ fn test_error_parse() {
)
);
}
+
+use std::collections::HashMap;
+
+#[derive(Debug, Deserialize)]
+struct Outer {
+ inner_string: HashMap<String, Inner>,
+ inner_int: HashMap<u32, Inner>,
+}
+
+#[derive(Debug, Deserialize)]
+struct Inner {
+ member: String,
+}
+
+#[test]
+fn test_yaml_parsing_key() {
+ let config = Config::builder()
+ .add_source(File::new("tests/test-keys.yaml", FileFormat::Yaml))
+ .build()
+ .unwrap()
+ .try_deserialize::<Outer>()
+ .unwrap();
+ assert_eq!(config.inner_int.get(&1).unwrap().member, "Test Int 1");
+ assert_eq!(config.inner_int.get(&2).unwrap().member, "Test Int 2");
+ assert_eq!(
+ config.inner_string.get("str_key").unwrap().member,
+ "Test String"
+ );
+}