refactor Arguments
This commit is contained in:
19
src/lib.rs
19
src/lib.rs
@@ -162,11 +162,12 @@ impl<Arguments> ValidationContext<Arguments> {
|
|||||||
/// `T`: data type to validate
|
/// `T`: data type to validate
|
||||||
/// `Self::A`: dependent arguments
|
/// `Self::A`: dependent arguments
|
||||||
///
|
///
|
||||||
pub trait Arguments<'a, T> {
|
pub trait Arguments<'a, T>
|
||||||
/// Argument type
|
where
|
||||||
type A: 'a;
|
T: ValidateArgs<'a>,
|
||||||
|
{
|
||||||
/// Get dependent arguments
|
/// Get dependent arguments
|
||||||
fn get(&'a self) -> Self::A;
|
fn get(&'a self) -> T::Args;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// `ValidRejection` is returned when the `Valid` extractor fails.
|
/// `ValidRejection` is returned when the `Valid` extractor fails.
|
||||||
@@ -275,10 +276,7 @@ where
|
|||||||
Body: Send + Sync + 'static,
|
Body: Send + Sync + 'static,
|
||||||
Args: Send + Sync + for<'a> Arguments<'a, <Extractor as HasValidateArgs<'a>>::ValidateArgs>,
|
Args: Send + Sync + for<'a> Arguments<'a, <Extractor as HasValidateArgs<'a>>::ValidateArgs>,
|
||||||
Extractor: for<'v> HasValidateArgs<'v> + FromRequest<State, Body>,
|
Extractor: for<'v> HasValidateArgs<'v> + FromRequest<State, Body>,
|
||||||
for<'v> <Extractor as HasValidateArgs<'v>>::ValidateArgs: ValidateArgs<
|
for<'v> <Extractor as HasValidateArgs<'v>>::ValidateArgs: ValidateArgs<'v>,
|
||||||
'v,
|
|
||||||
Args = <Args as Arguments<'v, <Extractor as HasValidateArgs<'v>>::ValidateArgs>>::A,
|
|
||||||
>,
|
|
||||||
ValidationContext<Args>: FromRef<State>,
|
ValidationContext<Args>: FromRef<State>,
|
||||||
{
|
{
|
||||||
type Rejection = ValidRejection<<Extractor as FromRequest<State, Body>>::Rejection>;
|
type Rejection = ValidRejection<<Extractor as FromRequest<State, Body>>::Rejection>;
|
||||||
@@ -300,10 +298,7 @@ where
|
|||||||
State: Send + Sync,
|
State: Send + Sync,
|
||||||
Args: Send + Sync + for<'a> Arguments<'a, <Extractor as HasValidateArgs<'a>>::ValidateArgs>,
|
Args: Send + Sync + for<'a> Arguments<'a, <Extractor as HasValidateArgs<'a>>::ValidateArgs>,
|
||||||
Extractor: for<'v> HasValidateArgs<'v> + FromRequestParts<State>,
|
Extractor: for<'v> HasValidateArgs<'v> + FromRequestParts<State>,
|
||||||
for<'v> <Extractor as HasValidateArgs<'v>>::ValidateArgs: ValidateArgs<
|
for<'v> <Extractor as HasValidateArgs<'v>>::ValidateArgs: ValidateArgs<'v>,
|
||||||
'v,
|
|
||||||
Args = <Args as Arguments<'v, <Extractor as HasValidateArgs<'v>>::ValidateArgs>>::A,
|
|
||||||
>,
|
|
||||||
ValidationContext<Args>: FromRef<State>,
|
ValidationContext<Args>: FromRef<State>,
|
||||||
{
|
{
|
||||||
type Rejection = ValidRejection<<Extractor as FromRequestParts<State>>::Rejection>;
|
type Rejection = ValidRejection<<Extractor as FromRequestParts<State>>::Rejection>;
|
||||||
|
|||||||
@@ -61,9 +61,7 @@ pub struct ParametersExValidationArguments {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Arguments<'a, ParametersEx> for ParametersExValidationArguments {
|
impl<'a> Arguments<'a, ParametersEx> for ParametersExValidationArguments {
|
||||||
type A = <ParametersEx as ValidateArgs<'a>>::Args;
|
fn get(&'a self) -> <ParametersEx as ValidateArgs<'a>>::Args {
|
||||||
|
|
||||||
fn get(&'a self) -> Self::A {
|
|
||||||
(&self.v0_range, &self.v1_length_range)
|
(&self.v0_range, &self.v1_length_range)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user