pub struct TokenSeparatedSequence<T> {
pub nodes: Vec<T>,
pub tokens: Vec<Token>,
}Expand description
Represents a sequence of nodes separated by a token.
An example of this is arguments in a function call, where the tokens are commas.
i.e. 1, 2 and 3 in foo(1, 2, 3).
Fields§
§nodes: Vec<T>§tokens: Vec<Token>Implementations§
Source§impl<T: HasSpan> TokenSeparatedSequence<T>
impl<T: HasSpan> TokenSeparatedSequence<T>
pub const fn new(inner: Vec<T>, tokens: Vec<Token>) -> Self
pub const fn empty() -> Self
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn get(&self, index: usize) -> Option<&T>
pub fn first(&self) -> Option<&T>
pub fn first_span(&self) -> Option<Span>
pub fn last(&self) -> Option<&T>
pub fn last_span(&self) -> Option<Span>
pub fn span(&self, from: Position) -> Span
pub fn has_trailing_token(&self) -> bool
pub fn get_trailing_token(&self) -> Option<&Token>
pub fn iter(&self) -> Iter<'_, T>
Sourcepub fn iter_with_tokens(
&self,
) -> impl Iterator<Item = (usize, &T, Option<&Token>)>
pub fn iter_with_tokens( &self, ) -> impl Iterator<Item = (usize, &T, Option<&Token>)>
Returns an iterator over the sequence, where each item includes
the index of the element, the element and the token following it.
The token is None only for the last element if it has no trailing token.
pub fn as_slice(&self) -> &[T]
pub fn to_vec(&self) -> Vec<&T>
Trait Implementations§
Source§impl<T: Clone> Clone for TokenSeparatedSequence<T>
impl<T: Clone> Clone for TokenSeparatedSequence<T>
Source§fn clone(&self) -> TokenSeparatedSequence<T>
fn clone(&self) -> TokenSeparatedSequence<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T: Debug> Debug for TokenSeparatedSequence<T>
impl<T: Debug> Debug for TokenSeparatedSequence<T>
Source§impl<T: HasSpan> Default for TokenSeparatedSequence<T>
impl<T: HasSpan> Default for TokenSeparatedSequence<T>
Source§impl<'de, T> Deserialize<'de> for TokenSeparatedSequence<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for TokenSeparatedSequence<T>where
T: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<T: Hash> Hash for TokenSeparatedSequence<T>
impl<T: Hash> Hash for TokenSeparatedSequence<T>
Source§impl<T: HasSpan> IntoIterator for TokenSeparatedSequence<T>
impl<T: HasSpan> IntoIterator for TokenSeparatedSequence<T>
Source§impl<T: Ord> Ord for TokenSeparatedSequence<T>
impl<T: Ord> Ord for TokenSeparatedSequence<T>
Source§fn cmp(&self, other: &TokenSeparatedSequence<T>) -> Ordering
fn cmp(&self, other: &TokenSeparatedSequence<T>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<T: PartialEq> PartialEq for TokenSeparatedSequence<T>
impl<T: PartialEq> PartialEq for TokenSeparatedSequence<T>
Source§impl<T: PartialOrd> PartialOrd for TokenSeparatedSequence<T>
impl<T: PartialOrd> PartialOrd for TokenSeparatedSequence<T>
Source§impl<T> Serialize for TokenSeparatedSequence<T>where
T: Serialize,
impl<T> Serialize for TokenSeparatedSequence<T>where
T: Serialize,
impl<T: Eq> Eq for TokenSeparatedSequence<T>
impl<T> StructuralPartialEq for TokenSeparatedSequence<T>
Auto Trait Implementations§
impl<T> Freeze for TokenSeparatedSequence<T>
impl<T> RefUnwindSafe for TokenSeparatedSequence<T>where
T: RefUnwindSafe,
impl<T> Send for TokenSeparatedSequence<T>where
T: Send,
impl<T> Sync for TokenSeparatedSequence<T>where
T: Sync,
impl<T> Unpin for TokenSeparatedSequence<T>where
T: Unpin,
impl<T> UnwindSafe for TokenSeparatedSequence<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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