From 7ac061b5ddf15ffe3fc4f36b64138b7431429758 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 9 May 2019 22:27:17 +0200 Subject: Rewrite Deserialize trait around new Value and Type --- dhall/src/api/serde.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'dhall/src/api/serde.rs') 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 { - 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 { + T::deserialize(Deserializer(Cow::Owned(v.to_expr()))) } } -- cgit v1.2.3