non_empty_slice/
ownership.rs1#[cfg(not(feature = "ownership"))]
2compile_error!("expected `ownership` to be enabled");
3
4#[cfg(any(feature = "std", feature = "alloc"))]
5use ownership::IntoOwned;
6
7#[cfg(any(feature = "std", feature = "alloc"))]
8use crate::{boxed::NonEmptyBoxedSlice, vec::NonEmptyVec};
9
10#[cfg(any(feature = "std", feature = "alloc"))]
11impl<T: IntoOwned> IntoOwned for NonEmptyVec<T> {
12 type Owned = NonEmptyVec<T::Owned>;
13
14 fn into_owned(self) -> Self::Owned {
15 unsafe { Self::Owned::new_unchecked(self.into_vec().into_owned()) }
17 }
18}
19
20#[cfg(any(feature = "std", feature = "alloc"))]
21impl<T: IntoOwned> IntoOwned for NonEmptyBoxedSlice<T> {
22 type Owned = NonEmptyBoxedSlice<T::Owned>;
23
24 fn into_owned(self) -> Self::Owned {
25 self.into_non_empty_vec()
26 .into_owned()
27 .into_non_empty_boxed_slice()
28 }
29}