torrust_index/web/api/
mod.rs1pub mod client;
10pub mod server;
11
12use std::net::SocketAddr;
13use std::sync::Arc;
14
15use tokio::task::JoinHandle;
16
17use self::server::signals::Halted;
18use crate::common::AppData;
19use crate::config::Tsl;
20use crate::web::api;
21
22pub enum Version {
24 V1,
25}
26
27pub struct Running {
29 pub socket_addr: SocketAddr,
31 pub halt_task: tokio::sync::oneshot::Sender<Halted>,
33 pub task: JoinHandle<Result<(), std::io::Error>>,
35}
36
37#[must_use]
39pub async fn start(
40 app_data: Arc<AppData>,
41 config_bind_address: SocketAddr,
42 opt_tsl: Option<Tsl>,
43 implementation: &Version,
44) -> api::Running {
45 match implementation {
46 Version::V1 => server::start(app_data, config_bind_address, opt_tsl).await,
47 }
48}