use striker_proto::{Request, Response, StrikerRequest, StrikerResponse}; use crate::updates::{DetectorConfigUpdate, DetectorConfigurationHandle}; pub struct RpcServer; impl RpcServer { pub async fn handle_request(req: StrikerRequest) -> Option { match req.request { Request::Ping => Some(StrikerResponse::Response(Response::Pong)), Request::DetectorInfo => { let config = DetectorConfigurationHandle::get_config(); Some(StrikerResponse::Response(Response::DetectorInfo { blip_threshold: config.blip_threshold(), blip_size: config.blip_size(), })) } Request::SetDetectorConfig { blip_size, blip_threshold, } => { DetectorConfigurationHandle::set_config(DetectorConfigUpdate { blip_threshold, blip_size, }); Some(StrikerResponse::Response(Response::SetDetectorConfig { success: true, message: None, })) } } } }