mirror of
https://codeberg.org/icewind/tf-log-parser.git
synced 2026-06-03 10:14:10 +02:00
35 lines
887 B
Rust
35 lines
887 B
Rust
//! Example for creating a handler that combines the output of multiple handlers
|
|
|
|
use main_error::MainError;
|
|
use std::env::args;
|
|
use std::fs;
|
|
use tf_log_parser::module::{ChatMessages, LobbySettingsHandler};
|
|
use tf_log_parser::{handler, parse_with_handler};
|
|
|
|
handler!(Handler {
|
|
chat: ChatMessages,
|
|
lobby_settings: LobbySettingsHandler
|
|
});
|
|
|
|
fn main() -> Result<(), MainError> {
|
|
let path = args().skip(1).next().expect("No path provided");
|
|
let content = fs::read_to_string(path)?;
|
|
|
|
let (
|
|
HandlerGlobalOutput {
|
|
chat,
|
|
lobby_settings,
|
|
},
|
|
_,
|
|
) = parse_with_handler::<Handler>(&content)?;
|
|
|
|
if let Some(Ok(settings)) = lobby_settings {
|
|
println!("Lobby settings: {:#?}", settings);
|
|
println!();
|
|
}
|
|
|
|
for message in chat {
|
|
println!("{}: {}", message.name, message.message);
|
|
}
|
|
Ok(())
|
|
}
|