@@ -117,7 +117,7 @@ fn parse_sd_id(input: &str) -> ParseResult<(String, &str)> {
117117}
118118
119119/** Parse a `param_value`... a.k.a. a quoted string */
120- fn parse_param_value ( input : & str ) -> ParseResult < ( Cow < str > , & str ) > {
120+ fn parse_param_value ( input : & ' _ str ) -> ParseResult < ( Cow < ' _ , str > , & ' _ str ) > {
121121 let mut rest = input;
122122 take_char ! ( rest, '"' ) ;
123123 // Can't do a 0-copy &str slice here because we need to un-escape escaped quotes
@@ -162,17 +162,16 @@ fn parse_sd_params(input: &str) -> ParseResult<(ParsedSDParams, &str)> {
162162 let mut params = Vec :: new ( ) ;
163163 let mut top = input;
164164 loop {
165- if let Some ( rest2) = maybe_expect_char ! ( top, ' ' ) {
166- let mut rest = rest2;
167- let param_name = take_item ! ( parse_sd_id( rest) , rest) ;
168- take_char ! ( rest, '=' ) ;
169- let param_value = take_item ! ( parse_param_value( rest) , rest) ;
170- // is there an uglier modifier than &*
171- params. push ( ( param_name, String :: from ( & * param_value) ) ) ;
172- top = rest;
173- } else {
165+ let Some ( rest2) = maybe_expect_char ! ( top, ' ' ) else {
174166 return Ok ( ( params, top) ) ;
175- }
167+ } ;
168+ let mut rest = rest2;
169+ let param_name = take_item ! ( parse_sd_id( rest) , rest) ;
170+ take_char ! ( rest, '=' ) ;
171+ let param_value = take_item ! ( parse_param_value( rest) , rest) ;
172+ // is there an uglier modifier than &*
173+ params. push ( ( param_name, String :: from ( & * param_value) ) ) ;
174+ top = rest;
176175 }
177176}
178177
@@ -212,7 +211,7 @@ fn parse_pri_val(pri: i32) -> ParseResult<(severity::SyslogSeverity, facility::S
212211
213212/// Parse an i32
214213fn parse_num ( s : & str , min_digits : usize , max_digits : usize ) -> ParseResult < ( i32 , & str ) > {
215- let ( res, rest1) = take_while ( s, |c| ( '0' ..= '9' ) . contains ( & c ) , max_digits) ;
214+ let ( res, rest1) = take_while ( s, |c| c . is_ascii_digit ( ) , max_digits) ;
216215 let rest = rest1. ok_or ( ParseErr :: UnexpectedEndOfInput ) ?;
217216 if res. len ( ) < min_digits {
218217 Err ( ParseErr :: TooFewDigits )
@@ -231,7 +230,7 @@ fn parse_num_generic<NT>(s: &str, min_digits: usize, max_digits: usize) -> Parse
231230where
232231 NT : FromStr < Err = num:: ParseIntError > ,
233232{
234- let ( res, rest1) = take_while ( s, |c| ( '0' ..= '9' ) . contains ( & c ) , max_digits) ;
233+ let ( res, rest1) = take_while ( s, |c| c . is_ascii_digit ( ) , max_digits) ;
235234 let rest = rest1. ok_or ( ParseErr :: UnexpectedEndOfInput ) ?;
236235 if res. len ( ) < min_digits {
237236 Err ( ParseErr :: TooFewDigits )
@@ -411,7 +410,7 @@ mod tests {
411410 use std:: collections:: BTreeMap ;
412411 use std:: mem;
413412
414- use super :: { parse_message , ParseErr } ;
413+ use super :: { ParseErr , parse_message } ;
415414 use crate :: message;
416415
417416 use crate :: facility:: SyslogFacility ;
@@ -427,7 +426,7 @@ mod tests {
427426 assert ! ( msg. appname. is_none( ) ) ;
428427 assert ! ( msg. procid. is_none( ) ) ;
429428 assert ! ( msg. msgid. is_none( ) ) ;
430- assert ! ( msg. sd. len ( ) == 0 ) ;
429+ assert ! ( msg. sd. is_empty ( ) ) ;
431430 }
432431
433432 #[ test]
0 commit comments