use structopt::StructOpt; use crate::{db::backend::Connectable, Settings, UrlMap}; #[derive(StructOpt)] /// Run an HTTP server pub struct RunServer { #[structopt(default_value = "8000")] /// The port to listen on port: u16, } impl RunServer { pub fn execute(self, urls: UrlMap, _settings: Settings) { println!("Starting server at http://127.0.0.1:{}/", self.port); let server_task = warp::serve(urls).run(([127, 0, 0, 1], self.port)); tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .unwrap() .block_on(server_task) } }