From 0644d453b8079d1f72c9f33436c257fd70cccc91 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 18 Mar 2020 13:03:02 +0100 Subject: [PATCH] library: core: color: add deserialization --- src/core/color.rs | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/core/color.rs b/src/core/color.rs index 4d9b3a8..2810c17 100644 --- a/src/core/color.rs +++ b/src/core/color.rs @@ -1,8 +1,21 @@ use derive_more::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Sub, SubAssign, Sum}; +use serde::Deserialize; use std::ops::{Div, DivAssign, Mul, MulAssign}; #[derive( - Debug, Clone, PartialEq, Add, AddAssign, Div, DivAssign, Mul, MulAssign, Sub, SubAssign, Sum, + Debug, + Clone, + PartialEq, + Add, + AddAssign, + Div, + DivAssign, + Mul, + MulAssign, + Sub, + SubAssign, + Sum, + Deserialize, )] /// A structure to represent operations in the linear RGB colorspace. pub struct LinearColor { @@ -285,4 +298,18 @@ mod test { } ); } + + #[test] + fn deserialization_works() { + let yaml = "{r: 1.0, g: 0.5, b: 0.2}"; + let ans: LinearColor = serde_yaml::from_str(yaml).unwrap(); + assert_eq!( + ans, + LinearColor { + r: 1.0, + g: 0.5, + b: 0.2 + } + ) + } }