Trait std::ops::DerefMutStable [-] [+] [src]

pub trait DerefMut: Deref where Self: Deref {
    fn deref_mut(&'a mut self) -> &'a mut <Self as Deref>::Target;
}

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.

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

fn deref_mut(&'a mut self) -> &'a mut <Self as Deref>::Target

The method called to mutably dereference a value

Implementors