darling::usage

Trait UsesTypeParams

Source
pub trait UsesTypeParams {
    // Required method
    fn uses_type_params<'a>(
        &self,
        options: &Options,
        type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>,
    ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>;

    // Provided method
    fn uses_type_params_cloned(
        &self,
        options: &Options,
        type_set: &HashSet<Ident, BuildHasherDefault<FnvHasher>>,
    ) -> HashSet<Ident, BuildHasherDefault<FnvHasher>> { ... }
}
Expand description

Searcher for finding type params in a syntax tree. This can be used to determine if a given type parameter needs to be bounded in a generated impl.

Required Methods§

Source

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Returns the subset of the queried type parameters that are used by the implementing syntax element.

This method only accounts for direct usage by the element; indirect usage via bounds or where predicates are not detected.

Provided Methods§

Source

fn uses_type_params_cloned( &self, options: &Options, type_set: &HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<Ident, BuildHasherDefault<FnvHasher>>

Find all type params using uses_type_params, then clone the found values and return the set.

Implementations on Foreign Types§

Source§

impl UsesTypeParams for Fields

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Data

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeParamBound

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for WherePredicate

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for GenericArgument

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for PathArguments

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for ReturnType

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Type

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for ()

Source§

fn uses_type_params<'a>( &self, _options: &Options, _type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Ident

Check if an Ident exactly matches one of the sought-after type parameters.

Source§

fn uses_type_params<'a>( &self, _options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Field

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for FieldsNamed

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Variant

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for DataEnum

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for DataStruct

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for DataUnion

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for PredicateType

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TraitBound

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for AngleBracketedGenericArguments

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for AssocType

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Constraint

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for ParenthesizedGenericArguments

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for Path

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for QSelf

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for BareFnArg

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeArray

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeBareFn

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeGroup

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeImplTrait

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeParen

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypePath

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypePtr

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeReference

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeSlice

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeTraitObject

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl UsesTypeParams for TypeTuple

Source§

fn uses_type_params<'gen>( &self, options: &Options, type_set: &'gen HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'gen Ident, BuildHasherDefault<FnvHasher>>

Source§

impl<T> UsesTypeParams for Option<T>
where T: UsesTypeParams,

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl<T> UsesTypeParams for Vec<T>
where T: UsesTypeParams,

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Source§

impl<T, U> UsesTypeParams for Punctuated<T, U>
where T: UsesTypeParams,

Source§

fn uses_type_params<'a>( &self, options: &Options, type_set: &'a HashSet<Ident, BuildHasherDefault<FnvHasher>>, ) -> HashSet<&'a Ident, BuildHasherDefault<FnvHasher>>

Implementors§

Source§

impl UsesTypeParams for Ignored

Source§

impl<T> UsesTypeParams for darling::ast::Fields<T>
where T: UsesTypeParams,

Source§

impl<V, F> UsesTypeParams for darling::ast::Data<V, F>