Struct full_moon::ast::punctuated::Punctuated
source · [−]pub struct Punctuated<T> { /* private fields */ }
Expand description
A punctuated sequence of node T
separated by
TokenReference
.
Refer to the module documentation for more details.
Implementations
sourceimpl<T> Punctuated<T>
impl<T> Punctuated<T>
sourcepub fn new() -> Self
pub fn new() -> Self
Creates an empty punctuated sequence
let mut punctuated: Punctuated<i32> = Punctuated::new();
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns whether there’s any nodes in the punctuated sequence
let mut punctuated = Punctuated::new();
assert!(punctuated.is_empty());
punctuated.push(Pair::new((), None));
assert!(!punctuated.is_empty());
sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the number of pairs in the punctuated sequence
let mut punctuated = Punctuated::new();
assert_eq!(punctuated.len(), 0);
punctuated.push(Pair::new((), None));
assert_eq!(punctuated.len(), 1);
sourcepub fn iter(&self) -> Iter<'_, T>ⓘNotable traits for Iter<'a, T>impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;
pub fn iter(&self) -> Iter<'_, T>ⓘNotable traits for Iter<'a, T>impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;
Returns an iterator over references of the sequence values, ignoring punctuation
let mut punctuated = Punctuated::new();
punctuated.push(Pair::new(1, None));
let mut iterator = punctuated.iter();
assert_eq!(iterator.next(), Some(&1));
assert_eq!(iterator.next(), None);
sourcepub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘNotable traits for IterMut<'a, T>impl<'a, T> Iterator for IterMut<'a, T> type Item = &'a mut T;
pub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘNotable traits for IterMut<'a, T>impl<'a, T> Iterator for IterMut<'a, T> type Item = &'a mut T;
Returns an iterator over mutable references of the sequence values, ignoring punctuation
let mut punctuated = Punctuated::new();
punctuated.push(Pair::new(1, None));
for item in punctuated.iter_mut() {
*item += 1;
}
assert_eq!(punctuated.pop(), Some(Pair::new(2, None)));
sourcepub fn into_pairs(self) -> impl Iterator<Item = Pair<T>>
pub fn into_pairs(self) -> impl Iterator<Item = Pair<T>>
Returns an iterator over pairs
let mut punctuated = Punctuated::new();
punctuated.push(Pair::new(1, None));
let mut iterator = punctuated.into_pairs();
assert_eq!(iterator.next(), Some(Pair::new(1, None)));
assert_eq!(iterator.next(), None);
sourcepub fn last(&self) -> Option<&Pair<T>>
pub fn last(&self) -> Option<&Pair<T>>
Returns the last pair in the sequence
let mut punctuated = Punctuated::new();
punctuated.push(Pair::new(1, None));
assert_eq!(punctuated.last(), Some(&Pair::new(1, None)));
sourcepub fn pairs(&self) -> impl Iterator<Item = &Pair<T>>
pub fn pairs(&self) -> impl Iterator<Item = &Pair<T>>
Returns an iterator over pairs as references
let mut punctuated = Punctuated::new();
punctuated.push(Pair::new(1, None));
let mut iterator = punctuated.pairs();
assert_eq!(iterator.next(), Some(&Pair::new(1, None)));
assert_eq!(iterator.next(), None);
sourcepub fn pairs_mut(&mut self) -> impl Iterator<Item = &mut Pair<T>>
pub fn pairs_mut(&mut self) -> impl Iterator<Item = &mut Pair<T>>
Returns an iterator over pairs as mutable references
let mut punctuated = Punctuated::new();
punctuated.push(Pair::new(1, None));
for item in punctuated.pairs_mut() {
*item.value_mut() += 1;
}
assert_eq!(punctuated.pop(), Some(Pair::new(2, None)));
Trait Implementations
sourceimpl<T: Clone> Clone for Punctuated<T>
impl<T: Clone> Clone for Punctuated<T>
sourcefn clone(&self) -> Punctuated<T>
fn clone(&self) -> Punctuated<T>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<T: Debug> Debug for Punctuated<T>
impl<T: Debug> Debug for Punctuated<T>
sourceimpl<T: Default> Default for Punctuated<T>
impl<T: Default> Default for Punctuated<T>
sourcefn default() -> Punctuated<T>
fn default() -> Punctuated<T>
Returns the “default value” for a type. Read more
sourceimpl<'de, T> Deserialize<'de> for Punctuated<T> where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for Punctuated<T> where
T: Deserialize<'de>,
sourcefn 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
sourceimpl<T> Display for Punctuated<T> where
T: Display,
impl<T> Display for Punctuated<T> where
T: Display,
sourceimpl<T> Extend<Pair<T>> for Punctuated<T>
impl<T> Extend<Pair<T>> for Punctuated<T>
sourcefn extend<I: IntoIterator<Item = Pair<T>>>(&mut self, iter: I)
fn extend<I: IntoIterator<Item = Pair<T>>>(&mut self, iter: I)
Extends a collection with the contents of an iterator. Read more
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Extends a collection with exactly one element.
sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
sourceimpl<T> FromIterator<Pair<T>> for Punctuated<T>
impl<T> FromIterator<Pair<T>> for Punctuated<T>
sourcefn from_iter<I: IntoIterator<Item = Pair<T>>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = Pair<T>>>(iter: I) -> Self
Creates a value from an iterator. Read more
sourceimpl<T> IntoIterator for Punctuated<T>
impl<T> IntoIterator for Punctuated<T>
sourceimpl<'a, T> IntoIterator for &'a Punctuated<T>
impl<'a, T> IntoIterator for &'a Punctuated<T>
sourceimpl<'a, T> IntoIterator for &'a mut Punctuated<T>
impl<'a, T> IntoIterator for &'a mut Punctuated<T>
sourceimpl<T: Node> Node for Punctuated<T>
impl<T: Node> Node for Punctuated<T>
sourcefn start_position(&self) -> Option<Position>
fn start_position(&self) -> Option<Position>
The start position of a node. None if can’t be determined
sourcefn end_position(&self) -> Option<Position>
fn end_position(&self) -> Option<Position>
The end position of a node. None if it can’t be determined
sourcefn similar(&self, other: &Self) -> bool
fn similar(&self, other: &Self) -> bool
Whether another node of the same type is the same as this one semantically, ignoring position
sourcefn tokens(&self) -> Tokens<'_>ⓘNotable traits for Tokens<'a>impl<'a> Iterator for Tokens<'a> type Item = &'a TokenReference;
fn tokens(&self) -> Tokens<'_>ⓘNotable traits for Tokens<'a>impl<'a> Iterator for Tokens<'a> type Item = &'a TokenReference;
The token references that comprise a node
sourceimpl<T: PartialEq> PartialEq<Punctuated<T>> for Punctuated<T>
impl<T: PartialEq> PartialEq<Punctuated<T>> for Punctuated<T>
sourcefn eq(&self, other: &Punctuated<T>) -> bool
fn eq(&self, other: &Punctuated<T>) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &Punctuated<T>) -> bool
fn ne(&self, other: &Punctuated<T>) -> bool
This method tests for !=
.
sourceimpl<T> Serialize for Punctuated<T> where
T: Serialize,
impl<T> Serialize for Punctuated<T> where
T: Serialize,
impl<T> StructuralPartialEq for Punctuated<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for Punctuated<T> where
T: RefUnwindSafe,
impl<T> Send for Punctuated<T> where
T: Send,
impl<T> Sync for Punctuated<T> where
T: Sync,
impl<T> Unpin for Punctuated<T> where
T: Unpin,
impl<T> UnwindSafe for Punctuated<T> where
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more