Skip to content

Commit 9d8273a

Browse files
committed
Add ~[ComponentValue].consume_skip_whitespace()
1 parent a4b7587 commit 9d8273a

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

ast.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,27 @@ impl<'self> Iterator<&'self ComponentValue> for SkipWhitespaceIterator<'self> {
150150
None
151151
}
152152
}
153+
154+
155+
pub trait ConsumeSkipWhitespaceIterable {
156+
pub fn consume_skip_whitespace(self) -> ConsumeSkipWhitespaceIterator;
157+
}
158+
159+
impl ConsumeSkipWhitespaceIterable for ~[ComponentValue] {
160+
pub fn consume_skip_whitespace(self) -> ConsumeSkipWhitespaceIterator {
161+
ConsumeSkipWhitespaceIterator{ iter: self.consume_iter() }
162+
}
163+
}
164+
165+
struct ConsumeSkipWhitespaceIterator {
166+
iter: vec::ConsumeIterator<ComponentValue>,
167+
}
168+
169+
impl Iterator<ComponentValue> for ConsumeSkipWhitespaceIterator {
170+
fn next(&mut self) -> Option<ComponentValue> {
171+
for component_value in self.iter {
172+
if component_value != WhiteSpace { return Some(component_value) }
173+
}
174+
None
175+
}
176+
}

0 commit comments

Comments
 (0)