pub mod server;
pub mod v1;
use std::net::SocketAddr;
use std::sync::Arc;
use tokio::task::JoinHandle;
use crate::common::AppData;
use crate::web::api;
pub enum Version {
V1,
}
pub struct Running {
pub socket_addr: SocketAddr,
pub api_server: Option<JoinHandle<Result<(), std::io::Error>>>,
}
#[must_use]
#[derive(Debug)]
pub struct ServerStartedMessage {
pub socket_addr: SocketAddr,
}
#[must_use]
pub async fn start(app_data: Arc<AppData>, net_ip: &str, net_port: u16, implementation: &Version) -> api::Running {
match implementation {
Version::V1 => server::start(app_data, net_ip, net_port).await,
}
}