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}