streaming-platform 0.1.0

Data streaming platform and message broker with concurrent data transfer capabilities.
use std::{fmt::Debug, collections::HashMap};
use std::io::BufReader;
use std::io::prelude::*;
use streaming_platform::ServerConfig;
use streaming_platform::server;

pub fn main() {
    env_logger::init();

    let config = get_config_from_str();

    server::start(config);
}

pub fn get_config_from_str() -> ServerConfig {    
    toml::from_str(r#"host = "localhost:11001""#)
       .expect("failed to deserialize config")
}

pub fn get_config_from_file() -> ServerConfig {
    let config_path = std::env::args().nth(1)
    .expect("path to config file not passed as argument");

    let file = std::fs::File::open(config_path)
        .expect("failed to open config");

    let mut buf_reader = BufReader::new(file);
    let mut config = String::new();

    buf_reader.read_to_string(&mut config)
        .expect("failed to read config");

     toml::from_str(&config)
        .expect("failed to deserialize config")
}

pub fn get_config_from_arg() -> ServerConfig {
    let config = std::env::args().nth(1)
    .expect("config not passed as argument");    

     toml::from_str(&config)
        .expect("failed to deserialize config")
}