However, since T: Copy, this is redundant - I don't need both. Is there a generally accepted way to provide getters in this situation? Any examples from the standard library or ecosystem, perhaps?
Sidenote: don't place bounds on generic arguments on types; it usually ends up being unnecessarily restrictive and it doesn't gain much. Constrain impl blocks if necessary instead.
Yeah, I'm oversimplifying a bit. In reality, there are multiple types like this, and they all implement a single trait which has the bound MyTrait<T>: Copy. The question is actually about methods on that trait, not inherent methods.
I don't see why it shouldn't be fn get(self) -> T i.e. with a self argument. std::num::Wrapping is an example of a newtype wrapper that uses self methods.
Cell provides this for any type while it provides get(&self) -> T only if T: Copy. You can do a similar thing if you don't restrict the T on the struct definition, as @H2CO3 suggested.