rjango 0.1.1

A full-stack Rust backend framework inspired by Django
Documentation
use std::net::SocketAddr;

/// Configuration for the development HTTP server.
#[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
    )
}