[INFO] fetching crate csv-txt-excel-parallel-toolkit 0.4.16...
[INFO] testing csv-txt-excel-parallel-toolkit-0.4.16 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate csv-txt-excel-parallel-toolkit 0.4.16 into /workspace/builds/worker-1-tc2/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-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate csv-txt-excel-parallel-toolkit 0.4.16 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3df447240a418f79bfb74a49c6ebb717ee9748b7f1b01bc0119c11f53bf82ba2
[INFO] running `Command { std: "docker" "start" "-a" "3df447240a418f79bfb74a49c6ebb717ee9748b7f1b01bc0119c11f53bf82ba2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3df447240a418f79bfb74a49c6ebb717ee9748b7f1b01bc0119c11f53bf82ba2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3df447240a418f79bfb74a49c6ebb717ee9748b7f1b01bc0119c11f53bf82ba2", kill_on_drop: false }`
[INFO] [stdout] 3df447240a418f79bfb74a49c6ebb717ee9748b7f1b01bc0119c11f53bf82ba2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4283905e373833c059aa11dd6063eaac52238a82118c9df6f2e7cb1d44ba780e
[INFO] running `Command { std: "docker" "start" "-a" "4283905e373833c059aa11dd6063eaac52238a82118c9df6f2e7cb1d44ba780e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling prettyplease v0.2.33
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling cc v1.2.26
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.8
[INFO] [stderr]    Compiling bumpalo v3.18.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling zopfli v0.8.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling clap_builder v4.5.40
[INFO] [stderr]    Compiling papergrid v0.17.0
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling testing_table v0.3.0
[INFO] [stderr]    Compiling quick-xml v0.31.0
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling codepage v0.1.2
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling tabled_derive v0.11.0
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling tabled v0.20.0
[INFO] [stderr]    Compiling calamine v0.26.1
[INFO] [stderr]    Compiling clap v4.5.40
[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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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 42.32s
[INFO] running `Command { std: "docker" "inspect" "4283905e373833c059aa11dd6063eaac52238a82118c9df6f2e7cb1d44ba780e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4283905e373833c059aa11dd6063eaac52238a82118c9df6f2e7cb1d44ba780e", kill_on_drop: false }`
[INFO] [stdout] 4283905e373833c059aa11dd6063eaac52238a82118c9df6f2e7cb1d44ba780e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b5ebf053611e679dd3116fdd4dd52741f5b7d790b772b618bc36cdd27cdc76fd
[INFO] running `Command { std: "docker" "start" "-a" "b5ebf053611e679dd3116fdd4dd52741f5b7d790b772b618bc36cdd27cdc76fd", 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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/column.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stdout]   |                                      |
[INFO] [stdout]   |                                      the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/filter.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stdout]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type 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 4.54s
[INFO] running `Command { std: "docker" "inspect" "b5ebf053611e679dd3116fdd4dd52741f5b7d790b772b618bc36cdd27cdc76fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b5ebf053611e679dd3116fdd4dd52741f5b7d790b772b618bc36cdd27cdc76fd", kill_on_drop: false }`
[INFO] [stdout] b5ebf053611e679dd3116fdd4dd52741f5b7d790b772b618bc36cdd27cdc76fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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" "-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3deb1bb9fea34657b9f4aa4ec18667cc6d734bda06b46e167cdb8178b337cf0b
[INFO] running `Command { std: "docker" "start" "-a" "3deb1bb9fea34657b9f4aa4ec18667cc6d734bda06b46e167cdb8178b337cf0b", 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)]` (part of `#[warn(unused)]`) 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/utils/column.rs:47:21
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn new(raw: &str) -> Columns {
[INFO] [stderr]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn new(raw: &str) -> Columns<'_> {
[INFO] [stderr]    |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is 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 same lifetime is hidden here
[INFO] [stderr]   |                                      |
[INFO] [stderr]   |                                      the lifetime is elided here
[INFO] [stderr]   |
[INFO] [stderr]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type 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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/utils/filter.rs:77:21
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn new(raw: &str) -> Filter {
[INFO] [stderr]    |                     ^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type 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 (run `cargo fix --lib -p csv-txt-excel-parallel-toolkit` to apply 3 suggestions)
[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)]` (part of `#[warn(unused)]`) 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.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rsv_lib-c14b25bb3ba700a9)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test utils::math_expr_parser::tests::test_ast ... ok
[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] 
[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-976383ed89bab893)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test utils::math_expr_parser::tests::test_ast ... ok
[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] 
[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-c319731ad825c717)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_count_empty_csv ... FAILED
[INFO] [stdout] test test_count_io_no_header ... FAILED
[INFO] [stdout] test test_count_empty_xlsx ... FAILED
[INFO] [stdout] test test_count_csv_no_header ... FAILED
[INFO] [stdout] test test_count_csv_header ... FAILED
[INFO] [stdout] test test_count_io_header ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_empty_csv stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_empty_csv' (35) panicked at tests/test_count.rs:41:58:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58bd76b9b162 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58bd76baf9ba - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58bd76baf9ba - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x58bd76b9ff66 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58bd76b9ff66 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58bd76b7981f - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58bd76b7981f - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58bd76b93499 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58bd76b2d1be - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x58bd76b2d1be - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x58bd76b93652 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x58bd76b93652 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58bd76b7990a - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x58bd76b6eac9 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58bd76b7a72d - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58bd76bb008c - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58bd76bb0052 - core[585f66e14d78f9ba]::panicking::panic
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x58bd76bafde9 - core[585f66e14d78f9ba]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:2199:5
[INFO] [stdout]   21:     0x58bd76b1c91e - <core[585f66e14d78f9ba]::option::Option<usize>>::unwrap
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x58bd76b1c91e - test_count[31aa527bac4a4f42]::test_count_empty_csv
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:41:58
[INFO] [stdout]   23:     0x58bd76b1bde7 - test_count[31aa527bac4a4f42]::test_count_empty_csv::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:40:26
[INFO] [stdout]   24:     0x58bd76b21356 - <test_count[31aa527bac4a4f42]::test_count_empty_csv::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58bd76b2156b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x58bd76b2156b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x58bd76b2ddca - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x58bd76b28294 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x58bd76b28294 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x58bd76b308c2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x58bd76b308c2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x58bd76b9aa0f - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x58bd76b9aa0f - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7f849c5b0aa4 - <unknown>
[INFO] [stdout]   46:     0x7f849c63da64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_io_no_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_io_no_header' (43) panicked at tests/test_count.rs:59:68:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58bd76b9b162 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58bd76baf9ba - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58bd76baf9ba - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x58bd76b9ff66 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58bd76b9ff66 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58bd76b7981f - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58bd76b7981f - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58bd76b93499 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58bd76b2d1be - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x58bd76b2d1be - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x58bd76b93652 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x58bd76b93652 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58bd76b7990a - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x58bd76b6eac9 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58bd76b7a72d - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58bd76bb008c - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58bd76bb0052 - core[585f66e14d78f9ba]::panicking::panic
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x58bd76bafde9 - core[585f66e14d78f9ba]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:2199:5
[INFO] [stdout]   21:     0x58bd76b1ce21 - <core[585f66e14d78f9ba]::option::Option<usize>>::unwrap
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x58bd76b1ce21 - test_count[31aa527bac4a4f42]::test_count_io_no_header
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:59:68
[INFO] [stdout]   23:     0x58bd76b1bea7 - test_count[31aa527bac4a4f42]::test_count_io_no_header::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:58:29
[INFO] [stdout]   24:     0x58bd76b21456 - <test_count[31aa527bac4a4f42]::test_count_io_no_header::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58bd76b2156b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x58bd76b2156b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x58bd76b2ddca - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x58bd76b28294 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x58bd76b28294 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x58bd76b308c2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x58bd76b308c2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x58bd76b9aa0f - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x58bd76b9aa0f - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7f849c5b0aa4 - <unknown>
[INFO] [stdout]   46:     0x7f849c63da64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_empty_xlsx stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_empty_xlsx' (36) panicked at tests/test_count.rs:47:58:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58bd76b9b162 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58bd76baf9ba - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58bd76baf9ba - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x58bd76b9ff66 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58bd76b9ff66 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58bd76b7981f - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58bd76b7981f - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58bd76b93499 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58bd76b2d1be - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x58bd76b2d1be - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x58bd76b93652 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x58bd76b93652 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58bd76b7990a - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x58bd76b6eac9 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58bd76b7a72d - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58bd76bb008c - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58bd76bb0052 - core[585f66e14d78f9ba]::panicking::panic
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x58bd76bafde9 - core[585f66e14d78f9ba]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:2199:5
[INFO] [stdout]   21:     0x58bd76b1cce1 - <core[585f66e14d78f9ba]::option::Option<usize>>::unwrap
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x58bd76b1cce1 - test_count[31aa527bac4a4f42]::test_count_empty_xlsx
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:47:58
[INFO] [stdout]   23:     0x58bd76b1be77 - test_count[31aa527bac4a4f42]::test_count_empty_xlsx::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:46:27
[INFO] [stdout]   24:     0x58bd76b21416 - <test_count[31aa527bac4a4f42]::test_count_empty_xlsx::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58bd76b2156b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x58bd76b2156b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x58bd76b2ddca - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stderr] error: test failed, to rerun pass `--test test_count`
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x58bd76b28294 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x58bd76b28294 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x58bd76b308c2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x58bd76b308c2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x58bd76b9aa0f - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x58bd76b9aa0f - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7f849c5b0aa4 - <unknown>
[INFO] [stdout]   46:     0x7f849c63da64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_csv_no_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_csv_no_header' (34) panicked at tests/test_count.rs:35:69:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58bd76b9b162 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58bd76baf9ba - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58bd76baf9ba - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x58bd76b9ff66 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58bd76b9ff66 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58bd76b7981f - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58bd76b7981f - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58bd76b93499 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58bd76b2d1be - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x58bd76b2d1be - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x58bd76b93652 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x58bd76b93652 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58bd76b7990a - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x58bd76b6eac9 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58bd76b7a72d - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58bd76bb008c - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58bd76bb0052 - core[585f66e14d78f9ba]::panicking::panic
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x58bd76bafde9 - core[585f66e14d78f9ba]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:2199:5
[INFO] [stdout]   21:     0x58bd76b1cf61 - <core[585f66e14d78f9ba]::option::Option<usize>>::unwrap
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x58bd76b1cf61 - test_count[31aa527bac4a4f42]::test_count_csv_no_header
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:35:69
[INFO] [stdout]   23:     0x58bd76b1bed7 - test_count[31aa527bac4a4f42]::test_count_csv_no_header::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:34:30
[INFO] [stdout]   24:     0x58bd76b21496 - <test_count[31aa527bac4a4f42]::test_count_csv_no_header::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58bd76b2156b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x58bd76b2156b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x58bd76b2ddca - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x58bd76b28294 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x58bd76b28294 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x58bd76b308c2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x58bd76b308c2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x58bd76b9aa0f - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x58bd76b9aa0f - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7f849c5b0aa4 - <unknown>
[INFO] [stdout]   46:     0x7f849c63da64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_csv_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_csv_header' (33) panicked at tests/test_count.rs:29:70:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58bd76b9b162 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58bd76baf9ba - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58bd76baf9ba - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x58bd76b9ff66 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58bd76b9ff66 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58bd76b7981f - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58bd76b7981f - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58bd76b93499 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58bd76b2d1be - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x58bd76b2d1be - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x58bd76b93652 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x58bd76b93652 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58bd76b7990a - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x58bd76b6eac9 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58bd76b7a72d - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58bd76bb008c - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58bd76bb0052 - core[585f66e14d78f9ba]::panicking::panic
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x58bd76bafde9 - core[585f66e14d78f9ba]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:2199:5
[INFO] [stdout]   21:     0x58bd76b1cb9e - <core[585f66e14d78f9ba]::option::Option<usize>>::unwrap
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x58bd76b1cb9e - test_count[31aa527bac4a4f42]::test_count_csv_header
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:29:70
[INFO] [stdout]   23:     0x58bd76b1be47 - test_count[31aa527bac4a4f42]::test_count_csv_header::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:28:27
[INFO] [stdout]   24:     0x58bd76b213d6 - <test_count[31aa527bac4a4f42]::test_count_csv_header::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58bd76b2156b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x58bd76b2156b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x58bd76b2ddca - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x58bd76b28294 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x58bd76b28294 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x58bd76b308c2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x58bd76b308c2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x58bd76b9aa0f - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x58bd76b9aa0f - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7f849c5b0aa4 - <unknown>
[INFO] [stdout]   46:     0x7f849c63da64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_count_io_header stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_count_io_header' (39) panicked at tests/test_count.rs:53:69:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::backtrace_rs::backtrace::trace_unsynchronized::<std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58bd76b9b162 - std[3f03f8b59f91bef1]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58bd76b9b162 - <<std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[585f66e14d78f9ba]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58bd76baf9ba - <core[585f66e14d78f9ba]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58bd76baf9ba - core[585f66e14d78f9ba]::fmt::write
[INFO] [stdout]    6:     0x58bd76b9ff66 - std[3f03f8b59f91bef1]::io::default_write_fmt::<alloc[15e7b27aba85d2e2]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58bd76b9ff66 - <alloc[15e7b27aba85d2e2]::vec::Vec<u8> as std[3f03f8b59f91bef1]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58bd76b7981f - <std[3f03f8b59f91bef1]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58bd76b7981f - std[3f03f8b59f91bef1]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58bd76b93499 - std[3f03f8b59f91bef1]::panicking::default_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x58bd76b2d1be - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x58bd76b2d1be - test[30224e0cb089acd2]::test_main_with_exit_callback::<test[30224e0cb089acd2]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x58bd76b93652 - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn for<'a, 'b> core[585f66e14d78f9ba]::ops::function::Fn<(&'a std[3f03f8b59f91bef1]::panic::PanicHookInfo<'b>,), Output = ()> + core[585f66e14d78f9ba]::marker::Sync + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::Fn<(&std[3f03f8b59f91bef1]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x58bd76b93652 - std[3f03f8b59f91bef1]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x58bd76b7990a - std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x58bd76b6eac9 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_end_short_backtrace::<std[3f03f8b59f91bef1]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x58bd76b7a72d - __rustc[caa99d26c7bae192]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x58bd76bb008c - core[585f66e14d78f9ba]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x58bd76bb0052 - core[585f66e14d78f9ba]::panicking::panic
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x58bd76bafde9 - core[585f66e14d78f9ba]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:2199:5
[INFO] [stdout]   21:     0x58bd76b1ca61 - <core[585f66e14d78f9ba]::option::Option<usize>>::unwrap
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x58bd76b1ca61 - test_count[31aa527bac4a4f42]::test_count_io_header
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:53:69
[INFO] [stdout]   23:     0x58bd76b1be17 - test_count[31aa527bac4a4f42]::test_count_io_header::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/test_count.rs:52:26
[INFO] [stdout]   24:     0x58bd76b21396 - <test_count[31aa527bac4a4f42]::test_count_io_header::{closure#0} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x58bd76b2156b - <fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x58bd76b2156b - test[30224e0cb089acd2]::__rust_begin_short_backtrace::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, fn() -> core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:663:18
[INFO] [stdout]   27:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:74
[INFO] [stdout]   28:     0x58bd76b2ddca - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   29:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panicking::catch_unwind::<core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>, core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x58bd76b2ddca - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<test[30224e0cb089acd2]::run_test_in_process::{closure#0}>, core[585f66e14d78f9ba]::result::Result<(), alloc[15e7b27aba85d2e2]::string::String>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test_in_process
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:686:27
[INFO] [stdout]   33:     0x58bd76b2ddca - test[30224e0cb089acd2]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:607:43
[INFO] [stdout]   34:     0x58bd76b28294 - test[30224e0cb089acd2]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/test/src/lib.rs:637:41
[INFO] [stdout]   35:     0x58bd76b28294 - std[3f03f8b59f91bef1]::sys::backtrace::__rust_begin_short_backtrace::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   37:     0x58bd76b308c2 - <core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   38:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::do_call::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panicking::catch_unwind::<(), core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::panic::catch_unwind::<core[585f66e14d78f9ba]::panic::unwind_safe::AssertUnwindSafe<std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x58bd76b308c2 - std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked::<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   42:     0x58bd76b308c2 - <std[3f03f8b59f91bef1]::thread::lifecycle::spawn_unchecked<test[30224e0cb089acd2]::run_test::{closure#1}, ()>::{closure#1} as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x58bd76b9aa0f - <alloc[15e7b27aba85d2e2]::boxed::Box<dyn core[585f66e14d78f9ba]::ops::function::FnOnce<(), Output = ()> + core[585f66e14d78f9ba]::marker::Send> as core[585f66e14d78f9ba]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   44:     0x58bd76b9aa0f - <std[3f03f8b59f91bef1]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/db823df02fd0c2cf67b43025ac3fef3f2d743245/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   45:     0x7f849c5b0aa4 - <unknown>
[INFO] [stdout]   46:     0x7f849c63da64 - clone
[INFO] [stdout]   47:                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.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3deb1bb9fea34657b9f4aa4ec18667cc6d734bda06b46e167cdb8178b337cf0b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3deb1bb9fea34657b9f4aa4ec18667cc6d734bda06b46e167cdb8178b337cf0b", kill_on_drop: false }`
[INFO] [stdout] 3deb1bb9fea34657b9f4aa4ec18667cc6d734bda06b46e167cdb8178b337cf0b
