Trait std::ops::DerefMut[src]
pub trait DerefMut<Result>: Deref<Result> {
fn deref_mut<Result>(&'a mut self) -> &'a mut Result;
}The DerefMut trait is used to specify the functionality of dereferencing
mutably like *v = 1;
Example
A struct with a single field which is modifiable via dereferencing the struct.
struct DerefMutExample<T> { value: T } impl<T> Deref<T> for DerefMutExample<T> { fn deref<'a>(&'a self) -> &'a T { &self.value } } impl<T> DerefMut<T> for DerefMutExample<T> { fn deref_mut<'a>(&'a mut self) -> &'a mut T { &mut self.value } } fn main() { let mut x = DerefMutExample { value: 'a' }; *x = 'b'; assert_eq!('b', *x); }struct DerefMutExample<T> { value: T } impl<T> Deref<T> for DerefMutExample<T> { fn deref<'a>(&'a self) -> &'a T { &self.value } } impl<T> DerefMut<T> for DerefMutExample<T> { fn deref_mut<'a>(&'a mut self) -> &'a mut T { &mut self.value } } fn main() { let mut x = DerefMutExample { value: 'a' }; *x = 'b'; assert_eq!('b', *x); }
Required Methods
fn deref_mut<Result>(&'a mut self) -> &'a mut Result
The method called to mutably dereference a value
Implementors
impl<'b, T> DerefMut<T> for RefMut<'b, T>impl<'a, T: Send> DerefMut<T> for MutexGuard<'a, T>impl<'a, T: Send + Share> DerefMut<T> for RWLockWriteGuard<'a, T>impl<T> DerefMut<T> for Borrowed<T>impl<'a, T: Send> DerefMut<T> for ExclusiveGuard<'a, T>