http_server_tiny 0.1.6

HTTP SERVER
Documentation
use http_server_tiny::{HttpServer, Method, Res};
use std::{
    sync::{Arc, Mutex},
    thread,
};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut server = HttpServer::new("0.0.0.0:8000", "error.html");
    server.add_route(
        &Method::Get,
        "/",
        Box::new(|_| Res::File {
            name: "./static/index.html",
            ct: "text/html; charset=utf-8",
            sc: 200,
        }),
    );
    server.add_route(
        &Method::Get,
        "/hi",
        Box::new(|_| Res::File {
            name: "./static/hi.html",
            ct: "text/html; charset=utf-8",
            sc: 200,
        }),
    );

    let server = Arc::new(Mutex::new(server));

    let mut handles = Vec::new();

    for _ in 0..4 {
        let server = server.clone();
        let handle = thread::spawn(move || {
            server
                .lock()
                .unwrap()
                .handle_requests(Box::new(|req_in| {
                    println!("INFO: {} '{}'\n", req_in.method, req_in.url);
                }))
                .unwrap();
        });

        handles.push(handle);
    }

    for handle in handles {
        handle.join().unwrap();
    }

    Ok(())
}