diff options
author | Nadrieril | 2019-05-09 22:27:17 +0200 |
---|---|---|
committer | Nadrieril | 2019-05-09 22:27:17 +0200 |
commit | 7ac061b5ddf15ffe3fc4f36b64138b7431429758 (patch) | |
tree | d77fd6945e67a317ba5a8b1dc3229984d65e4e3d /dhall/src/api/serde.rs | |
parent | dae106b3de0888e8a704c0efa3f9d991590f7858 (diff) |
Rewrite Deserialize trait around new Value and Type
Diffstat (limited to 'dhall/src/api/serde.rs')
-rw-r--r-- | dhall/src/api/serde.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/dhall/src/api/serde.rs b/dhall/src/api/serde.rs index 93921ba..7be77c0 100644 --- a/dhall/src/api/serde.rs +++ b/dhall/src/api/serde.rs @@ -1,13 +1,14 @@ +use crate::api::de::{Deserialize, Value}; use crate::error::{Error, Result}; -use crate::phase::{Normalized, Type}; -use crate::traits::Deserialize; -use dhall_syntax::*; +use dhall_syntax::{SubExpr,ExprF, X}; use std::borrow::Cow; -impl<'a, T: serde::Deserialize<'a>> Deserialize<'a> for T { - fn from_str(s: &'a str, ty: Option<&Type>) -> Result<Self> { - let expr = Normalized::from_str(s, ty)?; - T::deserialize(Deserializer(Cow::Owned(expr.to_expr()))) +impl<'a, T> Deserialize for T +where + T: serde::Deserialize<'a>, +{ + fn from_dhall(v: &Value) -> Result<Self> { + T::deserialize(Deserializer(Cow::Owned(v.to_expr()))) } } |