computation_types/run/
into_vec.rs1pub 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}