Rust 1.25.0-nightly
3ec5a99aa

# Deref coercions

There is a new edition of the book and this is an old link.

> Implementing the `Deref` trait allows us to customize the behavior of the dereference operator `*`. By implementing `Deref` in such a way that a smart pointer can be treated like a regular reference, we can write code that operates on references and use that code with smart pointers too.

    use std::ops::Deref;

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

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

Here are the relevant sections in the new and old books:

- In the second edition: Ch 15.02 — Treating Smart Pointers like Regular References with the `Deref` Trait
- In the first edition: Ch 3.33 — Deref coercions