diff options
author | Nadrieril | 2019-04-11 15:15:20 +0200 |
---|---|---|
committer | Nadrieril | 2019-04-11 15:15:20 +0200 |
commit | 36a6f9a09b966922baf4838599e57250982b0fc3 (patch) | |
tree | 94e60577c9e8efb9d673f5e661c4a8eae911fd8e /dhall/src/expr.rs | |
parent | c3c1d3d276216796394b553ecbe2832897e3deb0 (diff) |
Abstract get_type() into a trait
Diffstat (limited to '')
-rw-r--r-- | dhall/src/expr.rs | 22 |
1 files changed, 22 insertions, 0 deletions
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<SubExpr<X, X>> for SimpleType { SimpleType(x) } } + +impl Typed { + pub(crate) fn as_expr(&self) -> &SubExpr<X, X> { + &self.0 + } + pub(crate) fn into_expr(self) -> SubExpr<X, X> { + self.0 + } +} + +impl Normalized { + pub(crate) fn as_expr(&self) -> &SubExpr<X, X> { + &self.0 + } + pub(crate) fn into_expr(self) -> SubExpr<X, X> { + self.0 + } + pub(crate) fn into_type(self) -> Type { + crate::expr::Type(TypeInternal::Expr(Box::new(self))) + } +} + |