mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-02 04:04:43 +08:00
refactor(conditional_configs): refactor conditional_configs to use Moka Cache instead of Static Cache (#4814)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -1,5 +1,9 @@
|
||||
pub mod types;
|
||||
|
||||
use std::fmt::Debug;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{
|
||||
backend::{self, inputs, EuclidBackend},
|
||||
frontend::{
|
||||
@ -9,6 +13,7 @@ use crate::{
|
||||
},
|
||||
};
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
pub struct VirInterpreterBackend<O> {
|
||||
program: vir::ValuedProgram<O>,
|
||||
}
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
//! Valued Intermediate Representation
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::types::{EuclidValue, Metadata};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub enum ValuedComparisonLogic {
|
||||
NegativeConjunction,
|
||||
PositiveDisjunction,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ValuedComparison {
|
||||
pub values: Vec<EuclidValue>,
|
||||
pub logic: ValuedComparisonLogic,
|
||||
@ -16,20 +18,20 @@ pub struct ValuedComparison {
|
||||
|
||||
pub type ValuedIfCondition = Vec<ValuedComparison>;
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ValuedIfStatement {
|
||||
pub condition: ValuedIfCondition,
|
||||
pub nested: Option<Vec<ValuedIfStatement>>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ValuedRule<O> {
|
||||
pub name: String,
|
||||
pub connector_selection: O,
|
||||
pub statements: Vec<ValuedIfStatement>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ValuedProgram<O> {
|
||||
pub default_selection: O,
|
||||
pub rules: Vec<ValuedRule<O>>,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
pub mod transformers;
|
||||
|
||||
use euclid_macros::EnumNums;
|
||||
use serde::Serialize;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum::VariantNames;
|
||||
|
||||
use crate::{
|
||||
@ -143,7 +143,7 @@ impl EuclidKey {
|
||||
|
||||
enums::collect_variants!(EuclidKey);
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum NumValueRefinement {
|
||||
NotEqual,
|
||||
@ -178,18 +178,18 @@ impl From<NumValueRefinement> for ast::ComparisonType {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash, serde::Serialize)]
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
|
||||
pub struct StrValue {
|
||||
pub value: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash, serde::Serialize)]
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
|
||||
pub struct MetadataValue {
|
||||
pub key: String,
|
||||
pub value: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash, serde::Serialize)]
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
|
||||
pub struct NumValue {
|
||||
pub number: i64,
|
||||
pub refinement: Option<NumValueRefinement>,
|
||||
@ -234,7 +234,7 @@ impl NumValue {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||
pub enum EuclidValue {
|
||||
PaymentMethod(enums::PaymentMethod),
|
||||
CardBin(StrValue),
|
||||
|
||||
Reference in New Issue
Block a user