W3cubDocs

/Rust

Trait std::ops::Deref

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);
}

Associated Types

The resulting type after dereferencing

Required Methods

The method called to dereference a value

Implementors

© 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.Deref.html