}
}
- pub fn joint(self) -> TokenStream {
- TokenStream::new(vec![(self, Spacing::Joint)])
- }
-
pub fn token(kind: TokenKind, span: Span) -> TokenTree {
TokenTree::Token(Token::new(kind, span))
}
self.0.len()
}
- pub fn span(&self) -> Option<Span> {
- match &**self.0 {
- [] => None,
- [(tt, _)] => Some(tt.span()),
- [(tt_start, _), .., (tt_end, _)] => Some(tt_start.span().to(tt_end.span())),
- }
- }
-
pub fn from_streams(mut streams: SmallVec<[TokenStream; 2]>) -> TokenStream {
match streams.len() {
0 => TokenStream::default(),
}
}
- pub fn trees_ref(&self) -> CursorRef<'_> {
- CursorRef::new(self)
- }
-
pub fn trees(&self) -> Cursor {
self.clone().into_trees()
}
}
impl<'t> CursorRef<'t> {
- fn new(stream: &TokenStream) -> CursorRef<'_> {
- CursorRef { stream, index: 0 }
- }
-
fn next_with_spacing(&mut self) -> Option<&'t TreeAndSpacing> {
self.stream.0.get(self.index).map(|tree| {
self.index += 1;