non_structural_derive
A derive-macro replacing the builtin auto-trait implementation with a manual non-recursive one:
// The builtin auto-trait impl would look like this:
unsafe
// `#[non_structural_derive(Send)]` emits the the following instead:
unsafe
Why would you want this?
The code emitted by non_structural_derive is strictly weaker than the builtin auto-trait impl.
It may however improve compile times and avoid overflow errors for very deeply nested types.