diff --git a/src/lib.rs b/src/lib.rs index e42fc68..5823acd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -162,11 +162,12 @@ impl ValidationContext { /// `T`: data type to validate /// `Self::A`: dependent arguments /// -pub trait Arguments<'a, T> { - /// Argument type - type A: 'a; +pub trait Arguments<'a, T> +where + T: ValidateArgs<'a>, +{ /// Get dependent arguments - fn get(&'a self) -> Self::A; + fn get(&'a self) -> T::Args; } /// `ValidRejection` is returned when the `Valid` extractor fails. @@ -275,10 +276,7 @@ where Body: Send + Sync + 'static, Args: Send + Sync + for<'a> Arguments<'a, >::ValidateArgs>, Extractor: for<'v> HasValidateArgs<'v> + FromRequest, - for<'v> >::ValidateArgs: ValidateArgs< - 'v, - Args = >::ValidateArgs>>::A, - >, + for<'v> >::ValidateArgs: ValidateArgs<'v>, ValidationContext: FromRef, { type Rejection = ValidRejection<>::Rejection>; @@ -300,10 +298,7 @@ where State: Send + Sync, Args: Send + Sync + for<'a> Arguments<'a, >::ValidateArgs>, Extractor: for<'v> HasValidateArgs<'v> + FromRequestParts, - for<'v> >::ValidateArgs: ValidateArgs< - 'v, - Args = >::ValidateArgs>>::A, - >, + for<'v> >::ValidateArgs: ValidateArgs<'v>, ValidationContext: FromRef, { type Rejection = ValidRejection<>::Rejection>; diff --git a/src/test.rs b/src/test.rs index 7989f5d..fb41984 100644 --- a/src/test.rs +++ b/src/test.rs @@ -61,9 +61,7 @@ pub struct ParametersExValidationArguments { } impl<'a> Arguments<'a, ParametersEx> for ParametersExValidationArguments { - type A = >::Args; - - fn get(&'a self) -> Self::A { + fn get(&'a self) -> >::Args { (&self.v0_range, &self.v1_length_range) } }