soma_gateway/gateway/
runtime.rs1use 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;