use clap::Parser;
use dota::{GSIServer, components::GameState};
async fn echo_gamestate_handler(gs: GameState) {
println!("{}", gs);
}
async fn echo_json_handler(value: serde_json::Value) {
println!("{}", value);
}
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
#[arg(short, long)]
uri: String,
#[arg(short, long)]
raw: bool,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let args = Args::parse();
let server = GSIServer::new(&args.uri);
if args.raw {
server.run(echo_json_handler).await?;
} else {
server.run(echo_gamestate_handler).await?;
}
Ok(())
}