fn new(
        ecx: &ExprContext,
        args: &[Option<ScalarType>],
        params: &ParamList,
    ) -> Option<PolymorphicSolution> {
        let mut r = PolymorphicSolution {
            compat: None,
            seen: vec![],
            key: None,
        };

        for (i, scalar_type) in args.iter().cloned().enumerate() {
            r.track_seen(&params[i], scalar_type);
        }

        if !r.determine_key(ecx) {
            None
        } else {
            Some(r)
        }
    }
/// Provides a solution to the polymorphic type constraints expressed in
/// `params` based on the users' input in `args`. Returns `None` if a
/// solution cannot be found.
///
/// After constructing the `PolymorphicSolution`, access its solution using
/// [`PolymorphicSolution::target_for_param_type`].
Provides a solution to the polymorphic type constraints expressed in
`params` based on the users' input in `args`. Returns `None` if a
solution cannot be found.


Provides a solution to the polymorphic type constraints expressed in ` params ` based on the users ' input in ` args ` . Returns ` None ` if a solution cannot be found .
fn new(
        ecx: &ExprContext,
        args: &[Option<ScalarType>],
        params: &ParamList,
    ) -> Option<PolymorphicSolution> {
        let mut r = PolymorphicSolution {
            compat: None,
            seen: vec![],
            key: None,
        };
        for (i, scalar_type) in args.iter().cloned().enumerate() {
            r.track_seen(&params[i], scalar_type);
        }
        if !r.determine_key(ecx) {
            None
        } else {
            Some(r)
        }
    }
fn new ( ecx : & ExprContext , args : & [ Option < ScalarType > ] , params : & ParamList , ) -> Option < PolymorphicSolution > { let mut r = PolymorphicSolution { compat : None , seen : vec ! [ ] , key : None , } ; for ( i , scalar_type ) in args . iter ( ) . cloned ( ) . enumerate ( ) { r . track_seen ( & params [ i ] , scalar_type ) ; } if ! r . determine_key ( ecx ) { None } else { Some ( r ) } }
Provides a solution to the polymorphic type constraints expressed in
`params` based on the users' input in `args`.
Provides a solution to the polymorphic type constraints expressed in ` params ` based on the users ' input in ` args ` .
ecx
&ExprContext
args
&[Option<ScalarType>]
params
&ParamList
ecx
&ExprContext
args
&[Option<ScalarType>]
params
&ParamList