ну box будет другой,
как минимум вот такие вещи будут невозможны
The third one is the one that really gets to us here3. For a regular type, *foo will produce a temporary that must be immediately borrowed or copied. You cannot do let x = *y for a non-Copy type. This dereference operation will call DerefMut::deref_mut or Deref::deref based on how it gets borrowed. With Box<T>, you can do this:
let x = Box::new(vec![1,2,3,4]);
let y = *x; // moves the vec out into y, then deallocates the box
// but does not call a destructor on the vec