summaryrefslogtreecommitdiff
path: root/dhall/src/expr.rs
diff options
context:
space:
mode:
authorNadrieril2019-04-11 15:15:20 +0200
committerNadrieril2019-04-11 15:15:20 +0200
commit36a6f9a09b966922baf4838599e57250982b0fc3 (patch)
tree94e60577c9e8efb9d673f5e661c4a8eae911fd8e /dhall/src/expr.rs
parentc3c1d3d276216796394b553ecbe2832897e3deb0 (diff)
Abstract get_type() into a trait
Diffstat (limited to 'dhall/src/expr.rs')
-rw-r--r--dhall/src/expr.rs22
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)))
+ }
+}
+