non_structural_derive 0.1.1

nonstructural derives for auto traits
Documentation
use non_structural_derive::non_structural_derive;

struct Nested<T>(T);

#[allow(unused)]
#[non_structural_derive(Send, Sync, Unpin, UnwindSafe, RefUnwindSafe)]
struct MyType<T> {
    value: Nested<T>,
}

fn main() {
    use std::panic::{RefUnwindSafe, UnwindSafe};
    fn impls_send<T: Send>() {}
    fn impls_sync<T: Sync>() {}
    fn impls_unpin<T: Unpin>() {}
    fn impls_unwind_safe<T: UnwindSafe>() {}
    fn impls_ref_unwind_safe<T: RefUnwindSafe>() {}
    impls_send::<MyType<u32>>();
    impls_sync::<MyType<u32>>();
    impls_unpin::<MyType<u32>>();
    impls_unwind_safe::<MyType<u32>>();
    impls_ref_unwind_safe::<MyType<u32>>();
}