Because I only ever access the trait object in methods that take &mut self, an &self does not allow access to that field. For this reason, I believe it would be sound to write an unsafe impl Send for my type.
Since it occurs to me that that is probably a common phenomenon and I want to minimize the scope of my unsafe code, I want to make an abstraction for it.
Yep that looks sound, I’m using a very similar construct here:
One suggestion is to document the safety requirement well. It feels very easy to want to add something like derive(Debug) or Clone, but those would be unsound.
Thank you both for the verification! I wonder how common mutable only fields are in practice. Do you think this abstraction warrants inclusion in the standard library?