Box
Box es un puntero propio de datos en el heap:
fn main() { let five = Box::new(5); println!("five: {}", *five); }
Box<T> implementa Deref<Target = T>, lo que significa que puedes llamar a métodos desde T directamente en un Box<T>.
Boxes igual questd::unique_ptren C++, salvo que está asegurado que no será nulo.- En el ejemplo anterior, incluso puedes omitir 
*en la instrucciónprintln!gracias aDeref. - Un 
Boxpuede resultar útil en los siguientes casos:- Si tienes un tipo cuyo tamaño no se conoce durante la compilación, pero el compilador de Rust quiere saber el tamaño exacto.
 - Si quieres transferir la propiedad de una gran cantidad de datos. Para evitar que se copien grandes cantidades de datos en la stack, almacena los datos del heap en un 
Boxpara que solo se mueva el puntero.