@@ -317,6 +317,7 @@ fn word_count_from_reader<T: WordCountable>(
317317 // Specialize scanning loop to improve the performance.
318318 ( false , false , false , false , false ) => unreachable ! ( ) ,
319319
320+ // show_bytes
320321 ( true , false , false , false , false ) => {
321322 // Fast path when only show_bytes is true.
322323 let ( bytes, error) = count_bytes_fast ( & mut reader) ;
@@ -330,58 +331,75 @@ fn word_count_from_reader<T: WordCountable>(
330331 }
331332
332333 // Fast paths that can be computed without Unicode decoding.
334+ // show_lines
333335 ( false , false , true , false , false ) => {
334336 count_bytes_chars_and_lines_fast :: < _ , false , false , true > ( & mut reader)
335337 }
338+ // show_chars
336339 ( false , true , false , false , false ) => {
337340 count_bytes_chars_and_lines_fast :: < _ , false , true , false > ( & mut reader)
338341 }
342+ // show_chars, show_lines
339343 ( false , true , true , false , false ) => {
340344 count_bytes_chars_and_lines_fast :: < _ , false , true , true > ( & mut reader)
341345 }
346+ // show_bytes, show_lines
342347 ( true , false , true , false , false ) => {
343348 count_bytes_chars_and_lines_fast :: < _ , true , false , true > ( & mut reader)
344349 }
350+ // show_bytes, show_chars
345351 ( true , true , false , false , false ) => {
346352 count_bytes_chars_and_lines_fast :: < _ , true , true , false > ( & mut reader)
347353 }
354+ // show_bytes, show_chars, show_lines
348355 ( true , true , true , false , false ) => {
349356 count_bytes_chars_and_lines_fast :: < _ , true , true , true > ( & mut reader)
350357 }
351-
358+ // show_words
352359 ( _, false , false , false , true ) => {
353360 word_count_from_reader_specialized :: < _ , false , false , false , true > ( reader)
354361 }
362+ // show_max_line_length
355363 ( _, false , false , true , false ) => {
356364 word_count_from_reader_specialized :: < _ , false , false , true , false > ( reader)
357365 }
366+ // show_max_line_length, show_words
358367 ( _, false , false , true , true ) => {
359368 word_count_from_reader_specialized :: < _ , false , false , true , true > ( reader)
360369 }
370+ // show_chars, show_words
361371 ( _, false , true , false , true ) => {
362372 word_count_from_reader_specialized :: < _ , false , true , false , true > ( reader)
363373 }
374+ // show_chars, show_lines
364375 ( _, false , true , true , false ) => {
365376 word_count_from_reader_specialized :: < _ , false , true , true , false > ( reader)
366377 }
378+ // show_lines, show_max_line_length, show_words
367379 ( _, false , true , true , true ) => {
368380 word_count_from_reader_specialized :: < _ , false , true , true , true > ( reader)
369381 }
382+ // show_chars, show_words
370383 ( _, true , false , false , true ) => {
371384 word_count_from_reader_specialized :: < _ , true , false , false , true > ( reader)
372385 }
386+ // show_chars, show_max_line_length
373387 ( _, true , false , true , false ) => {
374388 word_count_from_reader_specialized :: < _ , true , false , true , false > ( reader)
375389 }
390+ // show_chars, show_max_line_length, show_words
376391 ( _, true , false , true , true ) => {
377392 word_count_from_reader_specialized :: < _ , true , false , true , true > ( reader)
378393 }
394+ // show_chars, show_lines, show_words
379395 ( _, true , true , false , true ) => {
380396 word_count_from_reader_specialized :: < _ , true , true , false , true > ( reader)
381397 }
398+ // show_chars, show_lines, show_max_line_length
382399 ( _, true , true , true , false ) => {
383400 word_count_from_reader_specialized :: < _ , true , true , true , false > ( reader)
384401 }
402+ // show_chars, show_lines, show_max_line_length, show_words
385403 ( _, true , true , true , true ) => {
386404 word_count_from_reader_specialized :: < _ , true , true , true , true > ( reader)
387405 }
0 commit comments