makepad_vector/internal_iter/into_internal_iterator.rs
1use crate::internal_iter::InternalIterator;
2
3/// A trait for conversion into an internal iterator.
4///
5/// This trait is commonly implemented for collections. It is useful when you want to write a
6/// function that can take either a collection or an internal iterator as input.
7pub trait IntoInternalIterator {
8 type Item;
9 type IntoInternalIter: InternalIterator<Item = Self::Item>;
10
11 /// Converts `self` into an internal iterator.
12 fn into_internal_iter(self) -> Self::IntoInternalIter;
13}
14
15impl<I> IntoInternalIterator for I
16where
17 I: InternalIterator,
18{
19 type Item = I::Item;
20 type IntoInternalIter = I;
21
22 fn into_internal_iter(self) -> Self::IntoInternalIter {
23 self
24 }
25}