Skip to main content

soma_gateway/gateway/
runtime.rs

1use std::sync::Arc;
2
3use crate::config::GatewayConfig;
4
5use super::manager::{GatewayManager, GatewayManagerError};
6
7#[derive(Clone)]
8pub struct GatewayRuntime {
9    manager: Arc<GatewayManager>,
10}
11
12impl GatewayRuntime {
13    pub fn new(config: GatewayConfig) -> Result<Self, GatewayManagerError> {
14        Ok(Self {
15            manager: Arc::new(GatewayManager::new(config)?),
16        })
17    }
18
19    #[must_use]
20    pub fn manager(&self) -> Arc<GatewayManager> {
21        Arc::clone(&self.manager)
22    }
23}
24
25#[cfg(test)]
26#[path = "runtime_tests.rs"]
27mod tests;