From 36a6f9a09b966922baf4838599e57250982b0fc3 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 11 Apr 2019 15:15:20 +0200 Subject: Abstract get_type() into a trait --- dhall/src/expr.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'dhall/src/expr.rs') diff --git a/dhall/src/expr.rs b/dhall/src/expr.rs index aa02c28..6458be9 100644 --- a/dhall/src/expr.rs +++ b/dhall/src/expr.rs @@ -66,3 +66,25 @@ impl From> for SimpleType { SimpleType(x) } } + +impl Typed { + pub(crate) fn as_expr(&self) -> &SubExpr { + &self.0 + } + pub(crate) fn into_expr(self) -> SubExpr { + self.0 + } +} + +impl Normalized { + pub(crate) fn as_expr(&self) -> &SubExpr { + &self.0 + } + pub(crate) fn into_expr(self) -> SubExpr { + self.0 + } + pub(crate) fn into_type(self) -> Type { + crate::expr::Type(TypeInternal::Expr(Box::new(self))) + } +} + -- cgit v1.2.3