snakepipe 2.2.1

A snake game based on stdin/stdout following unix philosophy
Documentation
use crate::common::format_version_to_display;
use crate::input::parse_gamestate;
use crate::render_browser::common::UrlToDisplay;
use crate::render_browser::server::launch_server;

pub fn run(port: u16) {
    match parse_gamestate() {
        Ok(input) => {
            let mut options_passthrough = input.options.clone();
            options_passthrough
                .features_with_version
                .insert("render-browser".to_string(), format_version_to_display());
            let url_to_display = UrlToDisplay::new(port);
            options_passthrough.metadatas.insert(
                "render-browser-host".to_string(),
                format!("{}", url_to_display.url).to_string(),
            );
            println!("{}\r", serde_json::to_string(&options_passthrough).unwrap());
            let _ = launch_server(input.lines, options_passthrough, port);
        }
        Err(e) => {
            eprintln!("Error occurred while parsing stdin: \"{}\"", e);
            std::process::exit(exitcode::DATAERR);
        }
    }
}