You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: count.rs
    path of file: ./repos/qsv/src/cmd
    
    the code of the file until where you have to start completion: static USAGE: &str = r#"
Prints a count of the number of records in the CSV data.

Note that the count will not include the header row (unless --no-headers is
given).

For examples, see https://github.com/jqnatividad/qsv/blob/master/tests/test_count.rs.

Usage:
    qsv count [options] [<input>]
    qsv count --help

count options:
    -H, --human-readable   Comma separate row count.
    --width                Also return the length of the longest record.
                           The count and width are separated by a semicolon.

                           WHEN THE POLARS FEATURE IS ENABLED:
    --no-polars            Use the regular single-threaded, streaming CSV reader instead of
                           the much faster Polars multithreaded, mem-mapped CSV reader.
                           Use this when you encounter issues when counting with the
                           Polars CSV reader. The regular reader is slower but can read any
                           valid CSV file of any size.
    --low-memory           Use the Polars CSV Reader's low-memory mode. This
                           mode is slower but uses less memory.


Common options:
    -h, --help             Display this message
    -f, --flexible         Do not validate if the CSV has different number of
                           fields per record, increasing performance when counting
                           without an index. Automatically enab
    
pub fn run(argv: &[&str]) -> CliResult<()> {
    let args: Args = util::get_args(USAGE, argv)?;
    let conf = Config::new(&args.arg_input)
        .no_headers(args.flag_no_headers)
        // we also want to count the quotes when computing width
        .quoting(!args.flag_width)
        // and ignore differing column counts as well
        .flexible(args.flag_width || args.flag_flexible);

    // this comment left here for Logging.md example
    // log::debug!(
    //     "input: {:?}, no_header: {}",
    //     (args.arg_input).clone().unwrap(),
    //     &args.flag_no_headers,
    // );

    let (count, width) = if args.flag_width {
        count_input(&conf, args.flag_width)?
    } else {
        let index_status = conf.indexed().unwrap_or_else(|_| {
            info!("index is stale");
            None
        });
        match index_status {
            Some(idx) => {
                info!("index used");
                (idx.count(), 0)
            },
            None => {
                #[cfg(feature = "polars")]
                {
                    // if --no-polars or --width is set or its a snappy compressed file, use the
                    // regular CSV reader
                    if args.flag_no_polars || args.flag_width || conf.is_snappy() {
                        count_input(&conf, args.flag_width)?
                    } else {
                        polars_count_input(&conf, args.flag_low_memory)?
                    }
                }
                #[cfg(not(feature = "polars"))]
                {
                    count_input(&conf, args.flag_width)?
                }
            },
        }
    };

    if args.flag_human_readable {
        use indicatif::HumanCount;

        if args.flag_width {
            woutinfo!("{};{}", HumanCount(count), HumanCount(width as u64));
        } else {
            woutinfo!("{}", HumanCount(count));
        }
    } else if args.flag_width {
        woutinfo!("{count};{width}");
    } else {
        woutinfo!("{count}");
    }
    Ok(())
}