use std::net::SocketAddr;
#[derive(Debug, Clone)]
pub struct ServerConfig {
pub addr: SocketAddr,
pub use_reloader: bool,
pub use_threading: bool,
pub use_static_handler: bool,
}
impl Default for ServerConfig {
fn default() -> Self {
Self {
addr: SocketAddr::from(([127, 0, 0, 1], 8000)),
use_reloader: true,
use_threading: true,
use_static_handler: true,
}
}
}
impl ServerConfig {
#[must_use]
pub fn with_addr(mut self, addr: SocketAddr) -> Self {
self.addr = addr;
self
}
#[must_use]
pub fn with_port(mut self, port: u16) -> Self {
self.addr.set_port(port);
self
}
#[must_use]
pub fn without_reloader(mut self) -> Self {
self.use_reloader = false;
self
}
}
#[must_use]
pub fn startup_message(config: &ServerConfig) -> String {
format!(
"Starting development server at http://{}\nQuit the server with CONTROL-C.",
config.addr
)
}