mirror of
https://codeberg.org/icewind/tf-log-parser.git
synced 2026-06-03 18:24:09 +02:00
handle truncated chat messages
This commit is contained in:
parent
8e61628c22
commit
ab23ff4bb4
1 changed files with 22 additions and 5 deletions
|
|
@ -17,17 +17,34 @@ impl Derivable for Event {
|
||||||
let optional_params = params.params.iter().filter(|param| param.optional);
|
let optional_params = params.params.iter().filter(|param| param.optional);
|
||||||
let has_optional = params.params.iter().any(|param| param.optional);
|
let has_optional = params.params.iter().any(|param| param.optional);
|
||||||
|
|
||||||
|
let single_unnamed_field =
|
||||||
|
params.params.len() == 1 && params.params[0].param_name.is_none();
|
||||||
|
|
||||||
let required_fields = required_params
|
let required_fields = required_params
|
||||||
.map(|param| {
|
.map(|param| {
|
||||||
let field_name = ¶m.field_name;
|
let field_name = ¶m.field_name;
|
||||||
let parser = param.parser();
|
let parser = param.parser();
|
||||||
let after = param.skip_after();
|
let after = param.skip_after();
|
||||||
|
|
||||||
Ok(quote_spanned!(param.span() =>
|
if single_unnamed_field {
|
||||||
#[allow(unused_variables)]
|
Ok(quote_spanned!(param.span() =>
|
||||||
let (input, #field_name) = #parser(input)?;
|
#[allow(unused_variables)]
|
||||||
#after
|
let (input, #field_name) = match #parser(input) {
|
||||||
))
|
Ok(res) => res,
|
||||||
|
Err(Error::Incomplete) => ("", input.trim_matches('"')),
|
||||||
|
Err(e) => {
|
||||||
|
return Err(e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#after
|
||||||
|
))
|
||||||
|
} else {
|
||||||
|
Ok(quote_spanned!(param.span() =>
|
||||||
|
#[allow(unused_variables)]
|
||||||
|
let (input, #field_name) = #parser(input)?;
|
||||||
|
#after
|
||||||
|
))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>>>()?;
|
.collect::<Result<Vec<_>>>()?;
|
||||||
let initiators = params.params.iter().map(|param| {
|
let initiators = params.params.iter().map(|param| {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue