Remove some surface area from Delimited api
diff --git a/src/gen_helper.rs b/src/gen_helper.rs
index 4970805..fdf86a0 100644
--- a/src/gen_helper.rs
+++ b/src/gen_helper.rs
@@ -1,6 +1,6 @@
#[cfg(feature = "fold")]
pub mod fold {
- use delimited::Delimited;
+ use delimited::{Delimited, Element};
use fold::Folder;
use proc_macro2::Span;
@@ -19,10 +19,10 @@
impl<T, U> FoldHelper for Delimited<T, U> {
type Item = T;
fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
- self.into_iter().map(|elem| {
- let (t, u) = elem.into_tuple();
- (f(t), u)
- }).collect::<Vec<(T, Option<U>)>>().into()
+ self.into_iter()
+ .map(Element::into_tuple)
+ .map(|(t, u)| Element::new(f(t), u))
+ .collect()
}
}