pub trait IntoIterator {
type Item;
type IntoIter: Iterator<Item = Self::Item>;
// Required method
fn into_iter(self) -> Self::IntoIter;
}Available on crate features
crypto and std only.Expand description
Conversion into an Iterator.
By implementing IntoIterator for a type, you define how it will be
converted to an iterator. This is common for types which describe a
collection of some kind.
One benefit of implementing IntoIterator is that your type will work
with Rust’s for loop syntax.
See also: FromIterator.
§Examples
Basic usage:
let v = [1, 2, 3];
let mut iter = v.into_iter();
assert_eq!(Some(1), iter.next());
assert_eq!(Some(2), iter.next());
assert_eq!(Some(3), iter.next());
assert_eq!(None, iter.next());Implementing IntoIterator for your type:
// A sample collection, that's just a wrapper over Vec<T>
#[derive(Debug)]
struct MyCollection(Vec<i32>);
// Let's give it some methods so we can create one and add things
// to it.
impl MyCollection {
fn new() -> MyCollection {
MyCollection(Vec::new())
}
fn add(&mut self, elem: i32) {
self.0.push(elem);
}
}
// and we'll implement IntoIterator
impl IntoIterator for MyCollection {
type Item = i32;
type IntoIter = std::vec::IntoIter<Self::Item>;
fn into_iter(self) -> Self::IntoIter {
self.0.into_iter()
}
}
// Now we can make a new collection...
let mut c = MyCollection::new();
// ... add some stuff to it ...
c.add(0);
c.add(1);
c.add(2);
// ... and then turn it into an Iterator:
for (i, n) in c.into_iter().enumerate() {
assert_eq!(i as i32, n);
}It is common to use IntoIterator as a trait bound. This allows
the input collection type to change, so long as it is still an
iterator. Additional bounds can be specified by restricting on
Item:
fn collect_as_strings<T>(collection: T) -> Vec<String>
where
T: IntoIterator,
T::Item: std::fmt::Debug,
{
collection
.into_iter()
.map(|item| format!("{item:?}"))
.collect()
}Required Associated Types§
Required Methods§
1.0.0 · Sourcefn into_iter(self) -> Self::IntoIter
fn into_iter(self) -> Self::IntoIter
Creates an iterator from a value.
See the module-level documentation for more.
§Examples
let v = [1, 2, 3];
let mut iter = v.into_iter();
assert_eq!(Some(1), iter.next());
assert_eq!(Some(2), iter.next());
assert_eq!(Some(3), iter.next());
assert_eq!(None, iter.next());Implementors§
Source§impl IntoIterator for IndexVec
impl IntoIterator for IndexVec
§impl IntoIterator for CertLookup
impl IntoIterator for CertLookup
§impl IntoIterator for Ipv4Lookup
impl IntoIterator for Ipv4Lookup
§impl IntoIterator for Ipv6Lookup
impl IntoIterator for Ipv6Lookup
§impl IntoIterator for Lookup
impl IntoIterator for Lookup
§impl IntoIterator for MxLookup
impl IntoIterator for MxLookup
§impl IntoIterator for NsLookup
impl IntoIterator for NsLookup
§impl IntoIterator for ReverseLookup
impl IntoIterator for ReverseLookup
§impl IntoIterator for SoaLookup
impl IntoIterator for SoaLookup
§impl IntoIterator for SrvLookup
impl IntoIterator for SrvLookup
§impl IntoIterator for TlsaLookup
impl IntoIterator for TlsaLookup
§impl IntoIterator for TxtLookup
impl IntoIterator for TxtLookup
§impl IntoIterator for LookupIp
impl IntoIterator for LookupIp
§impl IntoIterator for RecordSet
impl IntoIterator for RecordSet
§impl IntoIterator for CFConnectingIp
impl IntoIterator for CFConnectingIp
type Item = ForwardedElement
type IntoIter = CFConnectingIpIterator
§impl IntoIterator for ClientIp
impl IntoIterator for ClientIp
type Item = ForwardedElement
type IntoIter = ClientIpIterator
§impl IntoIterator for rama::http::headers::forwarded::Forwarded
impl IntoIterator for rama::http::headers::forwarded::Forwarded
type Item = <Forwarded as IntoIterator>::Item
type IntoIter = <Forwarded as IntoIterator>::IntoIter
§impl IntoIterator for TrueClientIp
impl IntoIterator for TrueClientIp
type Item = ForwardedElement
type IntoIter = TrueClientIpIterator
§impl IntoIterator for Via
impl IntoIterator for Via
type Item = ForwardedElement
type IntoIter = ViaIterator
§impl IntoIterator for XClientIp
impl IntoIterator for XClientIp
type Item = ForwardedElement
type IntoIter = XClientIpIterator
§impl IntoIterator for XForwardedFor
impl IntoIterator for XForwardedFor
type Item = ForwardedElement
type IntoIter = XForwardedForIterator
§impl IntoIterator for XForwardedHost
impl IntoIterator for XForwardedHost
type Item = ForwardedElement
type IntoIter = XForwardedHostIterator
§impl IntoIterator for XForwardedProto
impl IntoIterator for XForwardedProto
type Item = ForwardedElement
type IntoIter = XForwardedProtoIterator
§impl IntoIterator for XRealIp
impl IntoIterator for XRealIp
type Item = ForwardedElement
type IntoIter = XRealIpIterator
§impl IntoIterator for OriginalHttp1Headers
impl IntoIterator for OriginalHttp1Headers
§impl IntoIterator for HeaderMapValueRemover
impl IntoIterator for HeaderMapValueRemover
type Item = (Http1HeaderName, HeaderValue)
type IntoIter = HeaderMapValueRemoverIntoIter
§impl IntoIterator for Http1HeaderMap
impl IntoIterator for Http1HeaderMap
type Item = (Http1HeaderName, HeaderValue)
type IntoIter = Http1HeaderMapIntoIter
§impl IntoIterator for SettingOrder
impl IntoIterator for SettingOrder
§impl IntoIterator for PseudoHeaderOrder
impl IntoIterator for PseudoHeaderOrder
type Item = PseudoHeader
type IntoIter = PseudoHeaderOrderIter
§impl IntoIterator for rama::net::forwarded::Forwarded
impl IntoIterator for rama::net::forwarded::Forwarded
type Item = ForwardedElement
type IntoIter = Chain<Once<ForwardedElement>, IntoIter<ForwardedElement>>
§impl IntoIterator for SpanEvents
impl IntoIterator for SpanEvents
type Item = Event
type IntoIter = IntoIter<<SpanEvents as IntoIterator>::Item>
§impl IntoIterator for SpanLinks
impl IntoIterator for SpanLinks
§impl IntoIterator for ShutdownState
impl IntoIterator for ShutdownState
type Item = ShutdownState
type IntoIter = Iter<ShutdownState>
§impl IntoIterator for SslOptions
impl IntoIterator for SslOptions
type Item = SslOptions
type IntoIter = Iter<SslOptions>
§impl IntoIterator for SslSessionCacheMode
impl IntoIterator for SslSessionCacheMode
type Item = SslSessionCacheMode
type IntoIter = Iter<SslSessionCacheMode>
§impl IntoIterator for SslVerifyMode
impl IntoIterator for SslVerifyMode
type Item = SslVerifyMode
type IntoIter = Iter<SslVerifyMode>
§impl IntoIterator for X509CheckFlags
impl IntoIterator for X509CheckFlags
type Item = X509CheckFlags
type IntoIter = Iter<X509CheckFlags>
§impl IntoIterator for X509VerifyFlags
impl IntoIterator for X509VerifyFlags
type Item = X509VerifyFlags
type IntoIter = Iter<X509VerifyFlags>
§impl IntoIterator for rama::utils::thirdparty::regex::bytes::SetMatches
impl IntoIterator for rama::utils::thirdparty::regex::bytes::SetMatches
§impl IntoIterator for rama::utils::thirdparty::regex::SetMatches
impl IntoIterator for rama::utils::thirdparty::regex::SetMatches
§impl IntoIterator for Targets
impl IntoIterator for Targets
§impl<'a> IntoIterator for &'a Baggage
impl<'a> IntoIterator for &'a Baggage
type Item = (&'a Key, &'a (StringValue, BaggageMetadata))
type IntoIter = Iter<'a>
§impl<'a> IntoIterator for &'a rama::utils::thirdparty::regex::bytes::SetMatches
impl<'a> IntoIterator for &'a rama::utils::thirdparty::regex::bytes::SetMatches
§impl<'a> IntoIterator for &'a rama::utils::thirdparty::regex::SetMatches
impl<'a> IntoIterator for &'a rama::utils::thirdparty::regex::SetMatches
1.10.0 · Source§impl<'a> IntoIterator for &'a UnixListener
impl<'a> IntoIterator for &'a UnixListener
1.6.0 · Source§impl<'a> IntoIterator for &'a Path
impl<'a> IntoIterator for &'a Path
1.6.0 · Source§impl<'a> IntoIterator for &'a PathBuf
impl<'a> IntoIterator for &'a PathBuf
§impl<'a> IntoIterator for &'a BorrowedCertRevocationList<'a>
impl<'a> IntoIterator for &'a BorrowedCertRevocationList<'a>
§impl<'a> IntoIterator for &'a StringRecord
impl<'a> IntoIterator for &'a StringRecord
§impl<'a> IntoIterator for &'a Targets
impl<'a> IntoIterator for &'a Targets
§impl<'a> IntoIterator for &'a Utf8Sequence
impl<'a> IntoIterator for &'a Utf8Sequence
§impl<'a> IntoIterator for BerObject<'a>
impl<'a> IntoIterator for BerObject<'a>
§impl<'a, 'b, T> IntoIterator for &'b GetAll<'a, T>where
'b: 'a,
impl<'a, 'b, T> IntoIterator for &'b GetAll<'a, T>where
'b: 'a,
§impl<'a, 'b, T> IntoIterator for &'b OccupiedEntry<'a, T>where
'b: 'a,
impl<'a, 'b, T> IntoIterator for &'b OccupiedEntry<'a, T>where
'b: 'a,
§impl<'a, 'b, T> IntoIterator for &'b mut OccupiedEntry<'a, T>where
'b: 'a,
impl<'a, 'b, T> IntoIterator for &'b mut OccupiedEntry<'a, T>where
'b: 'a,
§impl<'a, A> IntoIterator for &'a ArrayVec<A>where
A: Array,
impl<'a, A> IntoIterator for &'a ArrayVec<A>where
A: Array,
§impl<'a, A> IntoIterator for &'a SmallVec<A>where
A: Array,
impl<'a, A> IntoIterator for &'a SmallVec<A>where
A: Array,
§impl<'a, A> IntoIterator for &'a TinyVec<A>where
A: Array,
impl<'a, A> IntoIterator for &'a TinyVec<A>where
A: Array,
§impl<'a, A> IntoIterator for &'a mut ArrayVec<A>where
A: Array,
impl<'a, A> IntoIterator for &'a mut ArrayVec<A>where
A: Array,
§impl<'a, A> IntoIterator for &'a mut SmallVec<A>where
A: Array,
impl<'a, A> IntoIterator for &'a mut SmallVec<A>where
A: Array,
§impl<'a, A> IntoIterator for &'a mut TinyVec<A>where
A: Array,
impl<'a, A> IntoIterator for &'a mut TinyVec<A>where
A: Array,
§impl<'a, Fut> IntoIterator for &'a FuturesUnordered<Fut>where
Fut: Unpin,
impl<'a, Fut> IntoIterator for &'a FuturesUnordered<Fut>where
Fut: Unpin,
§impl<'a, Fut> IntoIterator for &'a mut FuturesUnordered<Fut>where
Fut: Unpin,
impl<'a, Fut> IntoIterator for &'a mut FuturesUnordered<Fut>where
Fut: Unpin,
§impl<'a, I> IntoIterator for &'a IntoChunks<I>
impl<'a, I> IntoIterator for &'a IntoChunks<I>
§impl<'a, K, I, F> IntoIterator for &'a ChunkBy<K, I, F>
impl<'a, K, I, F> IntoIterator for &'a ChunkBy<K, I, F>
§impl<'a, K, V> IntoIterator for &'a Slice<K, V>
impl<'a, K, V> IntoIterator for &'a Slice<K, V>
§impl<'a, K, V> IntoIterator for &'a mut Slice<K, V>
impl<'a, K, V> IntoIterator for &'a mut Slice<K, V>
1.0.0 · Source§impl<'a, K, V, A> IntoIterator for &'a BTreeMap<K, V, A>
impl<'a, K, V, A> IntoIterator for &'a BTreeMap<K, V, A>
1.0.0 · Source§impl<'a, K, V, A> IntoIterator for &'a mut BTreeMap<K, V, A>
impl<'a, K, V, A> IntoIterator for &'a mut BTreeMap<K, V, A>
1.0.0 · Source§impl<'a, K, V, S> IntoIterator for &'a rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a AHashMap<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a AHashMap<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a Cache<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a Cache<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a IndexMap<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a IndexMap<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a LiteMap<K, V, S>where
S: StoreIterable<'a, K, V>,
impl<'a, K, V, S> IntoIterator for &'a LiteMap<K, V, S>where
S: StoreIterable<'a, K, V>,
§impl<'a, K, V, S> IntoIterator for &'a SegmentedCache<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a SegmentedCache<K, V, S>
1.0.0 · Source§impl<'a, K, V, S> IntoIterator for &'a mut rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a mut rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashMap<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a mut AHashMap<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a mut AHashMap<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a mut IndexMap<K, V, S>
impl<'a, K, V, S> IntoIterator for &'a mut IndexMap<K, V, S>
§impl<'a, K, V, S> IntoIterator for &'a mut LiteMap<K, V, S>where
S: StoreIterableMut<'a, K, V>,
impl<'a, K, V, S> IntoIterator for &'a mut LiteMap<K, V, S>where
S: StoreIterableMut<'a, K, V>,
§impl<'a, K, V, S, A> IntoIterator for &'a HashMap<K, V, S, A>where
A: Allocator,
impl<'a, K, V, S, A> IntoIterator for &'a HashMap<K, V, S, A>where
A: Allocator,
§impl<'a, K, V, S, A> IntoIterator for &'a mut HashMap<K, V, S, A>where
A: Allocator,
impl<'a, K, V, S, A> IntoIterator for &'a mut HashMap<K, V, S, A>where
A: Allocator,
§impl<'a, St> IntoIterator for &'a SelectAll<St>
impl<'a, St> IntoIterator for &'a SelectAll<St>
§impl<'a, St> IntoIterator for &'a mut SelectAll<St>
impl<'a, St> IntoIterator for &'a mut SelectAll<St>
1.4.0 · Source§impl<'a, T> IntoIterator for &'a Option<T>
impl<'a, T> IntoIterator for &'a Option<T>
1.0.0 · Source§impl<'a, T> IntoIterator for &'a [T]
impl<'a, T> IntoIterator for &'a [T]
§impl<'a, T> IntoIterator for &'a HeaderMap<T>
impl<'a, T> IntoIterator for &'a HeaderMap<T>
§impl<'a, T> IntoIterator for &'a Stack<T>where
T: Stackable,
impl<'a, T> IntoIterator for &'a Stack<T>where
T: Stackable,
§impl<'a, T> IntoIterator for &'a StackRef<T>where
T: Stackable,
impl<'a, T> IntoIterator for &'a StackRef<T>where
T: Stackable,
§impl<'a, T> IntoIterator for &'a NonEmptyVec<T>
impl<'a, T> IntoIterator for &'a NonEmptyVec<T>
Source§impl<'a, T> IntoIterator for &'a std::sync::mpmc::Receiver<T>
impl<'a, T> IntoIterator for &'a std::sync::mpmc::Receiver<T>
1.1.0 · Source§impl<'a, T> IntoIterator for &'a std::sync::mpsc::Receiver<T>
impl<'a, T> IntoIterator for &'a std::sync::mpsc::Receiver<T>
§impl<'a, T> IntoIterator for &'a Receiver<T>
This exists as a shorthand for [Receiver::iter].
impl<'a, T> IntoIterator for &'a Receiver<T>
This exists as a shorthand for [Receiver::iter].
§impl<'a, T> IntoIterator for &'a ThreadLocal<T>
impl<'a, T> IntoIterator for &'a ThreadLocal<T>
1.4.0 · Source§impl<'a, T> IntoIterator for &'a mut Option<T>
impl<'a, T> IntoIterator for &'a mut Option<T>
1.0.0 · Source§impl<'a, T> IntoIterator for &'a mut [T]
impl<'a, T> IntoIterator for &'a mut [T]
§impl<'a, T> IntoIterator for &'a mut HeaderMap<T>
impl<'a, T> IntoIterator for &'a mut HeaderMap<T>
§impl<'a, T> IntoIterator for &'a mut Stack<T>where
T: Stackable,
impl<'a, T> IntoIterator for &'a mut Stack<T>where
T: Stackable,
§impl<'a, T> IntoIterator for &'a mut StackRef<T>where
T: Stackable,
impl<'a, T> IntoIterator for &'a mut StackRef<T>where
T: Stackable,
§impl<'a, T> IntoIterator for &'a mut CachedThreadLocal<T>where
T: Send + 'a,
impl<'a, T> IntoIterator for &'a mut CachedThreadLocal<T>where
T: Send + 'a,
§impl<'a, T> IntoIterator for &'a mut Slab<T>
impl<'a, T> IntoIterator for &'a mut Slab<T>
§impl<'a, T> IntoIterator for &'a mut ThreadLocal<T>where
T: Send,
impl<'a, T> IntoIterator for &'a mut ThreadLocal<T>where
T: Send,
§impl<'a, T> IntoIterator for OccupiedEntry<'a, T>
impl<'a, T> IntoIterator for OccupiedEntry<'a, T>
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a BTreeSet<T, A>
impl<'a, T, A> IntoIterator for &'a BTreeSet<T, A>
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a BinaryHeap<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a BinaryHeap<T, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a LinkedList<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a LinkedList<T, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a VecDeque<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a VecDeque<T, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::vec::Vec<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::vec::Vec<T, A>where
A: Allocator,
§impl<'a, T, A> IntoIterator for &'a HashTable<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a HashTable<T, A>where
A: Allocator,
§impl<'a, T, A> IntoIterator for &'a Vec<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a Vec<T, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a mut LinkedList<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a mut LinkedList<T, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a mut VecDeque<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a mut VecDeque<T, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, A> IntoIterator for &'a mut rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::vec::Vec<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a mut rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::vec::Vec<T, A>where
A: Allocator,
§impl<'a, T, A> IntoIterator for &'a mut HashTable<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a mut HashTable<T, A>where
A: Allocator,
§impl<'a, T, A> IntoIterator for &'a mut Vec<T, A>where
A: Allocator,
impl<'a, T, A> IntoIterator for &'a mut Vec<T, A>where
A: Allocator,
1.4.0 · Source§impl<'a, T, E> IntoIterator for &'a Result<T, E>
impl<'a, T, E> IntoIterator for &'a Result<T, E>
1.4.0 · Source§impl<'a, T, E> IntoIterator for &'a mut Result<T, E>
impl<'a, T, E> IntoIterator for &'a mut Result<T, E>
§impl<'a, T, N> IntoIterator for &'a GenericArray<T, N>where
T: 'a,
N: ArrayLength<T>,
impl<'a, T, N> IntoIterator for &'a GenericArray<T, N>where
T: 'a,
N: ArrayLength<T>,
§impl<'a, T, N> IntoIterator for &'a mut GenericArray<T, N>where
T: 'a,
N: ArrayLength<T>,
impl<'a, T, N> IntoIterator for &'a mut GenericArray<T, N>where
T: 'a,
N: ArrayLength<T>,
1.0.0 · Source§impl<'a, T, S> IntoIterator for &'a rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashSet<T, S>
impl<'a, T, S> IntoIterator for &'a rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashSet<T, S>
§impl<'a, T, S, A> IntoIterator for &'a HashSet<T, S, A>where
A: Allocator,
impl<'a, T, S, A> IntoIterator for &'a HashSet<T, S, A>where
A: Allocator,
1.0.0 · Source§impl<'a, T, const N: usize> IntoIterator for &'a [T; N]
impl<'a, T, const N: usize> IntoIterator for &'a [T; N]
1.0.0 · Source§impl<'a, T, const N: usize> IntoIterator for &'a mut [T; N]
impl<'a, T, const N: usize> IntoIterator for &'a mut [T; N]
Source§impl<A> IntoIterator for Range<A>where
A: Step,
impl<A> IntoIterator for Range<A>where
A: Step,
Source§impl<A> IntoIterator for RangeFrom<A>where
A: Step,
impl<A> IntoIterator for RangeFrom<A>where
A: Step,
Source§impl<A> IntoIterator for RangeInclusive<A>where
A: Step,
impl<A> IntoIterator for RangeInclusive<A>where
A: Step,
§impl<A> IntoIterator for ArrayVec<A>where
A: Array,
impl<A> IntoIterator for ArrayVec<A>where
A: Array,
§impl<A> IntoIterator for SmallVec<A>where
A: Array,
impl<A> IntoIterator for SmallVec<A>where
A: Array,
§impl<A> IntoIterator for TinyVec<A>where
A: Array,
impl<A> IntoIterator for TinyVec<A>where
A: Array,
§impl<Fut> IntoIterator for FuturesUnordered<Fut>where
Fut: Unpin,
impl<Fut> IntoIterator for FuturesUnordered<Fut>where
Fut: Unpin,
§impl<I> IntoIterator for &RcIter<I>where
I: Iterator,
Return an iterator from &RcIter<I> (by simply cloning it).
impl<I> IntoIterator for &RcIter<I>where
I: Iterator,
Return an iterator from &RcIter<I> (by simply cloning it).