add basic config file parsing
This commit is contained in:
commit
a127562b16
5 changed files with 1831 additions and 0 deletions
43
src/main.rs
Normal file
43
src/main.rs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
use tokio::fs;
|
||||
|
||||
|
||||
use serde::{Serialize, Deserialize};
|
||||
use clap::Parser;
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
struct TcpServerConfig {
|
||||
bind_addr: String,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
enum InterfaceConfig {
|
||||
TcpServer(TcpServerConfig)
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
struct Config {
|
||||
interfaces: Vec<InterfaceConfig>,
|
||||
}
|
||||
|
||||
|
||||
#[derive(Parser)]
|
||||
struct Cli {
|
||||
#[arg(short, long)]
|
||||
config_file: String,
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("trace")).init();
|
||||
|
||||
log::info!(">>> TRANSPORT NODE <<<");
|
||||
|
||||
let cli = Cli::parse();
|
||||
|
||||
let config: Config = toml::from_str(&fs::read_to_string(cli.config_file).await.unwrap()).unwrap();
|
||||
|
||||
println!("{config:?}");
|
||||
|
||||
|
||||
log::info!("exit");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue