#[repr(C)]pub struct CStackList<H, T>(pub T, pub H)
where
T: CStackListHeadLimit;Expand description
A list using a guaranteed memory layout (repr(C)), with tail stored first so appending items
does not change the memory layout of prior items.
Tuple Fields§
§0: T§1: HTrait Implementations§
Source§impl<H, T> CStackListHeadLimit for CStackList<H, T>where
H: 'static,
T: CStackListHeadLimit,
impl<H, T> CStackListHeadLimit for CStackList<H, T>where
H: 'static,
T: CStackListHeadLimit,
Source§const HEAD_LIMIT: usize
const HEAD_LIMIT: usize
The offset to the end of the head element.
Source§impl<H, T> CStackListHeadPadded for CStackList<H, T>where
H: 'static,
T: CStackListHeadLimit,
impl<H, T> CStackListHeadPadded for CStackList<H, T>where
H: 'static,
T: CStackListHeadLimit,
Source§const HEAD_PADDED: bool
const HEAD_PADDED: bool
Whether the head element is padded to the next alignment boundary.
Source§impl<H, T> Clone for CStackList<H, T>
impl<H, T> Clone for CStackList<H, T>
Source§fn clone(&self) -> CStackList<H, T>
fn clone(&self) -> CStackList<H, T>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<H, T> Debug for CStackList<H, T>
impl<H, T> Debug for CStackList<H, T>
Source§impl<H, T, Idx> Index<Idx> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
CStackList<H, T>: ListIndex<Idx>,
<CStackList<H, T> as ListIndex<Idx>>::Output: Sized,
impl<H, T, Idx> Index<Idx> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
CStackList<H, T>: ListIndex<Idx>,
<CStackList<H, T> as ListIndex<Idx>>::Output: Sized,
Source§impl<A> IntoRustTuple for CStackList<A, CNil<()>>where
A: 'static,
impl<A> IntoRustTuple for CStackList<A, CNil<()>>where
A: 'static,
Source§fn into_rust_tuple(self) -> <CStackList<A, CNil<()>> as IntoRustTuple>::Tuple
fn into_rust_tuple(self) -> <CStackList<A, CNil<()>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B> IntoRustTuple for CStackList<A, CStackList<B, CNil<()>>>where
A: 'static,
B: 'static,
impl<A, B> IntoRustTuple for CStackList<A, CStackList<B, CNil<()>>>where
A: 'static,
B: 'static,
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CNil<()>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CNil<()>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CNil<()>>>>where
A: 'static,
B: 'static,
C: 'static,
impl<A, B, C> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CNil<()>>>>where
A: 'static,
B: 'static,
C: 'static,
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CNil<()>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CNil<()>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CNil<()>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
impl<A, B, C, D> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CNil<()>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
Source§type Tuple = (A, B, C, D)
type Tuple = (A, B, C, D)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CNil<()>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CNil<()>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CNil<()>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
impl<A, B, C, D, E> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CNil<()>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
Source§type Tuple = (A, B, C, D, E)
type Tuple = (A, B, C, D, E)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CNil<()>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CNil<()>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CNil<()>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
impl<A, B, C, D, E, F> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CNil<()>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
Source§type Tuple = (A, B, C, D, E, F)
type Tuple = (A, B, C, D, E, F)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CNil<()>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CNil<()>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F, G> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CNil<()>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
impl<A, B, C, D, E, F, G> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CNil<()>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
Source§type Tuple = (A, B, C, D, E, F, G)
type Tuple = (A, B, C, D, E, F, G)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CNil<()>>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CNil<()>>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F, G, H> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CNil<()>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
impl<A, B, C, D, E, F, G, H> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CNil<()>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
Source§type Tuple = (A, B, C, D, E, F, G, H)
type Tuple = (A, B, C, D, E, F, G, H)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CNil<()>>>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CNil<()>>>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F, G, H, I> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CNil<()>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
impl<A, B, C, D, E, F, G, H, I> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CNil<()>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
Source§type Tuple = (A, B, C, D, E, F, G, H, I)
type Tuple = (A, B, C, D, E, F, G, H, I)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CNil<()>>>>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CNil<()>>>>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F, G, H, I, J> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CNil<()>>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
J: 'static,
impl<A, B, C, D, E, F, G, H, I, J> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CNil<()>>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
J: 'static,
Source§type Tuple = (A, B, C, D, E, F, G, H, I, J)
type Tuple = (A, B, C, D, E, F, G, H, I, J)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CNil<()>>>>>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CNil<()>>>>>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F, G, H, I, J, K> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CNil<()>>>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
J: 'static,
K: 'static,
impl<A, B, C, D, E, F, G, H, I, J, K> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CNil<()>>>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
J: 'static,
K: 'static,
Source§type Tuple = (A, B, C, D, E, F, G, H, I, J, K)
type Tuple = (A, B, C, D, E, F, G, H, I, J, K)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CNil<()>>>>>>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CNil<()>>>>>>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CStackList<L, CNil<()>>>>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
J: 'static,
K: 'static,
L: 'static,
impl<A, B, C, D, E, F, G, H, I, J, K, L> IntoRustTuple for CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CStackList<L, CNil<()>>>>>>>>>>>>>where
A: 'static,
B: 'static,
C: 'static,
D: 'static,
E: 'static,
F: 'static,
G: 'static,
H: 'static,
I: 'static,
J: 'static,
K: 'static,
L: 'static,
Source§type Tuple = (A, B, C, D, E, F, G, H, I, J, K, L)
type Tuple = (A, B, C, D, E, F, G, H, I, J, K, L)
The native tuple type with fields in logical source order.
Source§fn into_rust_tuple(
self,
) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CStackList<L, CNil<()>>>>>>>>>>>>> as IntoRustTuple>::Tuple
fn into_rust_tuple( self, ) -> <CStackList<A, CStackList<B, CStackList<C, CStackList<D, CStackList<E, CStackList<F, CStackList<G, CStackList<H, CStackList<I, CStackList<J, CStackList<K, CStackList<L, CNil<()>>>>>>>>>>>>> as IntoRustTuple>::Tuple
Moves each logical field into the corresponding native tuple field. Read more
Source§impl<H, T> List for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
impl<H, T> List for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
Source§type Push<U: 'static> = CStackList<U, CStackList<H, T>>
type Push<U: 'static> = CStackList<U, CStackList<H, T>>
The type of the list after pushing a new value.
Source§type Append<U: List> = <<T as List>::Append<U> as List>::Push<H>
type Append<U: List> = <<T as List>::Append<U> as List>::Push<H>
The style of
List appended to SelfSource§type ReverseOnto<U: List> = <T as List>::ReverseOnto<<U as List>::Push<H>>
type ReverseOnto<U: List> = <T as List>::ReverseOnto<<U as List>::Push<H>>
The resulting list when reversing
Self onto U.Source§fn empty() -> <CStackList<H, T> as List>::Empty
fn empty() -> <CStackList<H, T> as List>::Empty
Returns a new empty list that can be used to create a list with the same characteristics.
Source§fn tail(&self) -> &<CStackList<H, T> as List>::Tail
fn tail(&self) -> &<CStackList<H, T> as List>::Tail
Returns a reference to the rest of the list.
Source§fn push<U>(self, item: U) -> <CStackList<H, T> as List>::Push<U>where
U: 'static,
fn push<U>(self, item: U) -> <CStackList<H, T> as List>::Push<U>where
U: 'static,
Pushes a new value onto the front of the list, returning a new list.
Source§fn reverse_onto<U>(self, other: U) -> <CStackList<H, T> as List>::ReverseOnto<U>where
U: List,
fn reverse_onto<U>(self, other: U) -> <CStackList<H, T> as List>::ReverseOnto<U>where
U: List,
Reverse
Self and append the result to other.Source§impl<H, T, U, B> ListIndex<RangeFrom<UInt<U, B>>> for CStackList<H, T>
impl<H, T, U, B> ListIndex<RangeFrom<UInt<U, B>>> for CStackList<H, T>
Source§impl<H, T> ListIndex<RangeFrom<UTerm>> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
impl<H, T> ListIndex<RangeFrom<UTerm>> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
Source§impl<H, T, U, B> ListIndex<RangeTo<UInt<U, B>>> for CStackList<H, T>
impl<H, T, U, B> ListIndex<RangeTo<UInt<U, B>>> for CStackList<H, T>
Source§impl<H, T> ListIndex<RangeTo<UTerm>> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
impl<H, T> ListIndex<RangeTo<UTerm>> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
Source§impl<H, T, U, B> ListIndex<RangeToInclusive<UInt<U, B>>> for CStackList<H, T>
impl<H, T, U, B> ListIndex<RangeToInclusive<UInt<U, B>>> for CStackList<H, T>
Source§type Output = <<T as ListIndex<RangeToInclusive<<UInt<U, B> as Sub<B1>>::Output>>>::Output as List>::Push<H>
type Output = <<T as ListIndex<RangeToInclusive<<UInt<U, B> as Sub<B1>>::Output>>>::Output as List>::Push<H>
The output reference type when indexing with
Idx.Source§fn index(
&self,
_index: RangeToInclusive<UInt<U, B>>,
) -> &<CStackList<H, T> as ListIndex<RangeToInclusive<UInt<U, B>>>>::Output
fn index( &self, _index: RangeToInclusive<UInt<U, B>>, ) -> &<CStackList<H, T> as ListIndex<RangeToInclusive<UInt<U, B>>>>::Output
Return a reference to the element or sublist selected by
index.Source§impl<H, T> ListIndex<RangeToInclusive<UTerm>> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
impl<H, T> ListIndex<RangeToInclusive<UTerm>> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
Source§type Output = CStackList<H, CNil<T>>
type Output = CStackList<H, CNil<T>>
The output reference type when indexing with
Idx.Source§fn index(
&self,
_index: RangeToInclusive<UTerm>,
) -> &<CStackList<H, T> as ListIndex<RangeToInclusive<UTerm>>>::Output
fn index( &self, _index: RangeToInclusive<UTerm>, ) -> &<CStackList<H, T> as ListIndex<RangeToInclusive<UTerm>>>::Output
Return a reference to the element or sublist selected by
index.Source§impl<H, T, U, B> ListIndex<UInt<U, B>> for CStackList<H, T>
impl<H, T, U, B> ListIndex<UInt<U, B>> for CStackList<H, T>
Source§impl<H, T> ListIndex<UTerm> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
impl<H, T> ListIndex<UTerm> for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
Source§impl<P, H, T> ListTypeIteratorAdvance<P> for CStackList<H, T>
impl<P, H, T> ListTypeIteratorAdvance<P> for CStackList<H, T>
Source§fn advancer<R>(
iter: &mut ListTypeIterator<R, P>,
) -> Option<<P as ListTypeProperty>::Output>where
R: List,
fn advancer<R>(
iter: &mut ListTypeIterator<R, P>,
) -> Option<<P as ListTypeProperty>::Output>where
R: List,
Advance the iterator, returning the next property value.
Source§impl<H, T, O> PartialEq<O> for CStackList<H, T>
impl<H, T, O> PartialEq<O> for CStackList<H, T>
Source§impl<H, T> StackResult for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
impl<H, T> StackResult for CStackList<H, T>where
H: 'static,
T: List + CStackListHeadLimit,
Source§unsafe fn take_result(stack: &mut RawStack) -> H
unsafe fn take_result(stack: &mut RawStack) -> H
Transfers the concrete head out of its owned stack slot.
Source§impl<H, T> ToTypeIdList for CStackList<H, T>where
H: 'static,
T: ToTypeIdList + 'static + CStackListHeadLimit,
impl<H, T> ToTypeIdList for CStackList<H, T>where
H: 'static,
T: ToTypeIdList + 'static + CStackListHeadLimit,
Source§fn to_stack_info_list() -> Vec<StackInfo>
fn to_stack_info_list() -> Vec<StackInfo>
Enumerates tail storage followed by the opaque head.
- Complexity: O(n) slots for n list elements.
Auto Trait Implementations§
impl<H, T> Freeze for CStackList<H, T>
impl<H, T> RefUnwindSafe for CStackList<H, T>where
T: RefUnwindSafe,
H: RefUnwindSafe,
impl<H, T> Send for CStackList<H, T>
impl<H, T> Sync for CStackList<H, T>
impl<H, T> Unpin for CStackList<H, T>
impl<H, T> UnsafeUnpin for CStackList<H, T>where
T: UnsafeUnpin,
H: UnsafeUnpin,
impl<H, T> UnwindSafe for CStackList<H, T>where
T: UnwindSafe,
H: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more