fn generate_provider_struct_type_params(&self) -> TokenStream {
        // Make a list of all of the reference param lifetimes of all the probes
        let probe_lifetimes: Vec<syn::Lifetime> = self
            .probes
            .iter()
            .map(ProbeGenerator::args_lifetime_parameters)
            .flatten()
            .collect();

        //The struct simply takes all of these lifetimes plus 'a
        quote! {
            'a, #(#probe_lifetimes),*
        }
    }
/// The provider struct we declare to hold the probe objects needs to take a lot of type
/// parameters.  One type, 'a, which corresponds to the lifetime parameter of the underling
/// `ProviderProbe`s, and also one lifetime parameter for every reference argument of every probe
/// method.
///
/// The return value of this is a token stream consisting of all of the types, but not including
/// the angle brackets.
The provider struct we declare to hold the probe objects needs to take a lot of type
parameters.  One type, 'a, which corresponds to the lifetime parameter of the underling
`ProviderProbe`s, and also one lifetime parameter for every reference argument of every probe
method.

The return value of this is a token stream consisting of all of the types, but not including
the angle brackets.
The provider struct we declare to hold the probe objects needs to take a lot of type parameters . One type ' a which corresponds to the lifetime parameter of the underling ` ProviderProbe ` s and also one lifetime parameter for every reference argument of every probe method . The return value of this is a token stream consisting of all of the types but not including the angle brackets .
fn generate_provider_struct_type_params(&self) -> TokenStream {
        // Make a list of all of the reference param lifetimes of all the probes
        let probe_lifetimes: Vec<syn::Lifetime> = self
            .probes
            .iter()
            .map(ProbeGenerator::args_lifetime_parameters)
            .flatten()
            .collect();
        //The struct simply takes all of these lifetimes plus 'a
        quote! {
            'a, #(#probe_lifetimes),*
        }
    }
fn generate_provider_struct_type_params ( & self ) -> TokenStream { // Make a list of all of the reference param lifetimes of all the probes let probe_lifetimes : Vec < syn :: Lifetime > = self . probes . iter ( ) . map ( ProbeGenerator :: args_lifetime_parameters ) . flatten ( ) . collect ( ) ; //The struct simply takes all of these lifetimes plus 'a quote ! { ' a ( probe_lifetimes ) } }
The provider struct we declare to hold the probe objects needs to take a lot of type
parameters.
The provider struct we declare to hold the probe objects needs to take a lot of type parameters .
&self
&self