summaryrefslogtreecommitdiffstats
path: root/tests/file_toml.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/file_toml.rs')
-rw-r--r--tests/file_toml.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/file_toml.rs b/tests/file_toml.rs
index f272698..7feb6b5 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>,
@@ -43,10 +51,12 @@ fn test_file() {
let c = make();
// Deserialize the entire file as single struct
- let s: Settings = c.deserialize().unwrap();
+ let s: Settings = c.try_into().unwrap();
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));