use manta_backend_dispatcher::error::Error;
use csm_rs::backend_connector::Csm;
use ochami_rs::backend_connector::Ochami;
#[derive(Clone)]
#[allow(clippy::upper_case_acronyms)]
pub enum StaticBackendDispatcher {
CSM(Csm),
OCHAMI(Ochami),
}
impl StaticBackendDispatcher {
pub fn new(
backend_type: &str,
base_url: &str,
root_cert: &[u8],
socks5_proxy: Option<&str>,
) -> Result<Self, Error> {
match backend_type {
"csm" => Ok(Self::CSM(Csm::new(base_url, root_cert, socks5_proxy))),
"ochami" => Ok(Self::OCHAMI(Ochami::new(base_url, root_cert, socks5_proxy))),
_ => Err(Error::UnsupportedBackend(format!(
"Backend '{}' not supported",
backend_type
))),
}
}
}