Mercurial > lbo > hg > syslog
view src/config.rs @ 13:2d2296e5bcf4 draft
Start implementing configuration types
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sat, 03 Dec 2016 11:18:58 +0100 |
parents | 03aa381b5c1c |
children | 4caa98d804bd |
line wrap: on
line source
//! See prototype.toml for a full example config file. //! use std::net::SocketAddr; #[derive(Clone,Default)] pub struct General { pub bind_path: String, pub max_msg_len: usize, } #[derive(Clone)] pub struct Remote { addr: SocketAddr } #[derive(Clone)] pub enum CompressType { NoCompression, // NOTE: use flate2 for compression. Gzip } impl Default for CompressType { fn default() -> CompressType { CompressType::NoCompression } } #[derive(Clone,Default)] pub struct File { name: String, location: String, /// bytes max_size: usize, /// seconds max_age: u64, history: i32, compress: CompressType, } #[derive(Clone)] pub enum Pattern { /// '*' Wildcard, } impl Default for Pattern { fn default() -> Pattern { Pattern::Wildcard } } #[derive(Clone,Default)] pub struct Rule { level_pattern: Pattern, // referes to File.name dest: String, } #[derive(Clone,Default)] pub struct Config { pub general: General, }