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: Ord
impl DerefMut for String
impl<T> DerefMut for Vec<T>
impl<T> DerefMut for Box<T> where T: ?Sized
impl<'a, T> DerefMut for &'a mut T where T: ?Sized
impl<'b, T> DerefMut for RefMut<'b, T> where T: ?Sized
impl<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