add basic config file parsing

This commit is contained in:
sigil-03 2025-11-26 10:33:42 -07:00
commit a127562b16
5 changed files with 1831 additions and 0 deletions

43
src/main.rs Normal file
View 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");
}