Trait std::convert::AsMut 1.0.0
[−]
[src]
pub trait AsMut<T> where
T: ?Sized, {
fn as_mut(&mut self) -> &mut T;
}A cheap, mutable reference-to-mutable reference conversion.
This trait is similar to AsRef but used for converting between mutable
references.
Note: this trait must not fail. If the conversion can fail, use a
dedicated method which returns an Option<T> or a Result<T, E>.
Generic Implementations
AsMutauto-dereferences if the inner type is a reference or a mutable reference (e.g.:foo.as_ref()will work the same iffoohas type&mut Fooor&&mut Foo)
Examples
Box<T> implements AsMut<T>:
fn add_one<T: AsMut<u64>>(num: &mut T) { *num.as_mut() += 1; } let mut boxed_num = Box::new(0); add_one(&mut boxed_num); assert_eq!(*boxed_num, 1);Run
Required Methods
Implementors
impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8931) => core/f752ee8::array[0]::{{impl}}[266]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8807) => core/f752ee8::array[0]::{{impl}}[222]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8652) => core/f752ee8::array[0]::{{impl}}[167]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8776) => core/f752ee8::array[0]::{{impl}}[211]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8187) => core/f752ee8::array[0]::{{impl}}[2]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8249) => core/f752ee8::array[0]::{{impl}}[24]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8714) => core/f752ee8::array[0]::{{impl}}[189]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8683) => core/f752ee8::array[0]::{{impl}}[178]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8559) => core/f752ee8::array[0]::{{impl}}[134]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:9117) => core/f752ee8::array[0]::{{impl}}[332]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8373) => core/f752ee8::array[0]::{{impl}}[68]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8466) => core/f752ee8::array[0]::{{impl}}[101]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8838) => core/f752ee8::array[0]::{{impl}}[233]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8311) => core/f752ee8::array[0]::{{impl}}[46]::{{initializer}}[0] }, Slice([])) }]impl<'a, T, U> AsMut<U> for &'a mut T where
T: AsMut<U> + ?Sized,
U: ?Sized,impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:9148) => core/f752ee8::array[0]::{{impl}}[343]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8528) => core/f752ee8::array[0]::{{impl}}[123]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:9055) => core/f752ee8::array[0]::{{impl}}[310]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:9024) => core/f752ee8::array[0]::{{impl}}[299]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8621) => core/f752ee8::array[0]::{{impl}}[156]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8280) => core/f752ee8::array[0]::{{impl}}[35]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8993) => core/f752ee8::array[0]::{{impl}}[288]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8590) => core/f752ee8::array[0]::{{impl}}[145]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:9086) => core/f752ee8::array[0]::{{impl}}[321]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8218) => core/f752ee8::array[0]::{{impl}}[13]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8745) => core/f752ee8::array[0]::{{impl}}[200]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8900) => core/f752ee8::array[0]::{{impl}}[255]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:9179) => core/f752ee8::array[0]::{{impl}}[354]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8342) => core/f752ee8::array[0]::{{impl}}[57]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8435) => core/f752ee8::array[0]::{{impl}}[90]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8404) => core/f752ee8::array[0]::{{impl}}[79]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8869) => core/f752ee8::array[0]::{{impl}}[244]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8962) => core/f752ee8::array[0]::{{impl}}[277]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for [T; Const { ty: usize, val: Unevaluated(DefId { krate: CrateNum(1), node: DefIndex(1:8497) => core/f752ee8::array[0]::{{impl}}[112]::{{initializer}}[0] }, Slice([])) }]impl<T> AsMut<[T]> for Vec<T>impl<T> AsMut<Vec<T>> for Vec<T>impl<T> AsMut<T> for Box<T> where
T: ?Sized,