pub trait DerefMut: Deref {
fn deref_mut(&mut self) -> &mut Self::Target;
}
The DerefMut trait is used to specify the functionality of dereferencing mutably like *v = 1;
DerefMut also enables 'Deref coercions'.
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(&self) -> &T {
&self.value
}
}
impl<T> DerefMut for DerefMutExample<T> {
fn deref_mut(&mut self) -> &mut T {
&mut self.value
}
}
fn main() {
let mut x = DerefMutExample { value: 'a' };
*x = 'b';
assert_eq!('b', *x);
} impl<'a, T> DerefMut for PeekMut<'a, T> where T: Ordimpl DerefMut for Stringimpl<T> DerefMut for Vec<T>impl<T> DerefMut for Box<T> where T: ?Sizedimpl<'a, T> DerefMut for &'a mut T where T: ?Sizedimpl<'b, T> DerefMut for RefMut<'b, T> where T: ?Sizedimpl<T> DerefMut for AssertUnwindSafe<T>impl<'mutex, T: ?Sized> DerefMut for MutexGuard<'mutex, T>impl<'rwlock, T: ?Sized> DerefMut for RwLockWriteGuard<'rwlock, T>
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/ops/trait.DerefMut.html