Skip to main content

soma_gateway/gateway/
virtual_servers.rs

1use crate::config::VirtualServerConfig;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub struct VirtualServerProjection {
5    pub id: String,
6    pub service: String,
7    pub enabled: bool,
8    pub connected: bool,
9    pub mcp_enabled: bool,
10}
11
12pub fn project_virtual_server(
13    server: &VirtualServerConfig,
14    service_connected: bool,
15) -> VirtualServerProjection {
16    VirtualServerProjection {
17        id: server.id.clone(),
18        service: server.service.clone(),
19        enabled: server.enabled,
20        connected: server.enabled && service_connected,
21        mcp_enabled: server.surfaces.mcp,
22    }
23}
24
25#[cfg(test)]
26#[path = "virtual_servers_tests.rs"]
27mod tests;