// run-pass use std::rc::Rc; trait Trait { fn trait_method<'a>(self: &'a Box>) -> &'a [i32]; } impl Trait for Vec { fn trait_method<'a>(self: &'a Box>) -> &'a [i32] { &***self } } fn main() { let v = vec![1,2,3]; assert_eq!(&[1,2,3], Box::new(Rc::new(v)).trait_method()); }