1pub trait FlattensInto<T>: private::Sealed<T> {}
6
7impl<T> FlattensInto<Vec<T>> for Vec<Option<T>> {}
8impl<T> FlattensInto<Vec<T>> for Option<Vec<T>> {}
9impl<T> FlattensInto<Option<Vec<T>>> for Option<Vec<Option<T>>> {}
10impl<T> FlattensInto<Vec<T>> for Option<Vec<Option<T>>> {}
11
12mod private {
13 pub trait Sealed<T> {}
14
15 impl<T> Sealed<Vec<T>> for Vec<Option<T>> {}
16 impl<T> Sealed<Vec<T>> for Option<Vec<T>> {}
17 impl<T> Sealed<Option<Vec<T>>> for Option<Vec<Option<T>>> {}
18 impl<T> Sealed<Vec<T>> for Option<Vec<Option<T>>> {}
19}