mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 17:19:15 +08:00
refactor: Add a GAT Data to Operation trait (#5825)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -43,6 +43,7 @@ impl Derives {
|
||||
quote! {
|
||||
#[automatically_derived]
|
||||
impl<F:Send+Clone> Operation<F,#req_type> for #struct_name {
|
||||
type Data = PaymentData<F>;
|
||||
#(#fns)*
|
||||
}
|
||||
}
|
||||
@ -57,6 +58,7 @@ impl Derives {
|
||||
quote! {
|
||||
#[automatically_derived]
|
||||
impl<F:Send+Clone> Operation<F,#req_type> for &#struct_name {
|
||||
type Data = PaymentData<F>;
|
||||
#(#ref_fns)*
|
||||
}
|
||||
}
|
||||
@ -118,27 +120,27 @@ impl Conversion {
|
||||
let req_type = Self::get_req_type(ident);
|
||||
match self {
|
||||
Self::ValidateRequest => quote! {
|
||||
fn to_validate_request(&self) -> RouterResult<&(dyn ValidateRequest<F,#req_type> + Send + Sync)> {
|
||||
fn to_validate_request(&self) -> RouterResult<&(dyn ValidateRequest<F,#req_type, Self::Data> + Send + Sync)> {
|
||||
Ok(self)
|
||||
}
|
||||
},
|
||||
Self::GetTracker => quote! {
|
||||
fn to_get_tracker(&self) -> RouterResult<&(dyn GetTracker<F,PaymentData<F>,#req_type> + Send + Sync)> {
|
||||
fn to_get_tracker(&self) -> RouterResult<&(dyn GetTracker<F, Self::Data, #req_type> + Send + Sync)> {
|
||||
Ok(self)
|
||||
}
|
||||
},
|
||||
Self::Domain => quote! {
|
||||
fn to_domain(&self) -> RouterResult<&dyn Domain<F,#req_type>> {
|
||||
fn to_domain(&self) -> RouterResult<&dyn Domain<F,#req_type, Self::Data>> {
|
||||
Ok(self)
|
||||
}
|
||||
},
|
||||
Self::UpdateTracker => quote! {
|
||||
fn to_update_tracker(&self) -> RouterResult<&(dyn UpdateTracker<F,PaymentData<F>,#req_type> + Send + Sync)> {
|
||||
fn to_update_tracker(&self) -> RouterResult<&(dyn UpdateTracker<F, Self::Data, #req_type> + Send + Sync)> {
|
||||
Ok(self)
|
||||
}
|
||||
},
|
||||
Self::PostUpdateTracker => quote! {
|
||||
fn to_post_update_tracker(&self) -> RouterResult<&(dyn PostUpdateTracker<F, PaymentData<F>, #req_type> + Send + Sync)> {
|
||||
fn to_post_update_tracker(&self) -> RouterResult<&(dyn PostUpdateTracker<F, Self::Data, #req_type> + Send + Sync)> {
|
||||
Ok(self)
|
||||
}
|
||||
},
|
||||
@ -166,27 +168,27 @@ impl Conversion {
|
||||
let req_type = Self::get_req_type(ident);
|
||||
match self {
|
||||
Self::ValidateRequest => quote! {
|
||||
fn to_validate_request(&self) -> RouterResult<&(dyn ValidateRequest<F,#req_type> + Send + Sync)> {
|
||||
fn to_validate_request(&self) -> RouterResult<&(dyn ValidateRequest<F, #req_type, Self::Data> + Send + Sync)> {
|
||||
Ok(*self)
|
||||
}
|
||||
},
|
||||
Self::GetTracker => quote! {
|
||||
fn to_get_tracker(&self) -> RouterResult<&(dyn GetTracker<F,PaymentData<F>,#req_type> + Send + Sync)> {
|
||||
fn to_get_tracker(&self) -> RouterResult<&(dyn GetTracker<F, Self::Data,#req_type> + Send + Sync)> {
|
||||
Ok(*self)
|
||||
}
|
||||
},
|
||||
Self::Domain => quote! {
|
||||
fn to_domain(&self) -> RouterResult<&(dyn Domain<F,#req_type>)> {
|
||||
fn to_domain(&self) -> RouterResult<&(dyn Domain<F,#req_type, Self::Data>)> {
|
||||
Ok(*self)
|
||||
}
|
||||
},
|
||||
Self::UpdateTracker => quote! {
|
||||
fn to_update_tracker(&self) -> RouterResult<&(dyn UpdateTracker<F,PaymentData<F>,#req_type> + Send + Sync)> {
|
||||
fn to_update_tracker(&self) -> RouterResult<&(dyn UpdateTracker<F, Self::Data,#req_type> + Send + Sync)> {
|
||||
Ok(*self)
|
||||
}
|
||||
},
|
||||
Self::PostUpdateTracker => quote! {
|
||||
fn to_post_update_tracker(&self) -> RouterResult<&(dyn PostUpdateTracker<F, PaymentData<F>, #req_type> + Send + Sync)> {
|
||||
fn to_post_update_tracker(&self) -> RouterResult<&(dyn PostUpdateTracker<F, Self::Data, #req_type> + Send + Sync)> {
|
||||
Ok(*self)
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user