Trait std::ops::DerefMut
[−]
[src]
pub trait DerefMut: Deref {
fn deref_mut(&'a mut self) -> &'a mut Self::Target;
}The DerefMut`DerefMuttrait is used to specify the functionality of dereferencing mutably like` trait is used to specify the functionality of dereferencing
mutably like *v = 1;`*v = 1;`
Examples
A struct with a single field which is modifiable via dereferencing the struct.
use std::ops::{Deref, DerefMut}; struct DerefMutExample<T> { value: T } impl<T> Deref for DerefMutExample<T> { type Target = T; fn deref<'a>(&'a self) -> &'a T { &self.value } } impl<T> DerefMut 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); }use std::ops::{Deref, DerefMut}; struct DerefMutExample<T> { value: T } impl<T> Deref for DerefMutExample<T> { type Target = T; fn deref<'a>(&'a self) -> &'a T { &self.value } } impl<T> DerefMut 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
Implementors
impl<'a, T> DerefMut for &'a mut T where T: ?Sizedimpl<'b, T> DerefMut for RefMut<'b, T> where T: ?Sizedimpl<T> DerefMut for Box<T> where T: ?Sizedimpl<'id, T> DerefMut for IdRef<'id, T>impl<T> DerefMut for Vec<T>impl<'mutex, T: ?Sized> DerefMut for MutexGuard<'mutex, T>impl<'rwlock, T: ?Sized> DerefMut for RwLockWriteGuard<'rwlock, T>