pub struct Token { /* private fields */ }
Expand description
Represents a token in the source code with its position and associated comments or whitespaces.
Implementations§
Source§impl Token
impl Token
Sourcepub fn new_with_line(start: usize, end: usize, line_number: usize) -> Self
pub fn new_with_line(start: usize, end: usize, line_number: usize) -> Self
Creates a token where the position refers to the original code where the token was parsed with the line number where it starts.
Sourcepub fn from_content<IntoCowStr: Into<Cow<'static, str>>>(
content: IntoCowStr,
) -> Self
pub fn from_content<IntoCowStr: Into<Cow<'static, str>>>( content: IntoCowStr, ) -> Self
Creates a new token that is not constrained to any existing position.
Sourcepub fn from_position(position: Position) -> Self
pub fn from_position(position: Position) -> Self
Creates a new token from a position.
Sourcepub fn with_leading_trivia(self, trivia: Trivia) -> Self
pub fn with_leading_trivia(self, trivia: Trivia) -> Self
Adds leading trivia to the token and returns the updated token.
Sourcepub fn with_trailing_trivia(self, trivia: Trivia) -> Self
pub fn with_trailing_trivia(self, trivia: Trivia) -> Self
Adds trailing trivia to the token and returns the updated token.
Sourcepub fn has_trivia(&self) -> bool
pub fn has_trivia(&self) -> bool
Returns whether the token has any trivia (leading or trailing).
Sourcepub fn push_leading_trivia(&mut self, trivia: Trivia)
pub fn push_leading_trivia(&mut self, trivia: Trivia)
Adds leading trivia to the token.
Sourcepub fn insert_leading_trivia(&mut self, index: usize, trivia: Trivia)
pub fn insert_leading_trivia(&mut self, index: usize, trivia: Trivia)
Inserts leading trivia at the given index.
Sourcepub fn push_trailing_trivia(&mut self, trivia: Trivia)
pub fn push_trailing_trivia(&mut self, trivia: Trivia)
Adds trailing trivia to the token.
Sourcepub fn iter_leading_trivia(&self) -> impl Iterator<Item = &Trivia>
pub fn iter_leading_trivia(&self) -> impl Iterator<Item = &Trivia>
Returns an iterator over the leading trivia.
Sourcepub fn drain_leading_trivia(&mut self) -> impl Iterator<Item = Trivia> + '_
pub fn drain_leading_trivia(&mut self) -> impl Iterator<Item = Trivia> + '_
Returns an iterator over the leading trivia and removes them from the token.
Sourcepub fn iter_trailing_trivia(&self) -> impl Iterator<Item = &Trivia>
pub fn iter_trailing_trivia(&self) -> impl Iterator<Item = &Trivia>
Returns an iterator over the trailing trivia.
Sourcepub fn drain_trailing_trivia(&mut self) -> impl Iterator<Item = Trivia> + '_
pub fn drain_trailing_trivia(&mut self) -> impl Iterator<Item = Trivia> + '_
Returns an iterator over the trailing trivia and removes them from the token.
Sourcepub fn read<'a: 'b, 'b>(&'a self, code: &'b str) -> &'b str
pub fn read<'a: 'b, 'b>(&'a self, code: &'b str) -> &'b str
Reads the content of the token from the source code.
§Panics
Panics if the position is a line number reference and the range is invalid.
Sourcepub fn get_line_number(&self) -> Option<usize>
pub fn get_line_number(&self) -> Option<usize>
Returns the line number of the token, if available.
Sourcepub fn replace_with_content<IntoCowStr: Into<Cow<'static, str>>>(
&mut self,
content: IntoCowStr,
)
pub fn replace_with_content<IntoCowStr: Into<Cow<'static, str>>>( &mut self, content: IntoCowStr, )
Replaces the token’s content with new content while preserving line number information.
Sourcepub fn clear_comments(&mut self)
pub fn clear_comments(&mut self)
Clears all comments from the tokens in this node.
Sourcepub fn clear_whitespaces(&mut self)
pub fn clear_whitespaces(&mut self)
Clears all whitespaces information from the tokens in this node.
Trait Implementations§
impl Eq for Token
impl StructuralPartialEq for Token
Auto Trait Implementations§
impl Freeze for Token
impl RefUnwindSafe for Token
impl Send for Token
impl Sync for Token
impl Unpin for Token
impl UnwindSafe for Token
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<I, T> ExtractContext<I, ()> for T
impl<I, T> ExtractContext<I, ()> for T
Source§fn extract_context(self, _original_input: I)
fn extract_context(self, _original_input: I)
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more