summaryrefslogtreecommitdiffstats
path: root/tests/file_toml.rs
diff options
context:
space:
mode:
authorAleksey Ivanov <ialexxei@gmail.com>2018-04-09 20:03:07 +0300
committerAleksey Ivanov <ialexxei@gmail.com>2018-04-09 21:40:34 +0300
commit7ba954942ab9acd8b658636cf775c4360ec76272 (patch)
tree4d55b16a9c7270c7e0b17afaf20a7b213d24e00b /tests/file_toml.rs
parente8fa9fee96185ddd18ebcef8a925c75459111edb (diff)
[Close #70] Support newtype struct deserialization
Diffstat (limited to 'tests/file_toml.rs')
-rw-r--r--tests/file_toml.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/file_toml.rs b/tests/file_toml.rs
index f272698..2d8203f 100644
--- a/tests/file_toml.rs
+++ b/tests/file_toml.rs
@@ -11,6 +11,7 @@ use config::*;
#[derive(Debug, Deserialize)]
struct Place {
+ number: PlaceNumber,
name: String,
longitude: f64,
latitude: f64,
@@ -21,10 +22,17 @@ struct Place {
rating: Option<f32>,
}
+#[derive(Debug, Deserialize, PartialEq)]
+struct PlaceNumber(u8);
+
+#[derive(Debug, Deserialize, PartialEq)]
+struct AsciiCode(i8);
+
#[derive(Debug, Deserialize)]
struct Settings {
debug: f64,
production: Option<String>,
+ code: AsciiCode,
place: Place,
#[serde(rename = "arr")]
elements: Vec<String>,
@@ -47,6 +55,8 @@ fn test_file() {
assert!(s.debug.approx_eq_ulps(&1.0, 2));
assert_eq!(s.production, Some("false".to_string()));
+ assert_eq!(s.code, AsciiCode(53));
+ assert_eq!(s.place.number, PlaceNumber(1));
assert_eq!(s.place.name, "Torre di Pisa");
assert!(s.place.longitude.approx_eq_ulps(&43.7224985, 2));
assert!(s.place.latitude.approx_eq_ulps(&10.3970522, 2));