net-utils 0.0.5

Network utility library which provides client connection pool for TCP/SSL connctions
Documentation
//! Configuration for connection object
//! #![unstable]
use std::default::Default;
use std::fs::File;
use std::io::Read;
use std::time::Duration;
extern crate serde;
extern crate serde_json;

///Configuration data.
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Config {
    /// The server to connect to.
    pub server: String,
    /// The port to connect to.
    pub port: u16,
    /// Connect timeout.
    pub connect_timeout: Option<u64>,
    /// Read timeout.
    pub read_timeout: Option<u64>,
    /// Write timeout.
    pub write_timeout: Option<u64>,
    ///If true, it will assume ssl is enabled
    pub use_ssl: Option<bool>,
    /// SSL Protocol
    //pub ssl_protocol : Option<>,
    /// Certificate File
    pub certificate_file: Option<String>,
    /// Private Key File
    pub private_key_file: Option<String>,
    /// CA File
    pub ca_file: Option<String>,
    /// Verify certificate
    pub verify: Option<bool>,
    /// Verify depth
    pub verify_depth: Option<u32>,
}

impl Default for Config {
    fn default() -> Config {
        Config {
            server: "localhost".to_string(),
            port: 21950,
            connect_timeout: Some(60_000),
            read_timeout: Some(60_000),
            write_timeout: Some(60_000),
            use_ssl: Some(false),
            // ssl_protocol:
            certificate_file: None,
            private_key_file: None,
            ca_file: None,
            verify: None,
            verify_depth: None,
        }
    }
}
impl Config {
    fn from_file(file: &str) -> Config {
        let mut f = File::open(file).unwrap();
        let mut buffer = String::new();
        f.read_to_string(&mut buffer).unwrap();
        //debug!("Config file: {}", buffer.as_str());
        serde_json::from_str(&buffer).unwrap()

    }
}

#[cfg(test)]
pub mod test {
    use std::default::Default;
    use std::time::Duration;
    #[test]
    fn test_config() {
        let c = super::Config {
            server: "localhost".to_string(),
            port: 2195,
            ..Default::default()
        };
        assert_eq!(c.port, 2195);
        assert_eq!(c.read_timeout, Some(60_000));
    }

}