|
117 | 117 | //! If you have any questions, please
|
118 | 118 | //! [start a discussion](https://github.com/RustCrypto/hybrid-array/discussions).
|
119 | 119 |
|
| 120 | +#[cfg(feature = "alloc")] |
| 121 | +extern crate alloc; |
| 122 | + |
120 | 123 | pub mod sizes;
|
121 | 124 |
|
122 | 125 | mod from_fn;
|
@@ -829,6 +832,62 @@ where
|
829 | 832 | }
|
830 | 833 | }
|
831 | 834 |
|
| 835 | +#[cfg(feature = "alloc")] |
| 836 | +impl<T, U> TryFrom<alloc::boxed::Box<[T]>> for Array<T, U> |
| 837 | +where |
| 838 | + Self: Clone, |
| 839 | + U: ArraySize, |
| 840 | +{ |
| 841 | + type Error = TryFromSliceError; |
| 842 | + |
| 843 | + #[inline] |
| 844 | + fn try_from(b: alloc::boxed::Box<[T]>) -> Result<Self, TryFromSliceError> { |
| 845 | + Self::try_from(&*b) |
| 846 | + } |
| 847 | +} |
| 848 | + |
| 849 | +#[cfg(feature = "alloc")] |
| 850 | +impl<'a, T, U> TryFrom<&'a alloc::boxed::Box<[T]>> for Array<T, U> |
| 851 | +where |
| 852 | + Self: Clone, |
| 853 | + U: ArraySize, |
| 854 | +{ |
| 855 | + type Error = TryFromSliceError; |
| 856 | + |
| 857 | + #[inline] |
| 858 | + fn try_from(b: &'a alloc::boxed::Box<[T]>) -> Result<Self, TryFromSliceError> { |
| 859 | + Self::try_from(&**b) |
| 860 | + } |
| 861 | +} |
| 862 | + |
| 863 | +#[cfg(feature = "alloc")] |
| 864 | +impl<T, U> TryFrom<alloc::vec::Vec<T>> for Array<T, U> |
| 865 | +where |
| 866 | + Self: Clone, |
| 867 | + U: ArraySize, |
| 868 | +{ |
| 869 | + type Error = TryFromSliceError; |
| 870 | + |
| 871 | + #[inline] |
| 872 | + fn try_from(v: alloc::vec::Vec<T>) -> Result<Self, TryFromSliceError> { |
| 873 | + Self::try_from(v.as_slice()) |
| 874 | + } |
| 875 | +} |
| 876 | + |
| 877 | +#[cfg(feature = "alloc")] |
| 878 | +impl<'a, T, U> TryFrom<&'a alloc::vec::Vec<T>> for Array<T, U> |
| 879 | +where |
| 880 | + Self: Clone, |
| 881 | + U: ArraySize, |
| 882 | +{ |
| 883 | + type Error = TryFromSliceError; |
| 884 | + |
| 885 | + #[inline] |
| 886 | + fn try_from(v: &'a alloc::vec::Vec<T>) -> Result<Self, TryFromSliceError> { |
| 887 | + Self::try_from(v.as_slice()) |
| 888 | + } |
| 889 | +} |
| 890 | + |
832 | 891 | impl<'a, T, U> TryFrom<&'a [T]> for &'a Array<T, U>
|
833 | 892 | where
|
834 | 893 | U: ArraySize,
|
|
0 commit comments