Lines Matching refs:T
49 pub struct Punctuated<T, P> {
50 inner: Vec<(T, P)>,
51 last: Option<Box<T>>,
54 impl<T, P> Punctuated<T, P> {
78 pub fn first(&self) -> Option<&T> { in first() argument
83 pub fn first_mut(&mut self) -> Option<&mut T> { in first_mut() argument
88 pub fn last(&self) -> Option<&T> { in last() argument
93 pub fn last_mut(&mut self) -> Option<&mut T> { in last_mut() argument
98 pub fn get(&self, index: usize) -> Option<&T> { in get() argument
109 pub fn get_mut(&mut self, index: usize) -> Option<&mut T> { in get_mut() argument
121 pub fn iter(&self) -> Iter<T> { in iter() argument
132 pub fn iter_mut(&mut self) -> IterMut<T> { in iter_mut() argument
143 pub fn pairs(&self) -> Pairs<T, P> { in pairs() argument
152 pub fn pairs_mut(&mut self) -> PairsMut<T, P> { in pairs_mut() argument
161 pub fn into_pairs(self) -> IntoPairs<T, P> { in into_pairs() argument
180 pub fn push_value(&mut self, value: T) { in push_value() argument
208 pub fn pop(&mut self) -> Option<Pair<T, P>> { in pop() argument
247 pub fn push(&mut self, value: T) in push()
263 pub fn insert(&mut self, index: usize, value: T) in insert()
294 T: Parse, in parse_terminated()
297 Self::parse_terminated_with(input, T::parse) in parse_terminated()
312 parser: fn(ParseStream<'a>) -> Result<T>, in parse_terminated_with() argument
346 T: Parse, in parse_separated_nonempty()
349 Self::parse_separated_nonempty_with(input, T::parse) in parse_separated_nonempty()
364 parser: fn(ParseStream<'a>) -> Result<T>, in parse_separated_nonempty_with() argument
387 impl<T, P> Clone for Punctuated<T, P>
389 T: Clone,
407 impl<T, P> Eq for Punctuated<T, P>
409 T: Eq,
416 impl<T, P> PartialEq for Punctuated<T, P>
418 T: PartialEq,
429 impl<T, P> Hash for Punctuated<T, P>
431 T: Hash,
443 impl<T: Debug, P: Debug> Debug for Punctuated<T, P> {
457 impl<T, P> FromIterator<T> for Punctuated<T, P>
461 fn from_iter<I: IntoIterator<Item = T>>(i: I) -> Self { in from_iter()
468 impl<T, P> Extend<T> for Punctuated<T, P>
472 fn extend<I: IntoIterator<Item = T>>(&mut self, i: I) { in extend()
479 impl<T, P> FromIterator<Pair<T, P>> for Punctuated<T, P> {
480 fn from_iter<I: IntoIterator<Item = Pair<T, P>>>(i: I) -> Self { in from_iter()
487 impl<T, P> Extend<Pair<T, P>> for Punctuated<T, P>
491 fn extend<I: IntoIterator<Item = Pair<T, P>>>(&mut self, i: I) { in extend()
499 fn do_extend<T, P, I>(punctuated: &mut Punctuated<T, P>, i: I) in do_extend() argument
501 I: Iterator<Item = Pair<T, P>>, in do_extend()
518 impl<T, P> IntoIterator for Punctuated<T, P> {
519 type Item = T;
520 type IntoIter = IntoIter<T>;
533 impl<'a, T, P> IntoIterator for &'a Punctuated<T, P> {
534 type Item = &'a T;
535 type IntoIter = Iter<'a, T>;
542 impl<'a, T, P> IntoIterator for &'a mut Punctuated<T, P> {
543 type Item = &'a mut T;
544 type IntoIter = IterMut<'a, T>;
551 impl<T, P> Default for Punctuated<T, P> {
562 pub struct Pairs<'a, T: 'a, P: 'a> {
563 inner: slice::Iter<'a, (T, P)>,
564 last: option::IntoIter<&'a T>,
567 impl<'a, T, P> Iterator for Pairs<'a, T, P> {
568 type Item = Pair<&'a T, &'a P>;
582 impl<'a, T, P> DoubleEndedIterator for Pairs<'a, T, P> {
591 impl<'a, T, P> ExactSizeIterator for Pairs<'a, T, P> {
598 impl<'a, T, P> Clone for Pairs<'a, T, P> {
612 pub struct PairsMut<'a, T: 'a, P: 'a> {
613 inner: slice::IterMut<'a, (T, P)>,
614 last: option::IntoIter<&'a mut T>,
617 impl<'a, T, P> Iterator for PairsMut<'a, T, P> {
618 type Item = Pair<&'a mut T, &'a mut P>;
632 impl<'a, T, P> DoubleEndedIterator for PairsMut<'a, T, P> {
641 impl<'a, T, P> ExactSizeIterator for PairsMut<'a, T, P> {
652 pub struct IntoPairs<T, P> {
653 inner: vec::IntoIter<(T, P)>,
654 last: option::IntoIter<T>,
657 impl<T, P> Iterator for IntoPairs<T, P> {
658 type Item = Pair<T, P>;
672 impl<T, P> DoubleEndedIterator for IntoPairs<T, P> {
681 impl<T, P> ExactSizeIterator for IntoPairs<T, P> {
687 impl<T, P> Clone for IntoPairs<T, P>
689 T: Clone,
705 pub struct IntoIter<T> {
706 inner: vec::IntoIter<T>,
709 impl<T> Iterator for IntoIter<T> {
710 type Item = T;
721 impl<T> DoubleEndedIterator for IntoIter<T> {
727 impl<T> ExactSizeIterator for IntoIter<T> {
733 impl<T> Clone for IntoIter<T>
735 T: Clone,
749 pub struct Iter<'a, T: 'a> {
750 inner: Box<NoDrop<dyn IterTrait<'a, T> + 'a>>,
753 trait IterTrait<'a, T: 'a>: Iterator<Item = &'a T> + DoubleEndedIterator + ExactSizeIterator {
754 fn clone_box(&self) -> Box<NoDrop<dyn IterTrait<'a, T> + 'a>>; in clone_box()
757 struct PrivateIter<'a, T: 'a, P: 'a> {
758 inner: slice::Iter<'a, (T, P)>,
759 last: option::IntoIter<&'a T>,
762 impl<'a, T, P> TrivialDrop for PrivateIter<'a, T, P>
764 slice::Iter<'a, (T, P)>: TrivialDrop,
765 option::IntoIter<&'a T>: TrivialDrop,
770 pub(crate) fn empty_punctuated_iter<'a, T>() -> Iter<'a, T> { in empty_punctuated_iter() argument
777 impl<'a, T> Clone for Iter<'a, T> {
785 impl<'a, T> Iterator for Iter<'a, T> {
786 type Item = &'a T;
797 impl<'a, T> DoubleEndedIterator for Iter<'a, T> {
803 impl<'a, T> ExactSizeIterator for Iter<'a, T> {
809 impl<'a, T, P> Iterator for PrivateIter<'a, T, P> {
810 type Item = &'a T;
820 impl<'a, T, P> DoubleEndedIterator for PrivateIter<'a, T, P> {
828 impl<'a, T, P> ExactSizeIterator for PrivateIter<'a, T, P> {
835 impl<'a, T, P> Clone for PrivateIter<'a, T, P> {
844 impl<'a, T, I> IterTrait<'a, T> for I
846 T: 'a,
847 I: DoubleEndedIterator<Item = &'a T>
848 + ExactSizeIterator<Item = &'a T>
853 fn clone_box(&self) -> Box<NoDrop<dyn IterTrait<'a, T> + 'a>> { in clone_box()
863 pub struct IterMut<'a, T: 'a> {
864 inner: Box<NoDrop<dyn IterMutTrait<'a, T, Item = &'a mut T> + 'a>>,
867 trait IterMutTrait<'a, T: 'a>:
868 DoubleEndedIterator<Item = &'a mut T> + ExactSizeIterator<Item = &'a mut T>
872 struct PrivateIterMut<'a, T: 'a, P: 'a> {
873 inner: slice::IterMut<'a, (T, P)>,
874 last: option::IntoIter<&'a mut T>,
877 impl<'a, T, P> TrivialDrop for PrivateIterMut<'a, T, P>
879 slice::IterMut<'a, (T, P)>: TrivialDrop,
880 option::IntoIter<&'a mut T>: TrivialDrop,
885 pub(crate) fn empty_punctuated_iter_mut<'a, T>() -> IterMut<'a, T> { in empty_punctuated_iter_mut() argument
891 impl<'a, T> Iterator for IterMut<'a, T> {
892 type Item = &'a mut T;
903 impl<'a, T> DoubleEndedIterator for IterMut<'a, T> {
909 impl<'a, T> ExactSizeIterator for IterMut<'a, T> {
915 impl<'a, T, P> Iterator for PrivateIterMut<'a, T, P> {
916 type Item = &'a mut T;
926 impl<'a, T, P> DoubleEndedIterator for PrivateIterMut<'a, T, P> {
934 impl<'a, T, P> ExactSizeIterator for PrivateIterMut<'a, T, P> {
940 impl<'a, T, I> IterMutTrait<'a, T> for I
942 T: 'a,
943 I: DoubleEndedIterator<Item = &'a mut T> + ExactSizeIterator<Item = &'a mut T> + 'a,
953 pub enum Pair<T, P> {
954 Punctuated(T, P),
955 End(T),
958 impl<T, P> Pair<T, P> {
961 pub fn into_value(self) -> T { in into_value() argument
968 pub fn value(&self) -> &T { in value() argument
975 pub fn value_mut(&mut self) -> &mut T { in value_mut() argument
1017 pub fn new(t: T, p: Option<P>) -> Self { in new() argument
1026 pub fn into_tuple(self) -> (T, Option<P>) { in into_tuple() argument
1036 impl<T, P> Pair<&T, &P> {
1037 pub fn cloned(self) -> Pair<T, P> in cloned() argument
1039 T: Clone, in cloned()
1051 impl<T, P> Clone for Pair<T, P>
1053 T: Clone,
1066 impl<T, P> Copy for Pair<T, P>
1068 T: Copy,
1073 impl<T, P> Index<usize> for Punctuated<T, P> {
1074 type Output = T;
1088 impl<T, P> IndexMut<usize> for Punctuated<T, P> {
1102 pub(crate) fn fold<T, P, V, F>( in fold() argument
1103 punctuated: Punctuated<T, P>, in fold() argument
1106 ) -> Punctuated<T, P> in fold() argument
1109 F: FnMut(&mut V, T) -> T, in fold() argument
1131 impl<T, P> ToTokens for Punctuated<T, P>
1133 T: ToTokens,
1142 impl<T, P> ToTokens for Pair<T, P>
1144 T: ToTokens,