Trait collections::std::ops::Deref [] [src]

pub trait Deref {
    type Target: ?Sized;
    fn deref(&self) -> &Self::Target;
}

The Deref trait is used to specify the functionality of dereferencing operations, like *v.

Deref also enables 'Deref coercions'.

Examples

A struct with a single field which is accessible via dereferencing the struct.

use std::ops::Deref; struct DerefExample<T> { value: T } impl<T> Deref for DerefExample<T> { type Target = T; fn deref(&self) -> &T { &self.value } } fn main() { let x = DerefExample { value: 'a' }; assert_eq!('a', *x); }
use std::ops::Deref;

struct DerefExample<T> {
    value: T
}

impl<T> Deref for DerefExample<T> {
    type Target = T;

    fn deref(&self) -> &T {
        &self.value
    }
}

fn main() {
    let x = DerefExample { value: 'a' };
    assert_eq!('a', *x);
}

Associated Types

type Target: ?Sized

The resulting type after dereferencing

Required Methods

fn deref(&self) -> &Self::Target

The method called to dereference a value

Implementors