dynex 0.1.1

Inherit and derive object-unsafe traits for dynamic Rust.
Documentation
pub fn is_dyn(ty: &syn::Type) -> bool {
    match ty {
        syn::Type::TraitObject(_) => true,
        syn::Type::Reference(r) => is_dyn(&r.elem),
        syn::Type::Path(p) => {
            for seg in &p.path.segments {
                let syn::PathArguments::AngleBracketed(args) = &seg.arguments else {
                    continue
                };
                for arg in &args.args {
                    let syn::GenericArgument::Type(ty) = arg else {
                        continue
                    };
                    if is_dyn(ty) {
                        return true
                    }
                }
            }
            false
        },
        _ => false,
    }
}