brainos_httpadapter/
state.rs1use std::collections::HashMap;
4use std::sync::Arc;
5
6use axum::extract::State as AxumState;
7use channel::transport::inbound::WebhookInboundTransport;
8use tokio::sync::Mutex;
9use uuid::Uuid;
10
11use crate::metrics::Metrics;
12
13pub const CACHE_CAPACITY: usize = 1000;
15
16pub struct AppState {
18 pub processor: Arc<signal::SignalProcessor>,
19 pub webhook_handlers: HashMap<String, Arc<WebhookInboundTransport>>,
21 pub cache: Mutex<lru::LruCache<Uuid, signal::SignalResponse>>,
23 pub api_keys: Vec<brain::ApiKeyConfig>,
25 pub metrics: Arc<Metrics>,
27}
28
29pub type AppStateRef = AxumState<Arc<AppState>>;