Rename Cursor
/CursorRef
as TokenTreeCursor
/RefTokenTreeCursor
.
This makes it clear they return token trees, and makes for a nice comparison against `TokenCursor` which returns tokens.
This commit is contained in:
parent
b5ecbbb998
commit
a86fc727fa
4 changed files with 34 additions and 29 deletions
|
@ -389,12 +389,12 @@ impl TokenStream {
|
|||
self.0.len()
|
||||
}
|
||||
|
||||
pub fn trees(&self) -> CursorRef<'_> {
|
||||
CursorRef::new(self)
|
||||
pub fn trees(&self) -> RefTokenTreeCursor<'_> {
|
||||
RefTokenTreeCursor::new(self)
|
||||
}
|
||||
|
||||
pub fn into_trees(self) -> Cursor {
|
||||
Cursor::new(self)
|
||||
pub fn into_trees(self) -> TokenTreeCursor {
|
||||
TokenTreeCursor::new(self)
|
||||
}
|
||||
|
||||
/// Compares two `TokenStream`s, checking equality without regarding span information.
|
||||
|
@ -552,16 +552,17 @@ impl TokenStream {
|
|||
}
|
||||
}
|
||||
|
||||
/// By-reference iterator over a [`TokenStream`].
|
||||
/// By-reference iterator over a [`TokenStream`], that produces `&TokenTree`
|
||||
/// items.
|
||||
#[derive(Clone)]
|
||||
pub struct CursorRef<'t> {
|
||||
pub struct RefTokenTreeCursor<'t> {
|
||||
stream: &'t TokenStream,
|
||||
index: usize,
|
||||
}
|
||||
|
||||
impl<'t> CursorRef<'t> {
|
||||
impl<'t> RefTokenTreeCursor<'t> {
|
||||
fn new(stream: &'t TokenStream) -> Self {
|
||||
CursorRef { stream, index: 0 }
|
||||
RefTokenTreeCursor { stream, index: 0 }
|
||||
}
|
||||
|
||||
pub fn look_ahead(&self, n: usize) -> Option<&TokenTree> {
|
||||
|
@ -569,7 +570,7 @@ impl<'t> CursorRef<'t> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'t> Iterator for CursorRef<'t> {
|
||||
impl<'t> Iterator for RefTokenTreeCursor<'t> {
|
||||
type Item = &'t TokenTree;
|
||||
|
||||
fn next(&mut self) -> Option<&'t TokenTree> {
|
||||
|
@ -580,15 +581,16 @@ impl<'t> Iterator for CursorRef<'t> {
|
|||
}
|
||||
}
|
||||
|
||||
/// Owning by-value iterator over a [`TokenStream`].
|
||||
/// Owning by-value iterator over a [`TokenStream`], that produces `TokenTree`
|
||||
/// items.
|
||||
// FIXME: Many uses of this can be replaced with by-reference iterator to avoid clones.
|
||||
#[derive(Clone)]
|
||||
pub struct Cursor {
|
||||
pub struct TokenTreeCursor {
|
||||
pub stream: TokenStream,
|
||||
index: usize,
|
||||
}
|
||||
|
||||
impl Iterator for Cursor {
|
||||
impl Iterator for TokenTreeCursor {
|
||||
type Item = TokenTree;
|
||||
|
||||
fn next(&mut self) -> Option<TokenTree> {
|
||||
|
@ -599,9 +601,9 @@ impl Iterator for Cursor {
|
|||
}
|
||||
}
|
||||
|
||||
impl Cursor {
|
||||
impl TokenTreeCursor {
|
||||
fn new(stream: TokenStream) -> Self {
|
||||
Cursor { stream, index: 0 }
|
||||
TokenTreeCursor { stream, index: 0 }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue