If you want inheritance you can add structs as parameters of other structs. This will also allow them to use impl functions for that struct.
As far as I understand it Arc<> is just the Async version of RC<>.
I'm not entirely sure about Box<> and a lot of its API's are still unstable but I believe it's primarily used as an owner for unsafe things.