mockforge_http/handlers/
risk_simulation.rs1use crate::auth::risk_engine::{RiskAssessment, RiskEngine};
7use async_trait::async_trait;
8use std::{collections::HashMap, sync::Arc};
9
10pub use mockforge_intelligence::handlers::risk_simulation::*;
11
12#[derive(Clone)]
14pub struct RiskSimulationState {
15 pub risk_engine: Arc<RiskEngine>,
17}
18
19impl RiskSimulationStateProvider for RiskSimulationState {
20 type Engine = RiskEngine;
21
22 fn risk_engine(&self) -> &Self::Engine {
23 &self.risk_engine
24 }
25}
26
27#[async_trait]
28impl RiskSimulationEngine for RiskEngine {
29 async fn set_simulated_risk(&self, user_id: String, score: Option<f64>) {
30 RiskEngine::set_simulated_risk(self, user_id, score).await;
31 }
32
33 async fn set_simulated_factors(&self, user_id: String, factors: HashMap<String, f64>) {
34 RiskEngine::set_simulated_factors(self, user_id, factors).await;
35 }
36
37 async fn clear_simulated_risk(&self, user_id: &str) {
38 RiskEngine::clear_simulated_risk(self, user_id).await;
39 }
40
41 async fn assess_risk(&self, user_id: &str, factors: &HashMap<String, f64>) -> RiskAssessment {
42 RiskEngine::assess_risk(self, user_id, factors).await
43 }
44}