From d3ac395dcc6bb68b6ec1d1a8601d3b3c8b7bd372 Mon Sep 17 00:00:00 2001 From: Michael Rosenberg <42micro@gmail.com> Date: Fri, 15 May 2015 22:07:20 -0400 Subject: [PATCH] Update reference.md Added `Deref` to the "Special Traits" section --- src/doc/reference.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/doc/reference.md b/src/doc/reference.md index 21e9be59ebbdf..0682c2003e3f6 100644 --- a/src/doc/reference.md +++ b/src/doc/reference.md @@ -3622,6 +3622,14 @@ The `Sized` trait indicates that the size of this type is known at compile-time. The `Drop` trait provides a destructor, to be run whenever a value of this type is to be destroyed. +## The `Deref` trait + +The `Deref<Target = U>` trait allows a type to implicitly implement all the methods +of the type `U`. When attempting to resolve a method call, the compiler will search +the top-level type for the implementation of the called method. If no such method is +found, `.deref()` is called and the compiler continues to search for the method +implementation in the returned type `U`. + # Memory model A Rust program's memory consists of a static set of *items* and a *heap*.