use moka::future::Cache;
use reqwest::Client;
use serde_json::Value;
use crate::drivers::postgresql::sqlx_driver::PostgresClientRegistry;
use std::sync::Arc;
pub mod api;
pub mod config;
pub mod data;
pub mod drivers;
pub mod parser;
pub mod proxy_request;
pub mod router;
pub struct AppState {
pub cache: Arc<Cache<String, Value>>,
pub immortal_cache: Arc<Cache<String, Value>>,
pub client: Client,
pub pg_registry: Arc<PostgresClientRegistry>,
pub gateway_force_camel_case_to_snake_case: bool,
pub pipeline_registry: Option<Arc<std::collections::HashMap<String, api::pipelines::PipelineDefinition>>>,
}
pub struct ImmortalCache {
pub cache: Arc<Cache<String, Value>>,
}
pub mod utils;