File tree 1 file changed +14
-8
lines changed
1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -314,15 +314,21 @@ impl Delimiters {
314
314
315
315
#[ inline]
316
316
fn from_byte ( byte : Option < u8 > ) -> Delimiters {
317
+ const TABLE : [ Delimiters ; 255 ] = {
318
+ let mut table = [ Delimiter :: None ; 255 ] ;
319
+ table[ b';' as usize ] = Delimiter :: Semicolon ;
320
+ table[ b'!' as usize ] = Delimiter :: Bang ;
321
+ table[ b',' as usize ] = Delimiter :: Comma ;
322
+ table[ b'{' as usize ] = Delimiter :: CurlyBracketBlock ;
323
+ table[ b'}' as usize ] = ClosingDelimiter :: CloseCurlyBracket ;
324
+ table[ b']' as usize ] = ClosingDelimiter :: CloseSquareBracket ;
325
+ table[ b')' as usize ] = ClosingDelimiter :: CloseParenthesis ;
326
+ table
327
+ } ;
328
+
317
329
match byte {
318
- Some ( b';' ) => Delimiter :: Semicolon ,
319
- Some ( b'!' ) => Delimiter :: Bang ,
320
- Some ( b',' ) => Delimiter :: Comma ,
321
- Some ( b'{' ) => Delimiter :: CurlyBracketBlock ,
322
- Some ( b'}' ) => ClosingDelimiter :: CloseCurlyBracket ,
323
- Some ( b']' ) => ClosingDelimiter :: CloseSquareBracket ,
324
- Some ( b')' ) => ClosingDelimiter :: CloseParenthesis ,
325
- _ => Delimiter :: None ,
330
+ None => Delimiter :: None ,
331
+ Some ( b) => TABLE [ b as usize ] ,
326
332
}
327
333
}
328
334
}
You can’t perform that action at this time.
0 commit comments