[INFO] fetching crate csv-txt-excel-parallel-toolkit 0.4.16...
[INFO] testing csv-txt-excel-parallel-toolkit-0.4.16 against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate csv-txt-excel-parallel-toolkit 0.4.16 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate csv-txt-excel-parallel-toolkit 0.4.16
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate csv-txt-excel-parallel-toolkit 0.4.16
[INFO] tweaked toml for crates.io crate csv-txt-excel-parallel-toolkit 0.4.16 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate csv-txt-excel-parallel-toolkit 0.4.16 on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate csv-txt-excel-parallel-toolkit 0.4.16 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded execute-command-tokens v0.1.7
[INFO] [stderr]   Downloaded codepage v0.1.2
[INFO] [stderr]   Downloaded zopfli v0.8.2
[INFO] [stderr]   Downloaded papergrid v0.17.0
[INFO] [stderr]   Downloaded xlsxwriter v0.6.1
[INFO] [stderr]   Downloaded execute-command-macro-impl v0.1.10
[INFO] [stderr]   Downloaded execute-command-macro v0.1.9
[INFO] [stderr]   Downloaded generic-array v1.2.0
[INFO] [stderr]   Downloaded tabled_derive v0.11.0
[INFO] [stderr]   Downloaded execute v0.2.13
[INFO] [stderr]   Downloaded testing_table v0.3.0
[INFO] [stderr]   Downloaded calamine v0.26.1
[INFO] [stderr]   Downloaded zip v2.4.2
[INFO] [stderr]   Downloaded quick-xml v0.31.0
[INFO] [stderr]   Downloaded tabled v0.20.0
[INFO] [stderr]   Downloaded libxlsxwriter-sys v1.1.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5eb25c39c5fd4cef0d8e28d43e84aafb26d576898a7a36981ef77a5ac74946df
[INFO] running `Command { std: "docker" "start" "-a" "5eb25c39c5fd4cef0d8e28d43e84aafb26d576898a7a36981ef77a5ac74946df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5eb25c39c5fd4cef0d8e28d43e84aafb26d576898a7a36981ef77a5ac74946df", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5eb25c39c5fd4cef0d8e28d43e84aafb26d576898a7a36981ef77a5ac74946df", kill_on_drop: false }`
[INFO] [stdout] 5eb25c39c5fd4cef0d8e28d43e84aafb26d576898a7a36981ef77a5ac74946df
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6e03adf98968cb9df43df087f4dd3af839cc47fdbb3f7aeb38922efb19ba9665
[INFO] running `Command { std: "docker" "start" "-a" "6e03adf98968cb9df43df087f4dd3af839cc47fdbb3f7aeb38922efb19ba9665", kill_on_drop: false }`
[INFO] [stderr]    Compiling glob v0.3.2
[INFO] [stderr]    Compiling prettyplease v0.2.33
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling cc v1.2.26
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.8
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling bumpalo v3.18.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling anstyle-query v1.1.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling zopfli v0.8.2
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling clap_builder v4.5.40
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling papergrid v0.17.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling testing_table v0.3.0
[INFO] [stderr]    Compiling codepage v0.1.2
[INFO] [stderr]    Compiling quick-xml v0.31.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tabled_derive v0.11.0
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling tabled v0.20.0
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling clap v4.5.40
[INFO] [stderr]    Compiling calamine v0.26.1
[INFO] [stderr]    Compiling libxlsxwriter-sys v1.1.7
[INFO] [stderr]    Compiling xlsxwriter v0.6.1
[INFO] [stderr]    Compiling csv-txt-excel-parallel-toolkit v0.4.16 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type alias `CliResult` is never used
[INFO] [stdout]  --> src/utils/cli_result.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub type CliResult = Result<(), Box<dyn std::error::Error>>;
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `E` is never used
[INFO] [stdout]  --> src/utils/cli_result.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait E {
[INFO] [stdout]   |           ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE_DESC` is never used
[INFO] [stdout]  --> src/utils/cmd_desc.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const SIZE_DESC: &str = r#"
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNT_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const COUNT_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const HEADER_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEAD_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub const HEAD_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAIL_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const TAIL_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ESTIMATE_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const ESTIMATE_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLEAN_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:114:11
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub const CLEAN_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLATTEN_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:133:11
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub const FLATTEN_DESC: &str = r##"
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SLICE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:159:11
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub const SLICE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREQUENCY_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:193:11
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub const FREQUENCY_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPLIT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:227:11
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub const SPLIT_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SELECT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:267:11
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub const SELECT_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATS_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub const STATS_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXCEL2CSV_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:343:11
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub const EXCEL2CSV_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TABLE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:361:11
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub const TABLE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEARCH_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub const SEARCH_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SORT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:410:11
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub const SORT_DESC: &str = r##"
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TO_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:445:11
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub const TO_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:470:11
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub const SAMPLE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIQUE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:498:11
[INFO] [stdout]     |
[INFO] [stdout] 498 | pub const UNIQUE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Columns` is never constructed
[INFO] [stdout]   --> src/utils/column.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Columns<'a> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_usize` is never used
[INFO] [stdout]   --> src/utils/column.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i32` is never used
[INFO] [stdout]   --> src/utils/column.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn parse_i32(col: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_pat_at` is never used
[INFO] [stdout]   --> src/utils/column.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn split_pat_at<'a>(source: &'a str, pat: &'a str, n: usize) -> (&'a str, &'a str) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/column.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl<'a> Columns<'a> {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 47  |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn parse(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     fn parse_col(&mut self, col: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn push(&mut self, col: usize) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn push_range(&mut self, min: usize, max: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn update_status(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn iter(&self) -> impl Iterator<Item = &usize> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn artificial_cols_with_appended_n(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn artificial_n_cols(&self, n: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn select_owned_string(&self, all: &[&str]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn select_owned_string_from_excel_datatype(&self, all: &[Data]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn select_owned_vec_from_excel_datatype(&self, all: &[Data]) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn select_owned_vector_and_append_n(&self, all: &[&str]) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn col_vec_or_length_of(&self, n: usize) -> Vec<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColumnStats` is never constructed
[INFO] [stdout]   --> src/utils/column_stats.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ColumnStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CStat` is never constructed
[INFO] [stdout]   --> src/utils/column_stats.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CStat {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/column_stats.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout] 36  | impl ColumnStats {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 37  |     pub fn new(col_type: &ColumnTypes, col_name: &[String]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51  |     fn push(&mut self, col_index: usize, col_type: ColumnType, name: &str) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74  |     pub fn parse_line_by_fields(&mut self, v: &[&str]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn parse_line(&mut self, line: &str, sep: char, quote: char) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn parse_excel_row(&mut self, v: &[Data]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn cal_unique_and_mean(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn iter(&self) -> impl Iterator<Item = &CStat> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn merge(&mut self, other: ColumnStats) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn print_table_vertical(&self) -> Table {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/column_stats.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl CStat {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 202 |     pub fn parse(&mut self, f: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn insert_unique(&mut self, v: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn set_as_float(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn set_as_string(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn is_int(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn is_float(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn is_string(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn update_number_stat(&mut self, v: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn update_string_stat(&mut self, v: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn merge(&mut self, o: CStat) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn mean_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn min_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn max_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn unique_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColumnTypes` is never constructed
[INFO] [stdout]   --> src/utils/column_type.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ColumnTypes(Vec<CType>);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CType` is never constructed
[INFO] [stdout]   --> src/utils/column_type.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CType {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColumnType` is never used
[INFO] [stdout]   --> src/utils/column_type.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum ColumnType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `push`, `iter`, `guess_from_csv`, `guess_from_excel`, `guess_from_io`, and `update_excel_column_width` are never used
[INFO] [stdout]    --> src/utils/column_type.rs:36:8
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl ColumnTypes {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 36  |     fn push(&mut self, col_index: usize, col_type: ColumnType, max_length: usize) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn iter(&self) -> impl Iterator<Item = &CType> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn guess_from_csv(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn guess_from_excel(range: &ExcelReader, no_header: bool, cols: &Columns) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn guess_from_io(v: &[Vec<&str>], cols: &Columns) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn update_excel_column_width(&self, sheet: &mut Worksheet) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_type_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn parse_col_type_at(n: usize, v: &[Vec<&str>]) -> ColumnType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_excel_col_type_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:151:4
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn parse_excel_col_type_at(n: usize, v: &[&[Data]]) -> ColumnType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn max_length_at(n: usize, v: &[Vec<&str>]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_string`, `is_number`, `update`, and `update_by_excel_cell` are never used
[INFO] [stdout]    --> src/utils/column_type.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl ColumnType {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 181 |     pub fn is_string(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn is_number(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn update(&mut self, f: &str) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn update_by_excel_cell(&mut self, f: &Data) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `excel_col_width` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl CType {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 249 |     pub fn excel_col_width(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINATOR` is never used
[INFO] [stdout]  --> src/utils/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const TERMINATOR: &[u8; 1] = b"\n";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA` is never used
[INFO] [stdout]  --> src/utils/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const COMMA: &[u8; 1] = b",";
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const KB_F64: f64 = 1024.0;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const MB_F64: f64 = 1024.0 * 1024.0;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const GB_F64: f64 = 1024.0 * MB_F64;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datatype_vec_to_str_vec` is never used
[INFO] [stdout]  --> src/utils/excel.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datatype_vec_to_string` is never used
[INFO] [stdout]   --> src/utils/excel.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn datatype_vec_to_string(data: &[Data]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_datatype_to_string` is never used
[INFO] [stdout]   --> src/utils/excel.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn write_datatype_to_string(s: &mut String, d: &Data) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `column_n` is never used
[INFO] [stdout]   --> src/utils/file.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn column_n(path: &Path, sep: char, quote: char) -> Result<Option<usize>, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_frequency_to_csv` is never used
[INFO] [stdout]   --> src/utils/file.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn write_frequency_to_csv(path: &Path, names: &Vec<String>, freq: Vec<(String, usize)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BAD_FILENAME_CHARACTERS` is never used
[INFO] [stdout]  --> src/utils/filename.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const BAD_FILENAME_CHARACTERS: [char; 9] = ['<', '>', ':', '\\', '/', '\\', '"', '?', '*'];
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_path` is never used
[INFO] [stdout]  --> src/utils/filename.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn new_path(path: &Path, suffix: &str) -> PathBuf {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_file` is never used
[INFO] [stdout]   --> src/utils/filename.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn new_file(name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_filename` is never used
[INFO] [stdout]   --> src/utils/filename.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn str_to_filename(s: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_file` is never used
[INFO] [stdout]   --> src/utils/filename.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn dir_file(dir: &Path, name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/utils/filter.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Op {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/utils/filter.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Op {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] 24 |     fn evaluate(&self, a: f64, b: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterItem` is never constructed
[INFO] [stdout]   --> src/utils/filter.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct FilterItem {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Filter` is never constructed
[INFO] [stdout]   --> src/utils/filter.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Filter<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_usize` is never used
[INFO] [stdout]   --> src/utils/filter.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i32` is never used
[INFO] [stdout]   --> src/utils/filter.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn parse_i32(col: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/filter.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout] 76  | impl<'a> Filter<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 77  |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn parse(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn parse_one(&mut self, one: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn record_valid_map<'b>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn excel_record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_f64` is never used
[INFO] [stdout]    --> src/utils/filter.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn parse_f64(s: &str) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_f64_vec` is never used
[INFO] [stdout]    --> src/utils/filter.rs:278:4
[INFO] [stdout]     |
[INFO] [stdout] 278 | fn parse_f64_vec(s: &str) -> Vec<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `record_is_valid` is never used
[INFO] [stdout]    --> src/utils/filter.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl FilterItem {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 289 |     fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/utils/math_expr_parser.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Token {
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/utils/math_expr_parser.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Parser {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `parse`, `next_tok`, `next_ch`, `is_white_space`, and `is_digit_num` are never used
[INFO] [stdout]   --> src/utils/math_expr_parser.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Parser {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 21 |     fn parse(source: &str) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn next_tok(&mut self) -> Option<Token> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn next_ch(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn is_white_space(&self, c: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn is_digit_num(&self, c: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompiledExpr` is never constructed
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct CompiledExpr {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `evaluate`, `contains_column`, and `max_column` are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl CompiledExpr {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 110 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn evaluate(&self, cols: Option<&[f64]>) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn contains_column(&self, col: &usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn max_column(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeType` is never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:142:6
[INFO] [stdout]     |
[INFO] [stdout] 142 | enum NodeType {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct Node {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_col`, `from_number`, and `evaluate` are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl Node {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 158 |     fn from_col(col: usize) -> Node {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn from_number(val: f64) -> Node {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn evaluate(&self, cols: Option<&[f64]>) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AST` is never constructed
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct AST {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl AST {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 212 |     pub fn parse(source: &str) -> CompiledExpr {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn parse_expression(&mut self) -> Option<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn parse_primary(&mut self) -> Option<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn parse_bin_op_rhs(&mut self, exec_prec: i32, mut lhs: Node) -> Option<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn tok_precedence(&self, op: char) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn next_tok(&mut self) -> Option<Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     fn get_tok_precedence(&mut self) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Item` is never constructed
[INFO] [stdout]  --> src/utils/priority_queue.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Item<T> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `line_n_as_string` is never used
[INFO] [stdout]   --> src/utils/priority_queue.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<T> Item<T> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 31 |     pub fn line_n_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityQueue` is never constructed
[INFO] [stdout]   --> src/utils/priority_queue.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PriorityQueue<T: Hash + Eq> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `can_insert`, `push`, and `into_sorted_items` are never used
[INFO] [stdout]   --> src/utils/priority_queue.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | / impl<T> PriorityQueue<T>
[INFO] [stdout] 43 | | where
[INFO] [stdout] 44 | |     T: Hash + Eq + Clone,
[INFO] [stdout]    | |_________________________- associated items in this implementation
[INFO] [stdout] 45 |   {
[INFO] [stdout] 46 |       pub fn with_capacity(n: usize) -> Self {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |       pub fn can_insert(&self, priority: f64) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |       pub fn push(&mut self, line_n: usize, priority: f64, item: T) {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |       pub fn into_sorted_items(self) -> Vec<Item<T>> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Progress` is never constructed
[INFO] [stdout]  --> src/utils/progress.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Progress {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utils/progress.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Progress {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn add_chunks(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn add_bytes(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn add_lines(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn info(&self) -> String {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn elapsed_time_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn print(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn print_elapsed_time(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkReader` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ChunkReader(Lines<BufReader<File>>);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Task` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Task {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, and `send_to_channel_by_chunks` are never used
[INFO] [stdout]   --> src/utils/reader.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl ChunkReader {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(path: &Path) -> Result<Self, std::io::Error> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn next(&mut self) -> Option<Result<String, std::io::Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn send_to_channel_by_chunks(&mut self, tx: Sender<Task>, line_buffer_n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExcelChunkTask` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExcelChunkTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `column_n` and `send_to_channel_by_chunk` are never used
[INFO] [stdout]    --> src/utils/reader.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout] 79  | impl<'a> ExcelReader {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn column_n(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn send_to_channel_by_chunk(self, tx: Sender<ExcelChunkTask>, size: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IoReader` is never constructed
[INFO] [stdout]    --> src/utils/reader.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct IoReader {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `no_header`, `top_n`, and `lines` are never used
[INFO] [stdout]    --> src/utils/reader.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl IoReader {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn no_header(&mut self, no_header: bool) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn top_n(&mut self, top_n: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn lines(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Re` is never constructed
[INFO] [stdout]  --> src/utils/regex.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Re(Regex);
[INFO] [stdout]   |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_match` are never used
[INFO] [stdout]   --> src/utils/regex.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl Re {
[INFO] [stdout]    | ------- associated items in this implementation
[INFO] [stdout] 7  |     pub fn new(pattern: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn is_match(&self, v: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortColumns` is never constructed
[INFO] [stdout]  --> src/utils/sort.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SortColumns(Vec<SortColumn>);
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortColumn` is never constructed
[INFO] [stdout]  --> src/utils/sort.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SortColumn {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/sort.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl SortColumns {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 16  |     pub fn from(cols: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55  |     fn col_at(&self, n: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     fn ascending_at(&self, n: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     fn numeric_at(&self, n: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn sort_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn sort_str_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn sort_numeric_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn sort_str_str_columns(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn sort_str_numeric_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn sort_numeric_str_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn sort_numeric_numeric_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn sort_excel_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn sort_excel_str_column(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn sort_excel_numeric_column(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn sort_excel_str_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn sort_excel_str_numeric_columns(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn sort_excel_numeric_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     fn sort_excel_numeric_numeric_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Table` is never constructed
[INFO] [stdout]  --> src/utils/table.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Table {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_empty`, `add_record`, `from_records`, `print_blank`, and `print_blank_unchecked` are never used
[INFO] [stdout]   --> src/utils/table.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Table {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn add_record<R, T>(&mut self, row: R)
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_records<R, T>(rows: Vec<R>) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn print_blank(self) -> CliResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn print_blank_unchecked(self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_file_suffix` is never used
[INFO] [stdout]   --> src/utils/to.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn is_file_suffix(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_plain_text` is never used
[INFO] [stdout]   --> src/utils/to.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn is_valid_plain_text(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_excel` is never used
[INFO] [stdout]   --> src/utils/to.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn is_valid_excel(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `csv_or_io_to_csv` is never used
[INFO] [stdout]   --> src/utils/to.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn csv_or_io_to_csv(path: Option<&Path>, out: &str) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `excel_to_csv` is never used
[INFO] [stdout]   --> src/utils/to.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn excel_to_csv(path: &Path, sheet: usize, sep: &str, out: &str) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `csv_to_excel` is never used
[INFO] [stdout]   --> src/utils/to.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn csv_to_excel(path: &Path, sep: char, quote: char, out: &str, no_header: bool) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `io_to_excel` is never used
[INFO] [stdout]    --> src/utils/to.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn io_to_excel(args: &To, out: &str) -> CliResult {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `equal_width` is never used
[INFO] [stdout]    --> src/utils/to.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn equal_width(lines: &Vec<Vec<&str>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `out_filename` is never used
[INFO] [stdout]    --> src/utils/to.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn out_filename(out: &str) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_excel_line` is never used
[INFO] [stdout]    --> src/utils/to.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn write_excel_line(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datetime_str` is never used
[INFO] [stdout]  --> src/utils/util.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn datetime_str() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_null` is never used
[INFO] [stdout]  --> src/utils/util.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn is_null(s: &str) -> bool {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_frequency_table` is never used
[INFO] [stdout]   --> src/utils/util.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn print_frequency_table(names: &[String], freq: Vec<(String, usize)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Writer` is never constructed
[INFO] [stdout]   --> src/utils/writer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Writer(pub Box<dyn Write>);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/writer.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl Writer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 14  |     pub fn new(path: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20  |     pub fn file_or_stdout(export: bool, path: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29  |     pub fn stdout() -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn append_to(out: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47  |     pub fn write_bytes(&mut self, bytes: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn write_bytes_unchecked(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn write_header(&mut self, row: &str) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn write_str<T: AsRef<str>>(&mut self, row: T) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn write_str_unchecked<T: AsRef<str>>(&mut self, row: T) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83  |     pub fn write_strings<T: AsRef<str>>(&mut self, lines: &[T]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     pub fn write_strings_unchecked<T: AsRef<str>>(&mut self, lines: &[T]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn write_fields<T: AsRef<str>>(&mut self, line: &[T]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn write_fields_unchecked<T: AsRef<str>>(&mut self, line: &[T]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn write_selected_fields<T: AsRef<str>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn write_selected_fields_unchecked<T: AsRef<str>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn write_fields_of_lines_unchecked<T: AsRef<str>>(&mut self, lines: &Vec<Vec<T>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn write_excel_field(&mut self, data: &Data) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn write_excel_line(&mut self, line: &[Data], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn write_excel_line_unchecked(&mut self, line: &[Data], sep: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn write_excel_selected_fields(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn write_excel_selected_fields_unchecked(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn write_excel_lines(&mut self, lines: &[Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn write_excel_lines_by_ref(&mut self, lines: &[&Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/utils/excel.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stdout]   |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `collect_owned` is never used
[INFO] [stdout]   --> src/utils/row_split.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<'a> CsvRowSplitter<'a> {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn collect_owned(self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CliResultData` is never used
[INFO] [stdout]  --> src/utils/return_result.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type CliResultData = Result<Option<ResultData>, Box<dyn std::error::Error>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResultData` is never constructed
[INFO] [stdout]  --> src/utils/return_result.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ResultData {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, `from_header`, `insert_header`, and `insert_record` are never used
[INFO] [stdout]   --> src/utils/return_result.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl ResultData {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> ResultData {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn from(header: Vec<String>, data: Vec<Vec<String>>) -> ResultData {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_header(header: Vec<String>) -> ResultData {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn insert_header(&mut self, header: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn insert_record(&mut self, record: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/utils/excel.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stdout]   |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 45s
[INFO] running `Command { std: "docker" "inspect" "6e03adf98968cb9df43df087f4dd3af839cc47fdbb3f7aeb38922efb19ba9665", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e03adf98968cb9df43df087f4dd3af839cc47fdbb3f7aeb38922efb19ba9665", kill_on_drop: false }`
[INFO] [stdout] 6e03adf98968cb9df43df087f4dd3af839cc47fdbb3f7aeb38922efb19ba9665
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 25dccd0a3357cd9e6f862370b1f985bd820082097d3be3342629638348bdda7f
[INFO] running `Command { std: "docker" "start" "-a" "25dccd0a3357cd9e6f862370b1f985bd820082097d3be3342629638348bdda7f", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling execute-command-tokens v0.1.7
[INFO] [stdout] warning: type alias `CliResult` is never used
[INFO] [stdout]  --> src/utils/cli_result.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub type CliResult = Result<(), Box<dyn std::error::Error>>;
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `E` is never used
[INFO] [stdout]  --> src/utils/cli_result.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait E {
[INFO] [stdout]   |           ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE_DESC` is never used
[INFO] [stdout]  --> src/utils/cmd_desc.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const SIZE_DESC: &str = r#"
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNT_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const COUNT_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const HEADER_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEAD_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub const HEAD_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAIL_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const TAIL_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ESTIMATE_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const ESTIMATE_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLEAN_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:114:11
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub const CLEAN_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLATTEN_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:133:11
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub const FLATTEN_DESC: &str = r##"
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SLICE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:159:11
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub const SLICE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREQUENCY_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:193:11
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub const FREQUENCY_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPLIT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:227:11
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub const SPLIT_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SELECT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:267:11
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub const SELECT_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATS_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub const STATS_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXCEL2CSV_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:343:11
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub const EXCEL2CSV_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TABLE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:361:11
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub const TABLE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEARCH_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub const SEARCH_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SORT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:410:11
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub const SORT_DESC: &str = r##"
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TO_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:445:11
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub const TO_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:470:11
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub const SAMPLE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIQUE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:498:11
[INFO] [stdout]     |
[INFO] [stdout] 498 | pub const UNIQUE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Columns` is never constructed
[INFO] [stdout]   --> src/utils/column.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Columns<'a> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_usize` is never used
[INFO] [stdout]   --> src/utils/column.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i32` is never used
[INFO] [stdout]   --> src/utils/column.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn parse_i32(col: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_pat_at` is never used
[INFO] [stdout]   --> src/utils/column.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn split_pat_at<'a>(source: &'a str, pat: &'a str, n: usize) -> (&'a str, &'a str) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/column.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl<'a> Columns<'a> {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 47  |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn parse(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     fn parse_col(&mut self, col: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn push(&mut self, col: usize) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn push_range(&mut self, min: usize, max: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn update_status(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn iter(&self) -> impl Iterator<Item = &usize> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn artificial_cols_with_appended_n(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn artificial_n_cols(&self, n: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn select_owned_string(&self, all: &[&str]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn select_owned_string_from_excel_datatype(&self, all: &[Data]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn select_owned_vec_from_excel_datatype(&self, all: &[Data]) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn select_owned_vector_and_append_n(&self, all: &[&str]) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn col_vec_or_length_of(&self, n: usize) -> Vec<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColumnStats` is never constructed
[INFO] [stdout]   --> src/utils/column_stats.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ColumnStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CStat` is never constructed
[INFO] [stdout]   --> src/utils/column_stats.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CStat {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/column_stats.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout] 36  | impl ColumnStats {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 37  |     pub fn new(col_type: &ColumnTypes, col_name: &[String]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51  |     fn push(&mut self, col_index: usize, col_type: ColumnType, name: &str) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74  |     pub fn parse_line_by_fields(&mut self, v: &[&str]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn parse_line(&mut self, line: &str, sep: char, quote: char) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn parse_excel_row(&mut self, v: &[Data]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn cal_unique_and_mean(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn iter(&self) -> impl Iterator<Item = &CStat> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn merge(&mut self, other: ColumnStats) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn print_table_vertical(&self) -> Table {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/column_stats.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl CStat {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 202 |     pub fn parse(&mut self, f: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn insert_unique(&mut self, v: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn set_as_float(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn set_as_string(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn is_int(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn is_float(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn is_string(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn update_number_stat(&mut self, v: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn update_string_stat(&mut self, v: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn merge(&mut self, o: CStat) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn mean_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn min_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn max_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn unique_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColumnTypes` is never constructed
[INFO] [stdout]   --> src/utils/column_type.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ColumnTypes(Vec<CType>);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CType` is never constructed
[INFO] [stdout]   --> src/utils/column_type.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CType {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColumnType` is never used
[INFO] [stdout]   --> src/utils/column_type.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum ColumnType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `push`, `iter`, `guess_from_csv`, `guess_from_excel`, `guess_from_io`, and `update_excel_column_width` are never used
[INFO] [stdout]    --> src/utils/column_type.rs:36:8
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl ColumnTypes {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 36  |     fn push(&mut self, col_index: usize, col_type: ColumnType, max_length: usize) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn iter(&self) -> impl Iterator<Item = &CType> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn guess_from_csv(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn guess_from_excel(range: &ExcelReader, no_header: bool, cols: &Columns) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn guess_from_io(v: &[Vec<&str>], cols: &Columns) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn update_excel_column_width(&self, sheet: &mut Worksheet) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_type_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn parse_col_type_at(n: usize, v: &[Vec<&str>]) -> ColumnType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_excel_col_type_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:151:4
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn parse_excel_col_type_at(n: usize, v: &[&[Data]]) -> ColumnType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn max_length_at(n: usize, v: &[Vec<&str>]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_string`, `is_number`, `update`, and `update_by_excel_cell` are never used
[INFO] [stdout]    --> src/utils/column_type.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl ColumnType {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 181 |     pub fn is_string(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn is_number(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn update(&mut self, f: &str) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn update_by_excel_cell(&mut self, f: &Data) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `excel_col_width` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl CType {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 249 |     pub fn excel_col_width(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINATOR` is never used
[INFO] [stdout]  --> src/utils/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const TERMINATOR: &[u8; 1] = b"\n";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA` is never used
[INFO] [stdout]  --> src/utils/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const COMMA: &[u8; 1] = b",";
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const KB_F64: f64 = 1024.0;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const MB_F64: f64 = 1024.0 * 1024.0;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const GB_F64: f64 = 1024.0 * MB_F64;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datatype_vec_to_str_vec` is never used
[INFO] [stdout]  --> src/utils/excel.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datatype_vec_to_string` is never used
[INFO] [stdout]   --> src/utils/excel.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn datatype_vec_to_string(data: &[Data]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_datatype_to_string` is never used
[INFO] [stdout]   --> src/utils/excel.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn write_datatype_to_string(s: &mut String, d: &Data) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `column_n` is never used
[INFO] [stdout]   --> src/utils/file.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn column_n(path: &Path, sep: char, quote: char) -> Result<Option<usize>, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_frequency_to_csv` is never used
[INFO] [stdout]   --> src/utils/file.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn write_frequency_to_csv(path: &Path, names: &Vec<String>, freq: Vec<(String, usize)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BAD_FILENAME_CHARACTERS` is never used
[INFO] [stdout]  --> src/utils/filename.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const BAD_FILENAME_CHARACTERS: [char; 9] = ['<', '>', ':', '\\', '/', '\\', '"', '?', '*'];
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_path` is never used
[INFO] [stdout]  --> src/utils/filename.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn new_path(path: &Path, suffix: &str) -> PathBuf {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_file` is never used
[INFO] [stdout]   --> src/utils/filename.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn new_file(name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_filename` is never used
[INFO] [stdout]   --> src/utils/filename.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn str_to_filename(s: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_file` is never used
[INFO] [stdout]   --> src/utils/filename.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn dir_file(dir: &Path, name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/utils/filter.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Op {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/utils/filter.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Op {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] 24 |     fn evaluate(&self, a: f64, b: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterItem` is never constructed
[INFO] [stdout]   --> src/utils/filter.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct FilterItem {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Filter` is never constructed
[INFO] [stdout]   --> src/utils/filter.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Filter<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_usize` is never used
[INFO] [stdout]   --> src/utils/filter.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i32` is never used
[INFO] [stdout]   --> src/utils/filter.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn parse_i32(col: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/filter.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout] 76  | impl<'a> Filter<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 77  |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn parse(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn parse_one(&mut self, one: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn record_valid_map<'b>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn excel_record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_f64` is never used
[INFO] [stdout]    --> src/utils/filter.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn parse_f64(s: &str) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_f64_vec` is never used
[INFO] [stdout]    --> src/utils/filter.rs:278:4
[INFO] [stdout]     |
[INFO] [stdout] 278 | fn parse_f64_vec(s: &str) -> Vec<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `record_is_valid` is never used
[INFO] [stdout]    --> src/utils/filter.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl FilterItem {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 289 |     fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/utils/math_expr_parser.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Token {
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/utils/math_expr_parser.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Parser {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `parse`, `next_tok`, `next_ch`, `is_white_space`, and `is_digit_num` are never used
[INFO] [stdout]   --> src/utils/math_expr_parser.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Parser {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 21 |     fn parse(source: &str) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn next_tok(&mut self) -> Option<Token> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn next_ch(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn is_white_space(&self, c: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn is_digit_num(&self, c: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompiledExpr` is never constructed
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct CompiledExpr {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `evaluate`, `contains_column`, and `max_column` are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl CompiledExpr {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 110 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn evaluate(&self, cols: Option<&[f64]>) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn contains_column(&self, col: &usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn max_column(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeType` is never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:142:6
[INFO] [stdout]     |
[INFO] [stdout] 142 | enum NodeType {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct Node {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_col`, `from_number`, and `evaluate` are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl Node {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 158 |     fn from_col(col: usize) -> Node {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn from_number(val: f64) -> Node {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn evaluate(&self, cols: Option<&[f64]>) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AST` is never constructed
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct AST {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl AST {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 212 |     pub fn parse(source: &str) -> CompiledExpr {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn parse_expression(&mut self) -> Option<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn parse_primary(&mut self) -> Option<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn parse_bin_op_rhs(&mut self, exec_prec: i32, mut lhs: Node) -> Option<Node> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn tok_precedence(&self, op: char) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn next_tok(&mut self) -> Option<Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     fn get_tok_precedence(&mut self) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Item` is never constructed
[INFO] [stdout]  --> src/utils/priority_queue.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Item<T> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `line_n_as_string` is never used
[INFO] [stdout]   --> src/utils/priority_queue.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<T> Item<T> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 31 |     pub fn line_n_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityQueue` is never constructed
[INFO] [stdout]   --> src/utils/priority_queue.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PriorityQueue<T: Hash + Eq> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `can_insert`, `push`, and `into_sorted_items` are never used
[INFO] [stdout]   --> src/utils/priority_queue.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | / impl<T> PriorityQueue<T>
[INFO] [stdout] 43 | | where
[INFO] [stdout] 44 | |     T: Hash + Eq + Clone,
[INFO] [stdout]    | |_________________________- associated items in this implementation
[INFO] [stdout] 45 |   {
[INFO] [stdout] 46 |       pub fn with_capacity(n: usize) -> Self {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |       pub fn can_insert(&self, priority: f64) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |       pub fn push(&mut self, line_n: usize, priority: f64, item: T) {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |       pub fn into_sorted_items(self) -> Vec<Item<T>> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Progress` is never constructed
[INFO] [stdout]  --> src/utils/progress.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Progress {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utils/progress.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Progress {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn add_chunks(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn add_bytes(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn add_lines(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn info(&self) -> String {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn elapsed_time_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn print(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn print_elapsed_time(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkReader` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ChunkReader(Lines<BufReader<File>>);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Task` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Task {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, and `send_to_channel_by_chunks` are never used
[INFO] [stdout]   --> src/utils/reader.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl ChunkReader {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(path: &Path) -> Result<Self, std::io::Error> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn next(&mut self) -> Option<Result<String, std::io::Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn send_to_channel_by_chunks(&mut self, tx: Sender<Task>, line_buffer_n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExcelChunkTask` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExcelChunkTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `column_n` and `send_to_channel_by_chunk` are never used
[INFO] [stdout]    --> src/utils/reader.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout] 79  | impl<'a> ExcelReader {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn column_n(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn send_to_channel_by_chunk(self, tx: Sender<ExcelChunkTask>, size: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IoReader` is never constructed
[INFO] [stdout]    --> src/utils/reader.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct IoReader {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `no_header`, `top_n`, and `lines` are never used
[INFO] [stdout]    --> src/utils/reader.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl IoReader {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn no_header(&mut self, no_header: bool) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn top_n(&mut self, top_n: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn lines(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Re` is never constructed
[INFO] [stdout]  --> src/utils/regex.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Re(Regex);
[INFO] [stdout]   |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_match` are never used
[INFO] [stdout]   --> src/utils/regex.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl Re {
[INFO] [stdout]    | ------- associated items in this implementation
[INFO] [stdout] 7  |     pub fn new(pattern: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn is_match(&self, v: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortColumns` is never constructed
[INFO] [stdout]  --> src/utils/sort.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SortColumns(Vec<SortColumn>);
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortColumn` is never constructed
[INFO] [stdout]  --> src/utils/sort.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SortColumn {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/sort.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl SortColumns {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 16  |     pub fn from(cols: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55  |     fn col_at(&self, n: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     fn ascending_at(&self, n: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     fn numeric_at(&self, n: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn sort_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn sort_str_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn sort_numeric_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn sort_str_str_columns(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn sort_str_numeric_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn sort_numeric_str_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn sort_numeric_numeric_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn sort_excel_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn sort_excel_str_column(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn sort_excel_numeric_column(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn sort_excel_str_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn sort_excel_str_numeric_columns(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn sort_excel_numeric_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     fn sort_excel_numeric_numeric_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Table` is never constructed
[INFO] [stdout]  --> src/utils/table.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Table {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_empty`, `add_record`, `from_records`, `print_blank`, and `print_blank_unchecked` are never used
[INFO] [stdout]   --> src/utils/table.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Table {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn add_record<R, T>(&mut self, row: R)
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_records<R, T>(rows: Vec<R>) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn print_blank(self) -> CliResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn print_blank_unchecked(self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_file_suffix` is never used
[INFO] [stdout]   --> src/utils/to.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn is_file_suffix(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_plain_text` is never used
[INFO] [stdout]   --> src/utils/to.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn is_valid_plain_text(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_excel` is never used
[INFO] [stdout]   --> src/utils/to.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn is_valid_excel(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `csv_or_io_to_csv` is never used
[INFO] [stdout]   --> src/utils/to.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn csv_or_io_to_csv(path: Option<&Path>, out: &str) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `excel_to_csv` is never used
[INFO] [stdout]   --> src/utils/to.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn excel_to_csv(path: &Path, sheet: usize, sep: &str, out: &str) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `csv_to_excel` is never used
[INFO] [stdout]   --> src/utils/to.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn csv_to_excel(path: &Path, sep: char, quote: char, out: &str, no_header: bool) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `io_to_excel` is never used
[INFO] [stdout]    --> src/utils/to.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn io_to_excel(args: &To, out: &str) -> CliResult {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `equal_width` is never used
[INFO] [stdout]    --> src/utils/to.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn equal_width(lines: &Vec<Vec<&str>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `out_filename` is never used
[INFO] [stdout]    --> src/utils/to.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn out_filename(out: &str) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_excel_line` is never used
[INFO] [stdout]    --> src/utils/to.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn write_excel_line(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datetime_str` is never used
[INFO] [stdout]  --> src/utils/util.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn datetime_str() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_null` is never used
[INFO] [stdout]  --> src/utils/util.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn is_null(s: &str) -> bool {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_frequency_table` is never used
[INFO] [stdout]   --> src/utils/util.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn print_frequency_table(names: &[String], freq: Vec<(String, usize)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Writer` is never constructed
[INFO] [stdout]   --> src/utils/writer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Writer(pub Box<dyn Write>);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/writer.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl Writer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 14  |     pub fn new(path: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20  |     pub fn file_or_stdout(export: bool, path: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29  |     pub fn stdout() -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn append_to(out: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47  |     pub fn write_bytes(&mut self, bytes: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn write_bytes_unchecked(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn write_header(&mut self, row: &str) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn write_str<T: AsRef<str>>(&mut self, row: T) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn write_str_unchecked<T: AsRef<str>>(&mut self, row: T) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83  |     pub fn write_strings<T: AsRef<str>>(&mut self, lines: &[T]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     pub fn write_strings_unchecked<T: AsRef<str>>(&mut self, lines: &[T]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn write_fields<T: AsRef<str>>(&mut self, line: &[T]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn write_fields_unchecked<T: AsRef<str>>(&mut self, line: &[T]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn write_selected_fields<T: AsRef<str>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn write_selected_fields_unchecked<T: AsRef<str>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn write_fields_of_lines_unchecked<T: AsRef<str>>(&mut self, lines: &Vec<Vec<T>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn write_excel_field(&mut self, data: &Data) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn write_excel_line(&mut self, line: &[Data], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn write_excel_line_unchecked(&mut self, line: &[Data], sep: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn write_excel_selected_fields(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn write_excel_selected_fields_unchecked(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn write_excel_lines(&mut self, lines: &[Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn write_excel_lines_by_ref(&mut self, lines: &[&Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/utils/excel.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stdout]   |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `collect_owned` is never used
[INFO] [stdout]   --> src/utils/row_split.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<'a> CsvRowSplitter<'a> {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn collect_owned(self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CliResultData` is never used
[INFO] [stdout]  --> src/utils/return_result.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type CliResultData = Result<Option<ResultData>, Box<dyn std::error::Error>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResultData` is never constructed
[INFO] [stdout]  --> src/utils/return_result.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ResultData {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, `from_header`, `insert_header`, and `insert_record` are never used
[INFO] [stdout]   --> src/utils/return_result.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl ResultData {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> ResultData {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn from(header: Vec<String>, data: Vec<Vec<String>>) -> ResultData {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_header(header: Vec<String>) -> ResultData {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn insert_header(&mut self, header: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn insert_record(&mut self, record: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/utils/excel.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stdout]   |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling execute-command-macro-impl v0.1.10
[INFO] [stderr]    Compiling execute-command-macro v0.1.9
[INFO] [stderr]    Compiling generic-array v1.2.0
[INFO] [stderr]    Compiling execute v0.2.13
[INFO] [stderr]    Compiling csv-txt-excel-parallel-toolkit v0.4.16 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type alias `CliResult` is never used
[INFO] [stdout]  --> src/utils/cli_result.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub type CliResult = Result<(), Box<dyn std::error::Error>>;
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `E` is never used
[INFO] [stdout]  --> src/utils/cli_result.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait E {
[INFO] [stdout]   |           ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE_DESC` is never used
[INFO] [stdout]  --> src/utils/cmd_desc.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const SIZE_DESC: &str = r#"
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COUNT_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const COUNT_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const HEADER_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEAD_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub const HEAD_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAIL_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const TAIL_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ESTIMATE_DESC` is never used
[INFO] [stdout]   --> src/utils/cmd_desc.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const ESTIMATE_DESC: &str = r#"
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLEAN_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:114:11
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub const CLEAN_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLATTEN_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:133:11
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub const FLATTEN_DESC: &str = r##"
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SLICE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:159:11
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub const SLICE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FREQUENCY_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:193:11
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub const FREQUENCY_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SPLIT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:227:11
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub const SPLIT_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SELECT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:267:11
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub const SELECT_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATS_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:312:11
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub const STATS_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXCEL2CSV_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:343:11
[INFO] [stdout]     |
[INFO] [stdout] 343 | pub const EXCEL2CSV_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TABLE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:361:11
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub const TABLE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEARCH_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub const SEARCH_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SORT_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:410:11
[INFO] [stdout]     |
[INFO] [stdout] 410 | pub const SORT_DESC: &str = r##"
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TO_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:445:11
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub const TO_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:470:11
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub const SAMPLE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNIQUE_DESC` is never used
[INFO] [stdout]    --> src/utils/cmd_desc.rs:498:11
[INFO] [stdout]     |
[INFO] [stdout] 498 | pub const UNIQUE_DESC: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Columns` is never constructed
[INFO] [stdout]   --> src/utils/column.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Columns<'a> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_usize` is never used
[INFO] [stdout]   --> src/utils/column.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i32` is never used
[INFO] [stdout]   --> src/utils/column.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn parse_i32(col: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_pat_at` is never used
[INFO] [stdout]   --> src/utils/column.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn split_pat_at<'a>(source: &'a str, pat: &'a str, n: usize) -> (&'a str, &'a str) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/column.rs:47:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl<'a> Columns<'a> {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 47  |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn parse(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     fn parse_col(&mut self, col: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn push(&mut self, col: usize) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn push_range(&mut self, min: usize, max: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn update_status(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn iter(&self) -> impl Iterator<Item = &usize> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn artificial_cols_with_appended_n(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn artificial_n_cols(&self, n: usize) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn select_owned_string(&self, all: &[&str]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn select_owned_string_from_excel_datatype(&self, all: &[Data]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn select_owned_vec_from_excel_datatype(&self, all: &[Data]) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn select_owned_vector_and_append_n(&self, all: &[&str]) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn col_vec_or_length_of(&self, n: usize) -> Vec<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColumnStats` is never constructed
[INFO] [stdout]   --> src/utils/column_stats.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ColumnStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CStat` is never constructed
[INFO] [stdout]   --> src/utils/column_stats.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CStat {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/column_stats.rs:37:12
[INFO] [stdout]     |
[INFO] [stdout] 36  | impl ColumnStats {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 37  |     pub fn new(col_type: &ColumnTypes, col_name: &[String]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51  |     fn push(&mut self, col_index: usize, col_type: ColumnType, name: &str) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74  |     pub fn parse_line_by_fields(&mut self, v: &[&str]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn parse_line(&mut self, line: &str, sep: char, quote: char) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn parse_excel_row(&mut self, v: &[Data]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn cal_unique_and_mean(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn iter(&self) -> impl Iterator<Item = &CStat> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn merge(&mut self, other: ColumnStats) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn print_table_vertical(&self) -> Table {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/column_stats.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl CStat {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 202 |     pub fn parse(&mut self, f: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn insert_unique(&mut self, v: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn set_as_float(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn set_as_string(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn is_int(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn is_float(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn is_string(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn update_number_stat(&mut self, v: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn update_string_stat(&mut self, v: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn merge(&mut self, o: CStat) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn mean_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn min_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn max_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn unique_fmt(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ColumnTypes` is never constructed
[INFO] [stdout]   --> src/utils/column_type.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ColumnTypes(Vec<CType>);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CType` is never constructed
[INFO] [stdout]   --> src/utils/column_type.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CType {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ColumnType` is never used
[INFO] [stdout]   --> src/utils/column_type.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum ColumnType {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `push`, `iter`, `guess_from_csv`, `guess_from_excel`, `guess_from_io`, and `update_excel_column_width` are never used
[INFO] [stdout]    --> src/utils/column_type.rs:36:8
[INFO] [stdout]     |
[INFO] [stdout] 35  | impl ColumnTypes {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 36  |     fn push(&mut self, col_index: usize, col_type: ColumnType, max_length: usize) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44  |     pub fn iter(&self) -> impl Iterator<Item = &CType> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn guess_from_csv(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn guess_from_excel(range: &ExcelReader, no_header: bool, cols: &Columns) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn guess_from_io(v: &[Vec<&str>], cols: &Columns) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn update_excel_column_width(&self, sheet: &mut Worksheet) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_type_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn parse_col_type_at(n: usize, v: &[Vec<&str>]) -> ColumnType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_excel_col_type_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:151:4
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn parse_excel_col_type_at(n: usize, v: &[&[Data]]) -> ColumnType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_length_at` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn max_length_at(n: usize, v: &[Vec<&str>]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_string`, `is_number`, `update`, and `update_by_excel_cell` are never used
[INFO] [stdout]    --> src/utils/column_type.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl ColumnType {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 181 |     pub fn is_string(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn is_number(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn update(&mut self, f: &str) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn update_by_excel_cell(&mut self, f: &Data) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `excel_col_width` is never used
[INFO] [stdout]    --> src/utils/column_type.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl CType {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 249 |     pub fn excel_col_width(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERMINATOR` is never used
[INFO] [stdout]  --> src/utils/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const TERMINATOR: &[u8; 1] = b"\n";
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMA` is never used
[INFO] [stdout]  --> src/utils/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const COMMA: &[u8; 1] = b",";
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const KB_F64: f64 = 1024.0;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const MB_F64: f64 = 1024.0 * 1024.0;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GB_F64` is never used
[INFO] [stdout]  --> src/utils/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const GB_F64: f64 = 1024.0 * MB_F64;
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datatype_vec_to_str_vec` is never used
[INFO] [stdout]  --> src/utils/excel.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datatype_vec_to_string` is never used
[INFO] [stdout]   --> src/utils/excel.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn datatype_vec_to_string(data: &[Data]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_datatype_to_string` is never used
[INFO] [stdout]   --> src/utils/excel.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn write_datatype_to_string(s: &mut String, d: &Data) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `column_n` is never used
[INFO] [stdout]   --> src/utils/file.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn column_n(path: &Path, sep: char, quote: char) -> Result<Option<usize>, Box<dyn Error>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_frequency_to_csv` is never used
[INFO] [stdout]   --> src/utils/file.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn write_frequency_to_csv(path: &Path, names: &Vec<String>, freq: Vec<(String, usize)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BAD_FILENAME_CHARACTERS` is never used
[INFO] [stdout]  --> src/utils/filename.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const BAD_FILENAME_CHARACTERS: [char; 9] = ['<', '>', ':', '\\', '/', '\\', '"', '?', '*'];
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_path` is never used
[INFO] [stdout]  --> src/utils/filename.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn new_path(path: &Path, suffix: &str) -> PathBuf {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_file` is never used
[INFO] [stdout]   --> src/utils/filename.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn new_file(name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_filename` is never used
[INFO] [stdout]   --> src/utils/filename.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn str_to_filename(s: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_file` is never used
[INFO] [stdout]   --> src/utils/filename.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn dir_file(dir: &Path, name: &str) -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/utils/filter.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Op {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evaluate` is never used
[INFO] [stdout]   --> src/utils/filter.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Op {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] 24 |     fn evaluate(&self, a: f64, b: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FilterItem` is never constructed
[INFO] [stdout]   --> src/utils/filter.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct FilterItem {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Filter` is never constructed
[INFO] [stdout]   --> src/utils/filter.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Filter<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_col_usize` is never used
[INFO] [stdout]   --> src/utils/filter.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_i32` is never used
[INFO] [stdout]   --> src/utils/filter.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn parse_i32(col: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/filter.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout] 76  | impl<'a> Filter<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 77  |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 89  |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn parse(mut self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn parse_one(&mut self, one: &str) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn record_valid_map<'b>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn excel_record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_f64` is never used
[INFO] [stdout]    --> src/utils/filter.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn parse_f64(s: &str) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_f64_vec` is never used
[INFO] [stdout]    --> src/utils/filter.rs:278:4
[INFO] [stdout]     |
[INFO] [stdout] 278 | fn parse_f64_vec(s: &str) -> Vec<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `record_is_valid` is never used
[INFO] [stdout]    --> src/utils/filter.rs:289:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl FilterItem {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 289 |     fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `used_columns` and `max_column` are never read
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct CompiledExpr {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 104 |     node: Node,
[INFO] [stdout] 105 |     used_columns: Vec<usize>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 106 |     max_column: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CompiledExpr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contains_column` and `max_column` are never used
[INFO] [stdout]    --> src/utils/math_expr_parser.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl CompiledExpr {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn contains_column(&self, col: &usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn max_column(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Item` is never constructed
[INFO] [stdout]  --> src/utils/priority_queue.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Item<T> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `line_n_as_string` is never used
[INFO] [stdout]   --> src/utils/priority_queue.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<T> Item<T> {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 31 |     pub fn line_n_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriorityQueue` is never constructed
[INFO] [stdout]   --> src/utils/priority_queue.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct PriorityQueue<T: Hash + Eq> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_capacity`, `can_insert`, `push`, and `into_sorted_items` are never used
[INFO] [stdout]   --> src/utils/priority_queue.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | / impl<T> PriorityQueue<T>
[INFO] [stdout] 43 | | where
[INFO] [stdout] 44 | |     T: Hash + Eq + Clone,
[INFO] [stdout]    | |_________________________- associated items in this implementation
[INFO] [stdout] 45 |   {
[INFO] [stdout] 46 |       pub fn with_capacity(n: usize) -> Self {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |       pub fn can_insert(&self, priority: f64) -> bool {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |       pub fn push(&mut self, line_n: usize, priority: f64, item: T) {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |       pub fn into_sorted_items(self) -> Vec<Item<T>> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Progress` is never constructed
[INFO] [stdout]  --> src/utils/progress.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Progress {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utils/progress.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Progress {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn add_chunks(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn add_bytes(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn add_lines(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn info(&self) -> String {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn elapsed_time_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn print(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn print_elapsed_time(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkReader` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct ChunkReader(Lines<BufReader<File>>);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Task` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Task {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, and `send_to_channel_by_chunks` are never used
[INFO] [stdout]   --> src/utils/reader.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl ChunkReader {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(path: &Path) -> Result<Self, std::io::Error> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn next(&mut self) -> Option<Result<String, std::io::Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn send_to_channel_by_chunks(&mut self, tx: Sender<Task>, line_buffer_n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExcelChunkTask` is never constructed
[INFO] [stdout]   --> src/utils/reader.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct ExcelChunkTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `column_n` and `send_to_channel_by_chunk` are never used
[INFO] [stdout]    --> src/utils/reader.rs:97:12
[INFO] [stdout]     |
[INFO] [stdout] 79  | impl<'a> ExcelReader {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub fn column_n(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn send_to_channel_by_chunk(self, tx: Sender<ExcelChunkTask>, size: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IoReader` is never constructed
[INFO] [stdout]    --> src/utils/reader.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct IoReader {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `no_header`, `top_n`, and `lines` are never used
[INFO] [stdout]    --> src/utils/reader.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl IoReader {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn no_header(&mut self, no_header: bool) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn top_n(&mut self, top_n: usize) -> &mut Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn lines(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Re` is never constructed
[INFO] [stdout]  --> src/utils/regex.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Re(Regex);
[INFO] [stdout]   |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_match` are never used
[INFO] [stdout]   --> src/utils/regex.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout] 6  | impl Re {
[INFO] [stdout]    | ------- associated items in this implementation
[INFO] [stdout] 7  |     pub fn new(pattern: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn is_match(&self, v: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortColumns` is never constructed
[INFO] [stdout]  --> src/utils/sort.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SortColumns(Vec<SortColumn>);
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortColumn` is never constructed
[INFO] [stdout]  --> src/utils/sort.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SortColumn {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/sort.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl SortColumns {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 16  |     pub fn from(cols: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55  |     fn col_at(&self, n: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     fn ascending_at(&self, n: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     fn numeric_at(&self, n: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn sort_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91  |     fn sort_str_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn sort_numeric_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn sort_str_str_columns(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn sort_str_numeric_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn sort_numeric_str_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn sort_numeric_numeric_columns(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn sort_excel_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn sort_excel_str_column(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn sort_excel_numeric_column(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn sort_excel_str_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn sort_excel_str_numeric_columns(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn sort_excel_numeric_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 349 |     fn sort_excel_numeric_numeric_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Table` is never constructed
[INFO] [stdout]  --> src/utils/table.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Table {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_empty`, `add_record`, `from_records`, `print_blank`, and `print_blank_unchecked` are never used
[INFO] [stdout]   --> src/utils/table.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Table {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn is_empty(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn add_record<R, T>(&mut self, row: R)
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn from_records<R, T>(rows: Vec<R>) -> Self
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn print_blank(self) -> CliResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn print_blank_unchecked(self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_file_suffix` is never used
[INFO] [stdout]   --> src/utils/to.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn is_file_suffix(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_plain_text` is never used
[INFO] [stdout]   --> src/utils/to.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn is_valid_plain_text(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_excel` is never used
[INFO] [stdout]   --> src/utils/to.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn is_valid_excel(f: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `csv_or_io_to_csv` is never used
[INFO] [stdout]   --> src/utils/to.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn csv_or_io_to_csv(path: Option<&Path>, out: &str) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `excel_to_csv` is never used
[INFO] [stdout]   --> src/utils/to.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn excel_to_csv(path: &Path, sheet: usize, sep: &str, out: &str) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `csv_to_excel` is never used
[INFO] [stdout]   --> src/utils/to.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn csv_to_excel(path: &Path, sep: char, quote: char, out: &str, no_header: bool) -> CliResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `io_to_excel` is never used
[INFO] [stdout]    --> src/utils/to.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn io_to_excel(args: &To, out: &str) -> CliResult {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `equal_width` is never used
[INFO] [stdout]    --> src/utils/to.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn equal_width(lines: &Vec<Vec<&str>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `out_filename` is never used
[INFO] [stdout]    --> src/utils/to.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn out_filename(out: &str) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_excel_line` is never used
[INFO] [stdout]    --> src/utils/to.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn write_excel_line(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `datetime_str` is never used
[INFO] [stdout]  --> src/utils/util.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn datetime_str() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_null` is never used
[INFO] [stdout]  --> src/utils/util.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn is_null(s: &str) -> bool {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_frequency_table` is never used
[INFO] [stdout]   --> src/utils/util.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn print_frequency_table(names: &[String], freq: Vec<(String, usize)>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Writer` is never constructed
[INFO] [stdout]   --> src/utils/writer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Writer(pub Box<dyn Write>);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utils/writer.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout] 13  | impl Writer {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 14  |     pub fn new(path: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20  |     pub fn file_or_stdout(export: bool, path: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29  |     pub fn stdout() -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn append_to(out: &Path) -> Result<Self, Error> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47  |     pub fn write_bytes(&mut self, bytes: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52  |     pub fn write_bytes_unchecked(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58  |     pub fn write_header(&mut self, row: &str) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71  |     pub fn write_str<T: AsRef<str>>(&mut self, row: T) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     pub fn write_str_unchecked<T: AsRef<str>>(&mut self, row: T) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83  |     pub fn write_strings<T: AsRef<str>>(&mut self, lines: &[T]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90  |     pub fn write_strings_unchecked<T: AsRef<str>>(&mut self, lines: &[T]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn write_fields<T: AsRef<str>>(&mut self, line: &[T]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn write_fields_unchecked<T: AsRef<str>>(&mut self, line: &[T]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn write_selected_fields<T: AsRef<str>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn write_selected_fields_unchecked<T: AsRef<str>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn write_fields_of_lines_unchecked<T: AsRef<str>>(&mut self, lines: &Vec<Vec<T>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn write_excel_field(&mut self, data: &Data) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn write_excel_line(&mut self, line: &[Data], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn write_excel_line_unchecked(&mut self, line: &[Data], sep: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn write_excel_selected_fields(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn write_excel_selected_fields_unchecked(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn write_excel_lines(&mut self, lines: &[Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn write_excel_lines_by_ref(&mut self, lines: &[&Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/utils/excel.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stdout]   |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `collect_owned` is never used
[INFO] [stdout]   --> src/utils/row_split.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl<'a> CsvRowSplitter<'a> {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn collect_owned(self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CliResultData` is never used
[INFO] [stdout]  --> src/utils/return_result.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type CliResultData = Result<Option<ResultData>, Box<dyn std::error::Error>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResultData` is never constructed
[INFO] [stdout]  --> src/utils/return_result.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ResultData {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, `from_header`, `insert_header`, and `insert_record` are never used
[INFO] [stdout]   --> src/utils/return_result.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl ResultData {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> ResultData {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn from(header: Vec<String>, data: Vec<Vec<String>>) -> ResultData {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_header(header: Vec<String>) -> ResultData {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn insert_header(&mut self, header: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn insert_record(&mut self, record: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]  --> src/utils/excel.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stdout]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      this lifetime flows to the output
[INFO] [stdout]   |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stdout]   |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stdout]    |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.57s
[INFO] running `Command { std: "docker" "inspect" "25dccd0a3357cd9e6f862370b1f985bd820082097d3be3342629638348bdda7f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "25dccd0a3357cd9e6f862370b1f985bd820082097d3be3342629638348bdda7f", kill_on_drop: false }`
[INFO] [stdout] 25dccd0a3357cd9e6f862370b1f985bd820082097d3be3342629638348bdda7f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6d82834ee9a65fdb26f316d235db5bbbe41202614595694dfaa4b99d06338679
[INFO] running `Command { std: "docker" "start" "-a" "6d82834ee9a65fdb26f316d235db5bbbe41202614595694dfaa4b99d06338679", kill_on_drop: false }`
[INFO] [stderr] warning: type alias `CliResult` is never used
[INFO] [stderr]  --> src/utils/cli_result.rs:2:10
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub type CliResult = Result<(), Box<dyn std::error::Error>>;
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `E` is never used
[INFO] [stderr]  --> src/utils/cli_result.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub trait E {
[INFO] [stderr]   |           ^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SIZE_DESC` is never used
[INFO] [stderr]  --> src/utils/cmd_desc.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub const SIZE_DESC: &str = r#"
[INFO] [stderr]   |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `COUNT_DESC` is never used
[INFO] [stderr]   --> src/utils/cmd_desc.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub const COUNT_DESC: &str = r#"
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_DESC` is never used
[INFO] [stderr]   --> src/utils/cmd_desc.rs:33:11
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub const HEADER_DESC: &str = r#"
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEAD_DESC` is never used
[INFO] [stderr]   --> src/utils/cmd_desc.rs:53:11
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub const HEAD_DESC: &str = r#"
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TAIL_DESC` is never used
[INFO] [stderr]   --> src/utils/cmd_desc.rs:74:11
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub const TAIL_DESC: &str = r#"
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ESTIMATE_DESC` is never used
[INFO] [stderr]   --> src/utils/cmd_desc.rs:95:11
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub const ESTIMATE_DESC: &str = r#"
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLEAN_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:114:11
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub const CLEAN_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FLATTEN_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:133:11
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub const FLATTEN_DESC: &str = r##"
[INFO] [stderr]     |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SLICE_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:159:11
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub const SLICE_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FREQUENCY_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:193:11
[INFO] [stderr]     |
[INFO] [stderr] 193 | pub const FREQUENCY_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SPLIT_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:227:11
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub const SPLIT_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SELECT_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:267:11
[INFO] [stderr]     |
[INFO] [stderr] 267 | pub const SELECT_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STATS_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:312:11
[INFO] [stderr]     |
[INFO] [stderr] 312 | pub const STATS_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `EXCEL2CSV_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:343:11
[INFO] [stderr]     |
[INFO] [stderr] 343 | pub const EXCEL2CSV_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TABLE_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:361:11
[INFO] [stderr]     |
[INFO] [stderr] 361 | pub const TABLE_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SEARCH_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:375:11
[INFO] [stderr]     |
[INFO] [stderr] 375 | pub const SEARCH_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SORT_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:410:11
[INFO] [stderr]     |
[INFO] [stderr] 410 | pub const SORT_DESC: &str = r##"
[INFO] [stderr]     |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TO_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:445:11
[INFO] [stderr]     |
[INFO] [stderr] 445 | pub const TO_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SAMPLE_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:470:11
[INFO] [stderr]     |
[INFO] [stderr] 470 | pub const SAMPLE_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNIQUE_DESC` is never used
[INFO] [stderr]    --> src/utils/cmd_desc.rs:498:11
[INFO] [stderr]     |
[INFO] [stderr] 498 | pub const UNIQUE_DESC: &str = r#"
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Columns` is never constructed
[INFO] [stderr]   --> src/utils/column.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Columns<'a> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_col_usize` is never used
[INFO] [stderr]   --> src/utils/column.rs:22:4
[INFO] [stderr]    |
[INFO] [stderr] 22 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_i32` is never used
[INFO] [stderr]   --> src/utils/column.rs:31:4
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn parse_i32(col: &str) -> i32 {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `split_pat_at` is never used
[INFO] [stderr]   --> src/utils/column.rs:40:4
[INFO] [stderr]    |
[INFO] [stderr] 40 | fn split_pat_at<'a>(source: &'a str, pat: &'a str, n: usize) -> (&'a str, &'a str) {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/column.rs:47:12
[INFO] [stderr]     |
[INFO] [stderr] 46  | impl<'a> Columns<'a> {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] 47  |     pub fn new(raw: &str) -> Columns {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 61  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 73  |     pub fn parse(mut self) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90  |     fn parse_col(&mut self, col: &str) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     fn push(&mut self, col: usize) {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     fn push_range(&mut self, min: usize, max: usize) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     fn update_status(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 157 |     pub fn iter(&self) -> impl Iterator<Item = &usize> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub fn artificial_cols_with_appended_n(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 168 |     pub fn artificial_n_cols(&self, n: usize) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn select_owned_string(&self, all: &[&str]) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub fn select_owned_string_from_excel_datatype(&self, all: &[Data]) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |     pub fn select_owned_vec_from_excel_datatype(&self, all: &[Data]) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 197 |     pub fn select_owned_vector_and_append_n(&self, all: &[&str]) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn col_vec_or_length_of(&self, n: usize) -> Vec<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ColumnStats` is never constructed
[INFO] [stderr]   --> src/utils/column_stats.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct ColumnStats {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CStat` is never constructed
[INFO] [stderr]   --> src/utils/column_stats.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct CStat {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/column_stats.rs:37:12
[INFO] [stderr]     |
[INFO] [stderr] 36  | impl ColumnStats {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 37  |     pub fn new(col_type: &ColumnTypes, col_name: &[String]) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 51  |     fn push(&mut self, col_index: usize, col_type: ColumnType, name: &str) {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 74  |     pub fn parse_line_by_fields(&mut self, v: &[&str]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 88  |     pub fn parse_line(&mut self, line: &str, sep: char, quote: char) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 93  |     pub fn parse_excel_row(&mut self, v: &[Data]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn cal_unique_and_mean(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 126 |     fn iter(&self) -> impl Iterator<Item = &CStat> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub fn merge(&mut self, other: ColumnStats) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     fn print_table_vertical(&self) -> Table {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn print(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/utils/column_stats.rs:202:12
[INFO] [stderr]     |
[INFO] [stderr] 201 | impl CStat {
[INFO] [stderr]     | ---------- methods in this implementation
[INFO] [stderr] 202 |     pub fn parse(&mut self, f: &str) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 236 |     fn insert_unique(&mut self, v: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 243 |     fn set_as_float(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     fn set_as_string(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     fn is_int(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 255 |     fn is_float(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 259 |     fn is_string(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 263 |     fn update_number_stat(&mut self, v: f64) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 273 |     fn update_string_stat(&mut self, v: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 282 |     fn merge(&mut self, o: CStat) {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 303 |     fn mean_fmt(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 311 |     fn min_fmt(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 321 |     fn max_fmt(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 331 |     fn unique_fmt(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ColumnTypes` is never constructed
[INFO] [stderr]   --> src/utils/column_type.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct ColumnTypes(Vec<CType>);
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CType` is never constructed
[INFO] [stderr]   --> src/utils/column_type.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct CType {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ColumnType` is never used
[INFO] [stderr]   --> src/utils/column_type.rs:28:10
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub enum ColumnType {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `push`, `iter`, `guess_from_csv`, `guess_from_excel`, `guess_from_io`, and `update_excel_column_width` are never used
[INFO] [stderr]    --> src/utils/column_type.rs:36:8
[INFO] [stderr]     |
[INFO] [stderr] 35  | impl ColumnTypes {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 36  |     fn push(&mut self, col_index: usize, col_type: ColumnType, max_length: usize) {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44  |     pub fn iter(&self) -> impl Iterator<Item = &CType> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49  |     pub fn guess_from_csv(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 89  |     pub fn guess_from_excel(range: &ExcelReader, no_header: bool, cols: &Columns) -> Option<Self> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn guess_from_io(v: &[Vec<&str>], cols: &Columns) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub fn update_excel_column_width(&self, sheet: &mut Worksheet) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_col_type_at` is never used
[INFO] [stderr]    --> src/utils/column_type.rs:135:4
[INFO] [stderr]     |
[INFO] [stderr] 135 | fn parse_col_type_at(n: usize, v: &[Vec<&str>]) -> ColumnType {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_excel_col_type_at` is never used
[INFO] [stderr]    --> src/utils/column_type.rs:151:4
[INFO] [stderr]     |
[INFO] [stderr] 151 | fn parse_excel_col_type_at(n: usize, v: &[&[Data]]) -> ColumnType {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `max_length_at` is never used
[INFO] [stderr]    --> src/utils/column_type.rs:163:4
[INFO] [stderr]     |
[INFO] [stderr] 163 | fn max_length_at(n: usize, v: &[Vec<&str>]) -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_string`, `is_number`, `update`, and `update_by_excel_cell` are never used
[INFO] [stderr]    --> src/utils/column_type.rs:181:12
[INFO] [stderr]     |
[INFO] [stderr] 180 | impl ColumnType {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] 181 |     pub fn is_string(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 185 |     pub fn is_number(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |     pub fn update(&mut self, f: &str) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     pub fn update_by_excel_cell(&mut self, f: &Data) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `excel_col_width` is never used
[INFO] [stderr]    --> src/utils/column_type.rs:249:12
[INFO] [stderr]     |
[INFO] [stderr] 248 | impl CType {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] 249 |     pub fn excel_col_width(&self) -> f64 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TERMINATOR` is never used
[INFO] [stderr]  --> src/utils/constants.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub const TERMINATOR: &[u8; 1] = b"\n";
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `COMMA` is never used
[INFO] [stderr]  --> src/utils/constants.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub const COMMA: &[u8; 1] = b",";
[INFO] [stderr]   |           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KB_F64` is never used
[INFO] [stderr]  --> src/utils/constants.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub const KB_F64: f64 = 1024.0;
[INFO] [stderr]   |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MB_F64` is never used
[INFO] [stderr]  --> src/utils/constants.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const MB_F64: f64 = 1024.0 * 1024.0;
[INFO] [stderr]   |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `GB_F64` is never used
[INFO] [stderr]  --> src/utils/constants.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const GB_F64: f64 = 1024.0 * MB_F64;
[INFO] [stderr]   |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `datatype_vec_to_str_vec` is never used
[INFO] [stderr]  --> src/utils/excel.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `datatype_vec_to_string` is never used
[INFO] [stderr]   --> src/utils/excel.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn datatype_vec_to_string(data: &[Data]) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_datatype_to_string` is never used
[INFO] [stderr]   --> src/utils/excel.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn write_datatype_to_string(s: &mut String, d: &Data) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `column_n` is never used
[INFO] [stderr]   --> src/utils/file.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn column_n(path: &Path, sep: char, quote: char) -> Result<Option<usize>, Box<dyn Error>> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_frequency_to_csv` is never used
[INFO] [stderr]   --> src/utils/file.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn write_frequency_to_csv(path: &Path, names: &Vec<String>, freq: Vec<(String, usize)>) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BAD_FILENAME_CHARACTERS` is never used
[INFO] [stderr]  --> src/utils/filename.rs:3:7
[INFO] [stderr]   |
[INFO] [stderr] 3 | const BAD_FILENAME_CHARACTERS: [char; 9] = ['<', '>', ':', '\\', '/', '\\', '"', '?', '*'];
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `new_path` is never used
[INFO] [stderr]  --> src/utils/filename.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn new_path(path: &Path, suffix: &str) -> PathBuf {
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `new_file` is never used
[INFO] [stderr]   --> src/utils/filename.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn new_file(name: &str) -> PathBuf {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `str_to_filename` is never used
[INFO] [stderr]   --> src/utils/filename.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn str_to_filename(s: &str) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dir_file` is never used
[INFO] [stderr]   --> src/utils/filename.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn dir_file(dir: &Path, name: &str) -> PathBuf {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Op` is never used
[INFO] [stderr]   --> src/utils/filter.rs:14:6
[INFO] [stderr]    |
[INFO] [stderr] 14 | enum Op {
[INFO] [stderr]    |      ^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `evaluate` is never used
[INFO] [stderr]   --> src/utils/filter.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl Op {
[INFO] [stderr]    | ------- method in this implementation
[INFO] [stderr] 24 |     fn evaluate(&self, a: f64, b: f64) -> bool {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FilterItem` is never constructed
[INFO] [stderr]   --> src/utils/filter.rs:36:8
[INFO] [stderr]    |
[INFO] [stderr] 36 | struct FilterItem {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Filter` is never constructed
[INFO] [stderr]   --> src/utils/filter.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct Filter<'a> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_col_usize` is never used
[INFO] [stderr]   --> src/utils/filter.rs:58:4
[INFO] [stderr]    |
[INFO] [stderr] 58 | fn parse_col_usize(col: &str) -> usize {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_i32` is never used
[INFO] [stderr]   --> src/utils/filter.rs:67:4
[INFO] [stderr]    |
[INFO] [stderr] 67 | fn parse_i32(col: &str) -> i32 {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/filter.rs:77:12
[INFO] [stderr]     |
[INFO] [stderr] 76  | impl<'a> Filter<'a> {
[INFO] [stderr]     | ------------------- associated items in this implementation
[INFO] [stderr] 77  |     pub fn new(raw: &str) -> Filter {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 89  |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 93  |     pub fn total_col(mut self, total: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 98  |     pub fn total_col_of(mut self, path: &'a Path, sep: char, quote: char) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 105 |     fn true_col(&mut self, col: &str) -> usize {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn parse(mut self) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 140 |     fn parse_one(&mut self, one: &str) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 242 |     pub fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn record_valid_map<'b>(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn excel_record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_f64` is never used
[INFO] [stderr]    --> src/utils/filter.rs:272:8
[INFO] [stderr]     |
[INFO] [stderr] 272 | pub fn parse_f64(s: &str) -> f64 {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_f64_vec` is never used
[INFO] [stderr]    --> src/utils/filter.rs:278:4
[INFO] [stderr]     |
[INFO] [stderr] 278 | fn parse_f64_vec(s: &str) -> Vec<f64> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `record_is_valid` is never used
[INFO] [stderr]    --> src/utils/filter.rs:289:8
[INFO] [stderr]     |
[INFO] [stderr] 288 | impl FilterItem {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] 289 |     fn record_is_valid<T: AsRef<str>>(&self, row: &[T]) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Token` is never used
[INFO] [stderr]  --> src/utils/math_expr_parser.rs:4:6
[INFO] [stderr]   |
[INFO] [stderr] 4 | enum Token {
[INFO] [stderr]   |      ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Parser` is never constructed
[INFO] [stderr]   --> src/utils/math_expr_parser.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | struct Parser {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `parse`, `next_tok`, `next_ch`, `is_white_space`, and `is_digit_num` are never used
[INFO] [stderr]   --> src/utils/math_expr_parser.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Parser {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 21 |     fn parse(source: &str) -> Self {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     fn next_tok(&mut self) -> Option<Token> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82 |     fn next_ch(&mut self) -> bool {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 93 |     fn is_white_space(&self, c: char) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 97 |     fn is_digit_num(&self, c: char) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CompiledExpr` is never constructed
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:103:12
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub struct CompiledExpr {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `evaluate`, `contains_column`, and `max_column` are never used
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:110:12
[INFO] [stderr]     |
[INFO] [stderr] 109 | impl CompiledExpr {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 110 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn evaluate(&self, cols: Option<&[f64]>) -> f64 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn contains_column(&self, col: &usize) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn max_column(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `NodeType` is never used
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:142:6
[INFO] [stderr]     |
[INFO] [stderr] 142 | enum NodeType {
[INFO] [stderr]     |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Node` is never constructed
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:148:12
[INFO] [stderr]     |
[INFO] [stderr] 148 | pub struct Node {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_col`, `from_number`, and `evaluate` are never used
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:158:8
[INFO] [stderr]     |
[INFO] [stderr] 157 | impl Node {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] 158 |     fn from_col(col: usize) -> Node {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 169 |     fn from_number(val: f64) -> Node {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     fn evaluate(&self, cols: Option<&[f64]>) -> f64 {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AST` is never constructed
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:205:12
[INFO] [stderr]     |
[INFO] [stderr] 205 | pub struct AST {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:212:12
[INFO] [stderr]     |
[INFO] [stderr] 211 | impl AST {
[INFO] [stderr]     | -------- associated items in this implementation
[INFO] [stderr] 212 |     pub fn parse(source: &str) -> CompiledExpr {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 233 |     fn parse_expression(&mut self) -> Option<Node> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     fn parse_primary(&mut self) -> Option<Node> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 259 |     fn parse_bin_op_rhs(&mut self, exec_prec: i32, mut lhs: Node) -> Option<Node> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 307 |     fn tok_precedence(&self, op: char) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     fn next_tok(&mut self) -> Option<Token> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 325 |     fn get_tok_precedence(&mut self) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Item` is never constructed
[INFO] [stderr]  --> src/utils/priority_queue.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Item<T> {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `line_n_as_string` is never used
[INFO] [stderr]   --> src/utils/priority_queue.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl<T> Item<T> {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] 31 |     pub fn line_n_as_string(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PriorityQueue` is never constructed
[INFO] [stderr]   --> src/utils/priority_queue.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct PriorityQueue<T: Hash + Eq> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `with_capacity`, `can_insert`, `push`, and `into_sorted_items` are never used
[INFO] [stderr]   --> src/utils/priority_queue.rs:46:12
[INFO] [stderr]    |
[INFO] [stderr] 42 | / impl<T> PriorityQueue<T>
[INFO] [stderr] 43 | | where
[INFO] [stderr] 44 | |     T: Hash + Eq + Clone,
[INFO] [stderr]    | |_________________________- associated items in this implementation
[INFO] [stderr] 45 |   {
[INFO] [stderr] 46 |       pub fn with_capacity(n: usize) -> Self {
[INFO] [stderr]    |              ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |       pub fn can_insert(&self, priority: f64) -> bool {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |       pub fn push(&mut self, line_n: usize, priority: f64, item: T) {
[INFO] [stderr]    |              ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |       pub fn into_sorted_items(self) -> Vec<Item<T>> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Progress` is never constructed
[INFO] [stderr]  --> src/utils/progress.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct Progress {
[INFO] [stderr]   |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> src/utils/progress.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl Progress {
[INFO] [stderr]    | ------------- associated items in this implementation
[INFO] [stderr] 16 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn add_chunks(&mut self, n: usize) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn add_bytes(&mut self, n: usize) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn add_lines(&mut self, n: usize) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn info(&self) -> String {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn elapsed_time_as_string(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn print(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     pub fn clear(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 81 |     pub fn print_elapsed_time(&mut self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ChunkReader` is never constructed
[INFO] [stderr]   --> src/utils/reader.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct ChunkReader(Lines<BufReader<File>>);
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Task` is never constructed
[INFO] [stderr]   --> src/utils/reader.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Task {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `next`, and `send_to_channel_by_chunks` are never used
[INFO] [stderr]   --> src/utils/reader.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl ChunkReader {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new(path: &Path) -> Result<Self, std::io::Error> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn next(&mut self) -> Option<Result<String, std::io::Error>> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn send_to_channel_by_chunks(&mut self, tx: Sender<Task>, line_buffer_n: usize) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExcelChunkTask` is never constructed
[INFO] [stderr]   --> src/utils/reader.rs:73:12
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub struct ExcelChunkTask {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `column_n` and `send_to_channel_by_chunk` are never used
[INFO] [stderr]    --> src/utils/reader.rs:97:12
[INFO] [stderr]     |
[INFO] [stderr] 79  | impl<'a> ExcelReader {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 97  |     pub fn column_n(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     pub fn send_to_channel_by_chunk(self, tx: Sender<ExcelChunkTask>, size: Option<usize>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IoReader` is never constructed
[INFO] [stderr]    --> src/utils/reader.rs:135:12
[INFO] [stderr]     |
[INFO] [stderr] 135 | pub struct IoReader {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `no_header`, `top_n`, and `lines` are never used
[INFO] [stderr]    --> src/utils/reader.rs:141:12
[INFO] [stderr]     |
[INFO] [stderr] 140 | impl IoReader {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 141 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 148 |     pub fn no_header(&mut self, no_header: bool) -> &mut Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn top_n(&mut self, top_n: usize) -> &mut Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 |     pub fn lines(&self) -> Vec<String> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Re` is never constructed
[INFO] [stderr]  --> src/utils/regex.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Re(Regex);
[INFO] [stderr]   |            ^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `is_match` are never used
[INFO] [stderr]   --> src/utils/regex.rs:7:12
[INFO] [stderr]    |
[INFO] [stderr] 6  | impl Re {
[INFO] [stderr]    | ------- associated items in this implementation
[INFO] [stderr] 7  |     pub fn new(pattern: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub fn is_match(&self, v: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SortColumns` is never constructed
[INFO] [stderr]  --> src/utils/sort.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct SortColumns(Vec<SortColumn>);
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SortColumn` is never constructed
[INFO] [stderr]  --> src/utils/sort.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct SortColumn {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/sort.rs:16:12
[INFO] [stderr]     |
[INFO] [stderr] 15  | impl SortColumns {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 16  |     pub fn from(cols: &str) -> Result<Self, Box<dyn Error>> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55  |     fn col_at(&self, n: usize) -> usize {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59  |     fn ascending_at(&self, n: usize) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63  |     fn numeric_at(&self, n: usize) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67  |     pub fn sort_and_write(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 91  |     fn sort_str_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 112 |     fn sort_numeric_column(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     fn sort_str_str_columns(&self, lines: &Vec<String>, sep: char, quote: char, wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     fn sort_str_numeric_columns(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 179 |     fn sort_numeric_str_columns(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     fn sort_numeric_numeric_columns(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 254 |     pub fn sort_excel_and_write(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 276 |     fn sort_excel_str_column(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 286 |     fn sort_excel_numeric_column(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 300 |     fn sort_excel_str_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 313 |     fn sort_excel_str_numeric_columns(&self, lines: &mut Vec<Vec<Cow<str>>>, wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 331 |     fn sort_excel_numeric_str_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 349 |     fn sort_excel_numeric_numeric_columns(&self, lines: &mut [Vec<Cow<str>>], wtr: &mut Writer) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Table` is never constructed
[INFO] [stderr]  --> src/utils/table.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Table {
[INFO] [stderr]   |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `is_empty`, `add_record`, `from_records`, `print_blank`, and `print_blank_unchecked` are never used
[INFO] [stderr]   --> src/utils/table.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Table {
[INFO] [stderr]    | ---------- associated items in this implementation
[INFO] [stderr] 14 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn is_empty(&self) -> bool {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn add_record<R, T>(&mut self, row: R)
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn from_records<R, T>(rows: Vec<R>) -> Self
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub fn print_blank(self) -> CliResult {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 81 |     pub fn print_blank_unchecked(self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_file_suffix` is never used
[INFO] [stderr]   --> src/utils/to.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn is_file_suffix(f: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_valid_plain_text` is never used
[INFO] [stderr]   --> src/utils/to.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn is_valid_plain_text(f: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_valid_excel` is never used
[INFO] [stderr]   --> src/utils/to.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub fn is_valid_excel(f: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `csv_or_io_to_csv` is never used
[INFO] [stderr]   --> src/utils/to.rs:25:8
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub fn csv_or_io_to_csv(path: Option<&Path>, out: &str) -> CliResult {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `excel_to_csv` is never used
[INFO] [stderr]   --> src/utils/to.rs:51:8
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub fn excel_to_csv(path: &Path, sheet: usize, sep: &str, out: &str) -> CliResult {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `csv_to_excel` is never used
[INFO] [stderr]   --> src/utils/to.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn csv_to_excel(path: &Path, sep: char, quote: char, out: &str, no_header: bool) -> CliResult {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `io_to_excel` is never used
[INFO] [stderr]    --> src/utils/to.rs:100:8
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn io_to_excel(args: &To, out: &str) -> CliResult {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `equal_width` is never used
[INFO] [stderr]    --> src/utils/to.rs:141:4
[INFO] [stderr]     |
[INFO] [stderr] 141 | fn equal_width(lines: &Vec<Vec<&str>>) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `out_filename` is never used
[INFO] [stderr]    --> src/utils/to.rs:153:4
[INFO] [stderr]     |
[INFO] [stderr] 153 | fn out_filename(out: &str) -> PathBuf {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_excel_line` is never used
[INFO] [stderr]    --> src/utils/to.rs:163:4
[INFO] [stderr]     |
[INFO] [stderr] 163 | fn write_excel_line(
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `datetime_str` is never used
[INFO] [stderr]  --> src/utils/util.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn datetime_str() -> String {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_null` is never used
[INFO] [stderr]  --> src/utils/util.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn is_null(s: &str) -> bool {
[INFO] [stderr]   |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_frequency_table` is never used
[INFO] [stderr]   --> src/utils/util.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn print_frequency_table(names: &[String], freq: Vec<(String, usize)>) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Writer` is never constructed
[INFO] [stderr]   --> src/utils/writer.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct Writer(pub Box<dyn Write>);
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/utils/writer.rs:14:12
[INFO] [stderr]     |
[INFO] [stderr] 13  | impl Writer {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr] 14  |     pub fn new(path: &Path) -> Result<Self, Error> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 20  |     pub fn file_or_stdout(export: bool, path: &Path) -> Result<Self, Error> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29  |     pub fn stdout() -> Result<Self, Error> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34  |     pub fn append_to(out: &Path) -> Result<Self, Error> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47  |     pub fn write_bytes(&mut self, bytes: &[u8]) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52  |     pub fn write_bytes_unchecked(&mut self, bytes: &[u8]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58  |     pub fn write_header(&mut self, row: &str) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71  |     pub fn write_str<T: AsRef<str>>(&mut self, row: T) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77  |     pub fn write_str_unchecked<T: AsRef<str>>(&mut self, row: T) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83  |     pub fn write_strings<T: AsRef<str>>(&mut self, lines: &[T]) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90  |     pub fn write_strings_unchecked<T: AsRef<str>>(&mut self, lines: &[T]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 96  |     pub fn write_fields<T: AsRef<str>>(&mut self, line: &[T]) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn write_fields_unchecked<T: AsRef<str>>(&mut self, line: &[T]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 113 |     pub fn write_selected_fields<T: AsRef<str>>(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 133 |     pub fn write_selected_fields_unchecked<T: AsRef<str>>(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn write_fields_of_lines_unchecked<T: AsRef<str>>(&mut self, lines: &Vec<Vec<T>>) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn write_excel_field(&mut self, data: &Data) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 191 |     pub fn write_excel_line(&mut self, line: &[Data], sep: &[u8]) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     pub fn write_excel_line_unchecked(&mut self, line: &[Data], sep: &[u8]) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 212 |     pub fn write_excel_selected_fields(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     pub fn write_excel_selected_fields_unchecked(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 243 |     pub fn write_excel_lines(&mut self, lines: &[Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     pub fn write_excel_lines_by_ref(&mut self, lines: &[&Vec<Data>], sep: &[u8]) -> CliResult {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/utils/column.rs:47:21
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stderr]    |                     ^^^^     ------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stderr]    |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]  --> src/utils/excel.rs:8:38
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<str>> {
[INFO] [stderr]   |                                      ^^^^^^^         -------- the lifetime gets resolved as `'_`
[INFO] [stderr]   |                                      |
[INFO] [stderr]   |                                      this lifetime flows to the output
[INFO] [stderr]   |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn datatype_vec_to_str_vec(data: &[Data]) -> Vec<Cow<'_, str>> {
[INFO] [stderr]   |                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/utils/filter.rs:77:21
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stderr]    |                     ^^^^     ------ the lifetime gets resolved as `'_`
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn new(raw: &str) -> Filter<'_> {
[INFO] [stderr]    |                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `csv-txt-excel-parallel-toolkit` (lib) generated 113 warnings
[INFO] [stderr] warning: method `collect_owned` is never used
[INFO] [stderr]   --> src/utils/row_split.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl<'a> CsvRowSplitter<'a> {
[INFO] [stderr]    | --------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn collect_owned(self) -> Vec<String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `CliResultData` is never used
[INFO] [stderr]  --> src/utils/return_result.rs:1:10
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub type CliResultData = Result<Option<ResultData>, Box<dyn std::error::Error>>;
[INFO] [stderr]   |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ResultData` is never constructed
[INFO] [stderr]  --> src/utils/return_result.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct ResultData {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from`, `from_header`, `insert_header`, and `insert_record` are never used
[INFO] [stderr]   --> src/utils/return_result.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 9  | impl ResultData {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 10 |     pub fn new() -> ResultData {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub fn from(header: Vec<String>, data: Vec<Vec<String>>) -> ResultData {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn from_header(header: Vec<String>) -> ResultData {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn insert_header(&mut self, header: Vec<String>) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn insert_record(&mut self, record: Vec<String>) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `csv-txt-excel-parallel-toolkit` (bin "rsv") generated 7 warnings (3 duplicates)
[INFO] [stderr] warning: fields `used_columns` and `max_column` are never read
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub struct CompiledExpr {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] 104 |     node: Node,
[INFO] [stderr] 105 |     used_columns: Vec<usize>,
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] 106 |     max_column: usize,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CompiledExpr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `contains_column` and `max_column` are never used
[INFO] [stderr]    --> src/utils/math_expr_parser.rs:132:12
[INFO] [stderr]     |
[INFO] [stderr] 109 | impl CompiledExpr {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn contains_column(&self, col: &usize) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn max_column(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `csv-txt-excel-parallel-toolkit` (lib test) generated 105 warnings (103 duplicates)
[INFO] [stderr] warning: `csv-txt-excel-parallel-toolkit` (bin "rsv" test) generated 7 warnings (7 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rsv_lib-9de3a2e85dceb950)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test utils::math_expr_parser::tests::test_expr_parser ... ok
[INFO] [stdout] test utils::row_split::tests::test_csv_row_split ... ok
[INFO] [stdout] test utils::math_expr_parser::tests::test_ast ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rsv-39f3eef20e9f5bc2)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test utils::math_expr_parser::tests::test_ast ... ok
[INFO] [stdout] test utils::row_split::tests::test_csv_row_split ... ok
[INFO] [stdout] test utils::math_expr_parser::tests::test_expr_parser ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_count.rs (/opt/rustwide/target/debug/deps/test_count-231f71c8bae5c1ca)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_count_empty_xlsx ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--test test_count`
[INFO] [stdout] test test_count_io_header ... FAILED
[INFO] [stdout] test test_count_io_no_header ... FAILED
[INFO] [stdout] test test_count_empty_csv ... FAILED
[INFO] [stdout] test test_count_csv_no_header ... FAILED
[INFO] [stdout] test test_count_csv_header ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_empty_xlsx stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_empty_xlsx' panicked at tests/test_count.rs:47:58:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57b3a5682a12 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57b3a5682a12 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57b3a5682a12 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57b3a5682a12 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x57b3a56a7bb3 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x57b3a56a7bb3 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x57b3a567fbf3 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x57b3a567fbf3 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57b3a5682862 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57b3a5683f7c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57b3a5683dd2 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x57b3a564beb4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x57b3a564beb4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57b3a568495b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57b3a568495b - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57b3a56846f6 - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:699:13
[INFO] [stdout]   16:     0x57b3a5682f09 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57b3a56843bd - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x57b3a56a6700 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x57b3a56a676c - core::panicking::panic::h318cb8731d7e290d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:145:5
[INFO] [stdout]   20:     0x57b3a56a6679 - core::option::unwrap_failed::hb0c40146d06ba338
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:2072:5
[INFO] [stdout]   21:     0x57b3a5611cab - core::option::Option<T>::unwrap::he8a7d0f217e22f83
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:1005:21
[INFO] [stdout]   22:     0x57b3a5611cab - test_count::test_count_empty_xlsx::h838651d27e4a0476
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:47:58
[INFO] [stdout]   23:     0x57b3a5611cab - test_count::test_count_empty_xlsx::{{closure}}::h4c4c1ba18f29302e
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:46:27
[INFO] [stdout]   24:     0x57b3a5611cab - core::ops::function::FnOnce::call_once::hf88cac5126518b28
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x57b3a565163b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x57b3a565163b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   27:     0x57b3a565082e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   28:     0x57b3a565082e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   29:     0x57b3a565082e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   30:     0x57b3a565082e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   31:     0x57b3a565082e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x57b3a565082e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   33:     0x57b3a565082e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   34:     0x57b3a56143a4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   35:     0x57b3a56143a4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   36:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   37:     0x57b3a5617d7a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   38:     0x57b3a5617d7a - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   39:     0x57b3a5617d7a - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   40:     0x57b3a5617d7a - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   42:     0x57b3a5617d7a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   45:     0x57b3a56878b7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   46:     0x7b74068adaa4 - <unknown>
[INFO] [stdout]   47:     0x7b740693aa34 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_io_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_io_header' panicked at tests/test_count.rs:53:69:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57b3a5682a12 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57b3a5682a12 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57b3a5682a12 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57b3a5682a12 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x57b3a56a7bb3 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x57b3a56a7bb3 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x57b3a567fbf3 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x57b3a567fbf3 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57b3a5682862 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57b3a5683f7c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57b3a5683dd2 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x57b3a564beb4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x57b3a564beb4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57b3a568495b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57b3a568495b - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57b3a56846f6 - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:699:13
[INFO] [stdout]   16:     0x57b3a5682f09 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57b3a56843bd - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x57b3a56a6700 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x57b3a56a676c - core::panicking::panic::h318cb8731d7e290d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:145:5
[INFO] [stdout]   20:     0x57b3a56a6679 - core::option::unwrap_failed::hb0c40146d06ba338
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:2072:5
[INFO] [stdout]   21:     0x57b3a5611bcc - core::option::Option<T>::unwrap::he8a7d0f217e22f83
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:1005:21
[INFO] [stdout]   22:     0x57b3a5611bcc - test_count::test_count_io_header::hb4cc25c0e3b9c536
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:53:69
[INFO] [stdout]   23:     0x57b3a5611bcc - test_count::test_count_io_header::{{closure}}::h6d7722779a1e3216
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:52:26
[INFO] [stdout]   24:     0x57b3a5611bcc - core::ops::function::FnOnce::call_once::h936e9edf8ebb5ff0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x57b3a565163b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x57b3a565163b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   27:     0x57b3a565082e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   28:     0x57b3a565082e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   29:     0x57b3a565082e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   30:     0x57b3a565082e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   31:     0x57b3a565082e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x57b3a565082e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   33:     0x57b3a565082e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   34:     0x57b3a56143a4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   35:     0x57b3a56143a4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   36:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   37:     0x57b3a5617d7a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   38:     0x57b3a5617d7a - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   39:     0x57b3a5617d7a - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   40:     0x57b3a5617d7a - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   42:     0x57b3a5617d7a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   45:     0x57b3a56878b7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   46:     0x7b74068adaa4 - <unknown>
[INFO] [stdout]   47:     0x7b740693aa34 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_io_no_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_io_no_header' panicked at tests/test_count.rs:59:68:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57b3a5682a12 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57b3a5682a12 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57b3a5682a12 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57b3a5682a12 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x57b3a56a7bb3 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x57b3a56a7bb3 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x57b3a567fbf3 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x57b3a567fbf3 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57b3a5682862 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57b3a5683f7c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57b3a5683dd2 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x57b3a564beb4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x57b3a564beb4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57b3a568495b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57b3a568495b - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57b3a56846f6 - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:699:13
[INFO] [stdout]   16:     0x57b3a5682f09 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57b3a56843bd - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x57b3a56a6700 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x57b3a56a676c - core::panicking::panic::h318cb8731d7e290d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:145:5
[INFO] [stdout]   20:     0x57b3a56a6679 - core::option::unwrap_failed::hb0c40146d06ba338
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:2072:5
[INFO] [stdout]   21:     0x57b3a561192f - core::option::Option<T>::unwrap::he8a7d0f217e22f83
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:1005:21
[INFO] [stdout]   22:     0x57b3a561192f - test_count::test_count_io_no_header::hdc12fcf47506e9ea
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:59:68
[INFO] [stdout]   23:     0x57b3a561192f - test_count::test_count_io_no_header::{{closure}}::h29c132b10ac5c547
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:58:29
[INFO] [stdout]   24:     0x57b3a561192f - core::ops::function::FnOnce::call_once::h52cbe36ae3777c4f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x57b3a565163b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x57b3a565163b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   27:     0x57b3a565082e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   28:     0x57b3a565082e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   29:     0x57b3a565082e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   30:     0x57b3a565082e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   31:     0x57b3a565082e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x57b3a565082e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   33:     0x57b3a565082e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   34:     0x57b3a56143a4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   35:     0x57b3a56143a4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   36:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   37:     0x57b3a5617d7a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   38:     0x57b3a5617d7a - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   39:     0x57b3a5617d7a - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   40:     0x57b3a5617d7a - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   42:     0x57b3a5617d7a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   45:     0x57b3a56878b7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   46:     0x7b74068adaa4 - <unknown>
[INFO] [stdout]   47:     0x7b740693aa34 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_empty_csv stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_empty_csv' panicked at tests/test_count.rs:41:58:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57b3a5682a12 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57b3a5682a12 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57b3a5682a12 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57b3a5682a12 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x57b3a56a7bb3 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x57b3a56a7bb3 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x57b3a567fbf3 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x57b3a567fbf3 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57b3a5682862 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57b3a5683f7c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57b3a5683dd2 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x57b3a564beb4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x57b3a564beb4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57b3a568495b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57b3a568495b - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57b3a56846f6 - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:699:13
[INFO] [stdout]   16:     0x57b3a5682f09 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57b3a56843bd - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x57b3a56a6700 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x57b3a56a676c - core::panicking::panic::h318cb8731d7e290d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:145:5
[INFO] [stdout]   20:     0x57b3a56a6679 - core::option::unwrap_failed::hb0c40146d06ba338
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:2072:5
[INFO] [stdout]   21:     0x57b3a5611848 - core::option::Option<T>::unwrap::he8a7d0f217e22f83
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:1005:21
[INFO] [stdout]   22:     0x57b3a5611848 - test_count::test_count_empty_csv::hc57c6d5375c7df0b
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:41:58
[INFO] [stdout]   23:     0x57b3a5611848 - test_count::test_count_empty_csv::{{closure}}::h97317390aed76ff6
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:40:26
[INFO] [stdout]   24:     0x57b3a5611848 - core::ops::function::FnOnce::call_once::h353bc3d7d92f1684
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x57b3a565163b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x57b3a565163b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   27:     0x57b3a565082e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   28:     0x57b3a565082e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   29:     0x57b3a565082e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   30:     0x57b3a565082e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   31:     0x57b3a565082e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x57b3a565082e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   33:     0x57b3a565082e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   34:     0x57b3a56143a4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   35:     0x57b3a56143a4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   36:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   37:     0x57b3a5617d7a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   38:     0x57b3a5617d7a - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   39:     0x57b3a5617d7a - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   40:     0x57b3a5617d7a - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   42:     0x57b3a5617d7a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   45:     0x57b3a56878b7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   46:     0x7b74068adaa4 - <unknown>
[INFO] [stdout]   47:     0x7b740693aa34 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_csv_no_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_csv_no_header' panicked at tests/test_count.rs:35:69:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57b3a5682a12 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57b3a5682a12 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57b3a5682a12 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57b3a5682a12 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x57b3a56a7bb3 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x57b3a56a7bb3 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x57b3a567fbf3 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x57b3a567fbf3 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57b3a5682862 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57b3a5683f7c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57b3a5683dd2 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x57b3a564beb4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x57b3a564beb4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57b3a568495b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57b3a568495b - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57b3a56846f6 - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:699:13
[INFO] [stdout]   16:     0x57b3a5682f09 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57b3a56843bd - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x57b3a56a6700 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x57b3a56a676c - core::panicking::panic::h318cb8731d7e290d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:145:5
[INFO] [stdout]   20:     0x57b3a56a6679 - core::option::unwrap_failed::hb0c40146d06ba338
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:2072:5
[INFO] [stdout]   21:     0x57b3a5611a0f - core::option::Option<T>::unwrap::he8a7d0f217e22f83
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:1005:21
[INFO] [stdout]   22:     0x57b3a5611a0f - test_count::test_count_csv_no_header::h10a9fa56aa9dff14
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:35:69
[INFO] [stdout]   23:     0x57b3a5611a0f - test_count::test_count_csv_no_header::{{closure}}::h62d70bff36ed0456
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:34:30
[INFO] [stdout]   24:     0x57b3a5611a0f - core::ops::function::FnOnce::call_once::h53e0392894f52ee4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x57b3a565163b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x57b3a565163b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   27:     0x57b3a565082e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   28:     0x57b3a565082e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   29:     0x57b3a565082e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   30:     0x57b3a565082e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   31:     0x57b3a565082e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x57b3a565082e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   33:     0x57b3a565082e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   34:     0x57b3a56143a4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   35:     0x57b3a56143a4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   36:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   37:     0x57b3a5617d7a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   38:     0x57b3a5617d7a - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   39:     0x57b3a5617d7a - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   40:     0x57b3a5617d7a - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   42:     0x57b3a5617d7a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   45:     0x57b3a56878b7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   46:     0x7b74068adaa4 - <unknown>
[INFO] [stdout]   47:     0x7b740693aa34 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_csv_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_csv_header' panicked at tests/test_count.rs:29:70:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x57b3a5682a12 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x57b3a5682a12 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x57b3a5682a12 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x57b3a5682a12 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x57b3a56a7bb3 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x57b3a56a7bb3 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x57b3a567fbf3 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x57b3a567fbf3 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x57b3a5682862 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x57b3a5683f7c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x57b3a5683dd2 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x57b3a564beb4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x57b3a564beb4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x57b3a568495b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x57b3a568495b - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x57b3a56846f6 - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:699:13
[INFO] [stdout]   16:     0x57b3a5682f09 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x57b3a56843bd - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x57b3a56a6700 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x57b3a56a676c - core::panicking::panic::h318cb8731d7e290d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:145:5
[INFO] [stdout]   20:     0x57b3a56a6679 - core::option::unwrap_failed::hb0c40146d06ba338
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:2072:5
[INFO] [stdout]   21:     0x57b3a5611aec - core::option::Option<T>::unwrap::he8a7d0f217e22f83
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/option.rs:1005:21
[INFO] [stdout]   22:     0x57b3a5611aec - test_count::test_count_csv_header::ha4b69c81a9d36f2d
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:29:70
[INFO] [stdout]   23:     0x57b3a5611aec - test_count::test_count_csv_header::{{closure}}::h5ccf9bd5c05472ae
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:28:27
[INFO] [stdout]   24:     0x57b3a5611aec - core::ops::function::FnOnce::call_once::h713f71168eee105e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x57b3a565163b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x57b3a565163b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   27:     0x57b3a565082e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   28:     0x57b3a565082e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   29:     0x57b3a565082e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   30:     0x57b3a565082e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   31:     0x57b3a565082e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x57b3a565082e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   33:     0x57b3a565082e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   34:     0x57b3a56143a4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   35:     0x57b3a56143a4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   36:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   37:     0x57b3a5617d7a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   38:     0x57b3a5617d7a - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   39:     0x57b3a5617d7a - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   40:     0x57b3a5617d7a - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x57b3a5617d7a - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   42:     0x57b3a5617d7a - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x57b3a56878b7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   45:     0x57b3a56878b7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   46:     0x7b74068adaa4 - <unknown>
[INFO] [stdout]   47:     0x7b740693aa34 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_count_csv_header
[INFO] [stdout]     test_count_csv_no_header
[INFO] [stdout]     test_count_empty_csv
[INFO] [stdout]     test_count_empty_xlsx
[INFO] [stdout]     test_count_io_header
[INFO] [stdout]     test_count_io_no_header
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6d82834ee9a65fdb26f316d235db5bbbe41202614595694dfaa4b99d06338679", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d82834ee9a65fdb26f316d235db5bbbe41202614595694dfaa4b99d06338679", kill_on_drop: false }`
[INFO] [stdout] 6d82834ee9a65fdb26f316d235db5bbbe41202614595694dfaa4b99d06338679
