[−][src]Enum managed::ManagedSlice
A managed slice.
This enum can be used to represent exclusive access to slices of objects. In Rust, exclusive access to an object is obtained by either owning the object, or owning a mutable pointer to the object; hence, "managed".
The purpose of this enum is providing good ergonomics with std
present while making
it possible to avoid having a heap at all (which of course means that std
is not present).
To achieve this, the variants other than Borrowed
are only available when the corresponding
feature is opted in.
A function that requires a managed object should be generic over an Into<ManagedSlice<'a, T>>
argument; then, it will be possible to pass either a Vec<T>
, or a &'a mut [T]
without any conversion at the call site.
See also Managed.
Variants
Borrowed(&'a mut [T])
Borrowed variant.
Owned(Vec<T>)
Owned variant, only available with the std
or alloc
feature enabled.
Trait Implementations
impl<'a, T: 'a> Debug for ManagedSlice<'a, T> where
T: Debug,
[src]
T: Debug,
impl<'a, T: 'a> Deref for ManagedSlice<'a, T>
[src]
impl<'a, T: 'a> DerefMut for ManagedSlice<'a, T>
[src]
impl<'a, T: 'a> From<&'a mut [T]> for ManagedSlice<'a, T>
[src]
fn from(value: &'a mut [T]) -> Self
[src]
impl<'a, T> From<[T; 0]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 1]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 10]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 11]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 12]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 13]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 14]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 15]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 16]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 17]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 18]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 19]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 2]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 20]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 21]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 22]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 23]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 24]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 25]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 26]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 27]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 28]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 29]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 3]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 30]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 31]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 4]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 5]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 6]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 7]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 8]> for ManagedSlice<'a, T>
[src]
impl<'a, T> From<[T; 9]> for ManagedSlice<'a, T>
[src]
impl<'a, T: 'a> From<Vec<T>> for ManagedSlice<'a, T>
[src]
Auto Trait Implementations
impl<'a, T> RefUnwindSafe for ManagedSlice<'a, T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, T> Send for ManagedSlice<'a, T> where
T: Send,
T: Send,
impl<'a, T> Sync for ManagedSlice<'a, T> where
T: Sync,
T: Sync,
impl<'a, T> Unpin for ManagedSlice<'a, T> where
T: Unpin,
T: Unpin,
impl<'a, T> !UnwindSafe for ManagedSlice<'a, T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,