diff options
author | YounessBird <67457600+YounessBird@users.noreply.github.com> | 2022-06-01 19:15:43 +0100 |
---|---|---|
committer | YounessBird <67457600+YounessBird@users.noreply.github.com> | 2022-06-01 22:04:20 +0100 |
commit | 2b2966611b70485e184178d0c43ed340e8991593 (patch) | |
tree | 57398f49d080eae695880bf1fde89db830896776 /tests/file_yaml.rs | |
parent | c8ee9f1335fb093cda3debabe15ad0f7a3ab9071 (diff) |
fix yaml to parse int keys
Diffstat (limited to 'tests/file_yaml.rs')
-rw-r--r-- | tests/file_yaml.rs | 29 |
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" + ); +} |