Trait core::ops::DerefExperimental [-]  [+] [src]

pub trait Deref<Result: ?Sized>: ?Sized {
    fn deref<'a>(&'a self) -> &'a Result;
}

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

Example

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

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

impl<T> Deref<T> for DerefExample<T> {
    fn deref<'a>(&'a self) -> &'a T {
        &self.value
    }
}

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

Required Methods

fn deref<'a>(&'a self) -> &'a Result

The method called to dereference a value

Implementors