Skip to content

Commit 7b490c5

Browse files
authored
Merge pull request #309 from dtolnay/append
Apply pattern from PR 306 to append_separated & append_terminated
2 parents df32af7 + 71dfa84 commit 7b490c5

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

src/ext.rs

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,20 @@ impl TokenStreamExt for TokenStream {
9191
I::Item: ToTokens,
9292
U: ToTokens,
9393
{
94-
for (i, token) in iter.into_iter().enumerate() {
95-
if i > 0 {
96-
op.to_tokens(self);
94+
do_append_separated(self, iter.into_iter(), op);
95+
96+
fn do_append_separated<I, U>(stream: &mut TokenStream, iter: I, op: U)
97+
where
98+
I: Iterator,
99+
I::Item: ToTokens,
100+
U: ToTokens,
101+
{
102+
for (i, token) in iter.into_iter().enumerate() {
103+
if i > 0 {
104+
op.to_tokens(stream);
105+
}
106+
token.to_tokens(stream);
97107
}
98-
token.to_tokens(self);
99108
}
100109
}
101110

@@ -105,9 +114,18 @@ impl TokenStreamExt for TokenStream {
105114
I::Item: ToTokens,
106115
U: ToTokens,
107116
{
108-
for token in iter {
109-
token.to_tokens(self);
110-
term.to_tokens(self);
117+
do_append_terminated(self, iter.into_iter(), term);
118+
119+
fn do_append_terminated<I, U>(stream: &mut TokenStream, iter: I, term: U)
120+
where
121+
I: Iterator,
122+
I::Item: ToTokens,
123+
U: ToTokens,
124+
{
125+
for token in iter {
126+
token.to_tokens(stream);
127+
term.to_tokens(stream);
128+
}
111129
}
112130
}
113131
}

0 commit comments

Comments
 (0)