ope-rust-web-server 0.1.1

A library for creating a static web server
Documentation
use std::net::TcpListener;
use std::io::ErrorKind;
use ::server::thread::ThreadPool;
use ::server::process::CliArgs;
use ::server::request::handle_connection;
pub mod server;

fn main() {
    let args = CliArgs::get();
    let server_port: &str;
    match &args.port {
        Some(port) => {
            server_port = port;
        }
        None => {server_port = "0";}
    }
    let server_addr = String::from("127.0.0.1:") + server_port;
    let listener = TcpListener::bind(server_addr);

    let pool = ThreadPool::new(args.thread_count);

    match listener {
        Ok(listener) => {
            println!("App listening on port {}", TcpListener::local_addr(&listener).unwrap());
            for stream in listener.incoming() {
                let stream = stream.unwrap();

                pool.execute(|| {
                    handle_connection(stream);
                });
            }
        }
        Err(e) => {
            match e.kind() {
                ErrorKind::InvalidInput => {
                    panic!("{}", e)
                }
                ErrorKind::AddrInUse => {
                    panic!("{}", e)
                }
                _ => {
                    panic!("Unable to establish connection")
                }
            }
        }
    }
}