fn add_trait_bounds(mut generics: Generics, pool: &Vec<TokenStream2>, p: &TokenStream2) -> Generics {
    for param in &mut generics.params {
        if let GenericParam::Type(ref mut type_param) = *param {
            let ident = type_param.ident.clone();
            let me = ident.to_string();
            if !pool.iter().any(|p| p.to_string() == me) {
                type_param.bounds.push(parse_quote!(corundum::PClone<#p>));
            }
        }
    }
    generics
}
// Add a bound `T: PClone` to every type parameter T.
Add a bound `T: PClone` to every type parameter T.
Add a bound ` T : PClone ` to every type parameter T .
fn add_trait_bounds(mut generics: Generics, pool: &Vec<TokenStream2>, p: &TokenStream2) -> Generics {
    for param in &mut generics.params {
        if let GenericParam::Type(ref mut type_param) = *param {
            let ident = type_param.ident.clone();
            let me = ident.to_string();
            if !pool.iter().any(|p| p.to_string() == me) {
                type_param.bounds.push(parse_quote!(corundum::PClone<#p>));
            }
        }
    }
    generics
}
fn add_trait_bounds ( mut generics : Generics , pool : & Vec < TokenStream2 > , p : & TokenStream2 ) -> Generics { for param in & mut generics . params { if let GenericParam :: Type ( ref mut type_param ) = * param { let ident = type_param . ident . clone ( ) ; let me = ident . to_string ( ) ; if ! pool . iter ( ) . any ( | p | p . to_string ( ) == me ) { type_param . bounds . push ( parse_quote ! ( corundum PClone p ) ) ; } } } generics }
Add a bound `T: PClone` to every type parameter T.
Add a bound ` T : PClone ` to every type parameter T .
generics
Generics
pool
&Vec<TokenStream2>
p
&TokenStream2