computation_types/run/
into_vec.rs

1pub trait IntoVec {
2    type Item;
3
4    fn into_vec(self) -> Vec<Self::Item>;
5}
6
7impl<A> IntoVec for Vec<A> {
8    type Item = A;
9
10    fn into_vec(self) -> Vec<Self::Item> {
11        self
12    }
13}
14
15impl<A, const LEN: usize> IntoVec for [A; LEN] {
16    type Item = A;
17
18    fn into_vec(self) -> Vec<Self::Item> {
19        self.into()
20    }
21}
22
23impl<I, F> IntoVec for std::iter::Map<I, F>
24where
25    Self: Iterator,
26{
27    type Item = <Self as Iterator>::Item;
28
29    fn into_vec(self) -> Vec<Self::Item> {
30        self.collect()
31    }
32}
33
34impl<I> IntoVec for std::iter::Cloned<I>
35where
36    Self: Iterator,
37{
38    type Item = <Self as Iterator>::Item;
39
40    fn into_vec(self) -> Vec<Self::Item> {
41        self.collect()
42    }
43}
44
45impl<I> IntoVec for std::iter::Copied<I>
46where
47    Self: Iterator,
48{
49    type Item = <Self as Iterator>::Item;
50
51    fn into_vec(self) -> Vec<Self::Item> {
52        self.collect()
53    }
54}
55
56impl<I> IntoVec for std::iter::Take<I>
57where
58    Self: Iterator,
59{
60    type Item = <Self as Iterator>::Item;
61
62    fn into_vec(self) -> Vec<Self::Item> {
63        self.collect()
64    }
65}
66
67impl<T> IntoVec for std::ops::Range<T>
68where
69    Self: Iterator,
70{
71    type Item = <Self as Iterator>::Item;
72
73    fn into_vec(self) -> Vec<Self::Item> {
74        self.collect()
75    }
76}