use holochain_types::websocket::AllowedOrigins;
use schemars::JsonSchema;
use serde::Deserialize;
use serde::Serialize;
#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, JsonSchema)]
pub struct AdminInterfaceConfig {
pub driver: InterfaceDriver,
}
#[derive(Clone, Deserialize, Serialize, Debug, PartialEq, JsonSchema)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum InterfaceDriver {
Websocket {
port: u16,
danger_bind_addr: Option<String>,
allowed_origins: AllowedOrigins,
},
}
impl InterfaceDriver {
pub fn port(&self) -> u16 {
match self {
InterfaceDriver::Websocket { port, .. } => *port,
}
}
pub fn danger_bind_addr(&self) -> Option<&String> {
match self {
InterfaceDriver::Websocket {
danger_bind_addr, ..
} => danger_bind_addr.as_ref(),
}
}
pub fn allowed_origins(&self) -> &AllowedOrigins {
match self {
InterfaceDriver::Websocket {
allowed_origins, ..
} => allowed_origins,
}
}
}