ref_iter/traits/into_ref_mut_iterator.rs
1//! Provider of [`IntoRefMutIterator`].
2
3use crate::prelude::*;
4
5/// Conversion into an [`RefMutIterator`].
6pub trait IntoRefMutIterator {
7 /// The type of the elements being iterated over.
8 type Item: ?Sized;
9
10 /// Which kind of iterator are we turning this into?
11 type IntoRefMutIter: RefMutIterator<Item = Self::Item>;
12
13 /// Creates an iterator from a value.
14 fn into_ref_mut_iter(self) -> Self::IntoRefMutIter;
15}
16
17impl<T: RefMutIterator> IntoRefMutIterator for T {
18 type Item = T::Item;
19 type IntoRefMutIter = Self;
20
21 fn into_ref_mut_iter(self) -> Self::IntoRefMutIter {
22 self
23 }
24}