mirror of
https://codeberg.org/icewind/tf-log-parser.git
synced 2026-06-03 18:24:09 +02:00
handler macro
This commit is contained in:
parent
5be2b0a473
commit
e846fcceae
5 changed files with 91 additions and 56 deletions
|
|
@ -1,16 +1,22 @@
|
|||
use main_error::MainError;
|
||||
use std::env::args;
|
||||
use std::fs;
|
||||
use tf_log_parser::module::{ChatHandler, HandlerStack, LobbySettingsHandler, OptionalHandler};
|
||||
use tf_log_parser::parse_with_handler;
|
||||
use tf_log_parser::module::{ChatHandler, LobbySettingsHandler};
|
||||
use tf_log_parser::{handler, parse_with_handler};
|
||||
|
||||
type Handler = HandlerStack<ChatHandler, OptionalHandler<LobbySettingsHandler>>;
|
||||
handler!(Handler {
|
||||
chat: ChatHandler,
|
||||
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 (chat, lobby_settings) = parse_with_handler::<Handler>(&content)?;
|
||||
let HandlerOutput {
|
||||
chat,
|
||||
lobby_settings,
|
||||
} = parse_with_handler::<Handler>(&content)?;
|
||||
|
||||
if let Ok(Some(settings)) = lobby_settings {
|
||||
println!("Lobby settings: {:#?}", settings);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue