From edac7d46abda23c9149336586c80c62d85aced70 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 11 Apr 2019 22:52:00 +0200 Subject: Avoid use of ExprF::as_ref when not needed --- dhall_core/src/text.rs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'dhall_core/src/text.rs') diff --git a/dhall_core/src/text.rs b/dhall_core/src/text.rs index 7c0e2b4..0cfbd7b 100644 --- a/dhall_core/src/text.rs +++ b/dhall_core/src/text.rs @@ -34,30 +34,23 @@ pub enum InterpolatedTextContents { } impl InterpolatedText { - pub fn traverse( - self, + pub fn traverse_ref<'a, SubExpr2, E, F>( + &'a self, mut f: F, ) -> Result, E> where - F: FnMut(SubExpr) -> Result, + F: FnMut(&'a SubExpr) -> Result, { Ok(InterpolatedText { head: self.head.clone(), tail: self .tail - .into_iter() + .iter() .map(|(e, s)| Ok((f(e)?, s.clone()))) .collect::>()?, }) } - pub fn map(self, mut f: F) -> InterpolatedText - where - F: FnMut(SubExpr) -> SubExpr2, - { - crate::trivial_result(self.traverse(|e| Ok(f(e)))) - } - pub fn as_ref(&self) -> InterpolatedText<&SubExpr> { InterpolatedText { head: self.head.clone(), -- cgit v1.2.3