Weird rust question: I have a trait T that is implemented by A and B. I want to make a new type C that contains an A (eg C<A>) where C impl T, but without having to redefine every trait method that T has with fn method() { self.a.method() }. Is there a way to "project" an inner types trait to an outer?

In my research my current vibe is "no", so I'm thinking the best option may be to allow C to deref to A, but that breaks dyn.

Currently in the problem space I have I think I need to split T into two traits - one for setup and one for the main operations so that during setup the inner type that does impl T can be returned, while still allowing a outer operations of A / B to follow a trait S. That way I can make C that uses A's setup S and returns a B impl T.