diff --git a/src/object.rs b/src/object.rs index b7fe218..f7ab153 100644 --- a/src/object.rs +++ b/src/object.rs @@ -25,7 +25,7 @@ use alloc::vec::Vec; /// argument; then, it will be possible to pass either a `Box`, `Vec`, or a `&'a mut T` /// without any conversion at the call site. /// -/// Note that a `Vec` converted into an `Into>` gets transformed +/// Note that a `Vec` converted into an `Into>` gets transformed /// into a boxed slice, and can no longer be resized. See also /// [ManagedSlice](enum.ManagedSlice.html), which does not have this drawback. pub enum Managed<'a, T: 'a + ?Sized> { @@ -54,14 +54,14 @@ impl<'a, T: 'a + ?Sized> From<&'a mut T> for Managed<'a, T> { } #[cfg(any(feature = "std", feature = "alloc"))] -impl From> for Managed<'static, T> { +impl<'a, T: ?Sized + 'a> From> for Managed<'a, T> { fn from(value: Box) -> Self { Managed::Owned(value) } } #[cfg(any(feature = "std", feature = "alloc"))] -impl From> for Managed<'static, [T]> { +impl<'a, T: 'a> From> for Managed<'a, [T]> { fn from(value: Vec) -> Self { Managed::Owned(value.into_boxed_slice()) } diff --git a/src/slice.rs b/src/slice.rs index b8e51b5..b25948d 100644 --- a/src/slice.rs +++ b/src/slice.rs @@ -71,7 +71,7 @@ from_unboxed_slice!(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31); #[cfg(any(feature = "std", feature = "alloc"))] -impl From> for ManagedSlice<'static, T> { +impl<'a, T: 'a> From> for ManagedSlice<'a, T> { fn from(value: Vec) -> Self { ManagedSlice::Owned(value) }