Lines Matching refs:Punctuated

5 //! - The fields of a struct are `Punctuated<Field, Token![,]>`.
6 //! - The segments of a path are `Punctuated<PathSegment, Token![::]>`.
7 //! - The bounds on a generic parameter are `Punctuated<TypeParamBound,
9 //! - The arguments to a function call are `Punctuated<Expr, Token![,]>`.
12 //! in the form of the [`Punctuated<T, P>`] type. We store a vector of pairs of
16 //! [`Punctuated<T, P>`]: Punctuated
46 pub struct Punctuated<T, P> {
51 impl<T, P> Punctuated<T, P> {
54 Punctuated {
148 /// [`push`]: Punctuated::push
157 "Punctuated::push_value: cannot push value if Punctuated is missing trailing punctuation",
173 "Punctuated::push_punct: cannot push punctuation if Punctuated is empty or already has trailing punctuation",
186 self.inner.pop().map(|(t, p)| Pair::Punctuated(t, p))
208 /// Returns true if either this `Punctuated` is empty, or it has a trailing
243 "Punctuated::insert: index out of range",
281 /// [`parse_terminated`]: Punctuated::parse_terminated
291 let mut punctuated = Punctuated::new();
333 /// [`parse_separated_nonempty`]: Punctuated::parse_separated_nonempty
343 let mut punctuated = Punctuated::new();
361 impl<T, P> Clone for Punctuated<T, P>
367 Punctuated {
381 impl<T, P> Eq for Punctuated<T, P>
390 impl<T, P> PartialEq for Punctuated<T, P>
396 let Punctuated { inner, last } = self;
403 impl<T, P> Hash for Punctuated<T, P>
409 let Punctuated { inner, last } = self;
417 impl<T: Debug, P: Debug> Debug for Punctuated<T, P> {
431 impl<T, P> FromIterator<T> for Punctuated<T, P>
436 let mut ret = Punctuated::new();
442 impl<T, P> Extend<T> for Punctuated<T, P>
453 impl<T, P> FromIterator<Pair<T, P>> for Punctuated<T, P> {
455 let mut ret = Punctuated::new();
461 impl<T, P> Extend<Pair<T, P>> for Punctuated<T, P>
473 fn do_extend<T, P, I>(punctuated: &mut Punctuated<T, P>, i: I)
480 panic!("Punctuated extended with items after a Pair::End");
483 Pair::Punctuated(a, b) => punctuated.inner.push((a, b)),
492 impl<T, P> IntoIterator for Punctuated<T, P> {
507 impl<'a, T, P> IntoIterator for &'a Punctuated<T, P> {
512 Punctuated::iter(self)
516 impl<'a, T, P> IntoIterator for &'a mut Punctuated<T, P> {
521 Punctuated::iter_mut(self)
525 impl<T, P> Default for Punctuated<T, P> {
527 Punctuated::new()
547 .map(|(t, p)| Pair::Punctuated(t, p))
561 .or_else(|| self.inner.next_back().map(|(t, p)| Pair::Punctuated(t, p)))
597 .map(|(t, p)| Pair::Punctuated(t, p))
611 .or_else(|| self.inner.next_back().map(|(t, p)| Pair::Punctuated(t, p)))
637 .map(|(t, p)| Pair::Punctuated(t, p))
651 .or_else(|| self.inner.next_back().map(|(t, p)| Pair::Punctuated(t, p)))
928 Punctuated(T, P),
937 Pair::Punctuated(t, _) | Pair::End(t) => t,
944 Pair::Punctuated(t, _) | Pair::End(t) => t,
951 Pair::Punctuated(t, _) | Pair::End(t) => t,
959 Pair::Punctuated(_, p) => Some(p),
971 /// # use syn::punctuated::Punctuated;
974 /// # let mut punctuated = Punctuated::<TypeParamBound, Token![+]>::new();
984 Pair::Punctuated(_, p) => Some(p),
993 Some(p) => Pair::Punctuated(t, p),
1002 Pair::Punctuated(t, p) => (t, Some(p)),
1017 Pair::Punctuated(t, p) => Pair::Punctuated(t.clone(), p.clone()),
1032 Pair::Punctuated(t, p) => Pair::Punctuated(t.clone(), p.clone()),
1047 impl<T, P> Index<usize> for Punctuated<T, P> {
1062 impl<T, P> IndexMut<usize> for Punctuated<T, P> {
1082 impl<T, P> ToTokens for Punctuated<T, P>
1100 Pair::Punctuated(a, b) => {