[INFO] cloning repository https://github.com/svenslaggare/metricsdb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/svenslaggare/metricsdb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsvenslaggare%2Fmetricsdb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsvenslaggare%2Fmetricsdb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1c4980a30ad28e3b08157c572a36a4f88dab794d
[INFO] checking svenslaggare/metricsdb against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsvenslaggare%2Fmetricsdb" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/svenslaggare/metricsdb
[INFO] finished tweaking git repo https://github.com/svenslaggare/metricsdb
[INFO] tweaked toml for git repo https://github.com/svenslaggare/metricsdb written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/svenslaggare/metricsdb on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/svenslaggare/metricsdb 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unsafe-libyaml v0.2.4
[INFO] [stderr]   Downloaded dashmap v5.4.0
[INFO] [stderr]   Downloaded tdigest v0.2.3
[INFO] [stderr]   Downloaded ordered-float v2.10.0
[INFO] [stderr]   Downloaded gethostname v0.4.0
[INFO] [stderr]   Downloaded axum-core v0.3.0-rc.2
[INFO] [stderr]   Downloaded matchit v0.6.0
[INFO] [stderr]   Downloaded serde_yaml v0.9.14
[INFO] [stderr]   Downloaded tower-http v0.3.4
[INFO] [stderr]   Downloaded axum v0.6.0-rc.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 711097370e14835465448062a95757ee43c45b850f4523b9186c5832462bed30
[INFO] running `Command { std: "docker" "start" "-a" "711097370e14835465448062a95757ee43c45b850f4523b9186c5832462bed30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "711097370e14835465448062a95757ee43c45b850f4523b9186c5832462bed30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "711097370e14835465448062a95757ee43c45b850f4523b9186c5832462bed30", kill_on_drop: false }`
[INFO] [stdout] 711097370e14835465448062a95757ee43c45b850f4523b9186c5832462bed30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7f2d0c0e535224e6e59484e227056b2533c8db70f0c832d156e465fa8dec4c93
[INFO] running `Command { std: "docker" "start" "-a" "7f2d0c0e535224e6e59484e227056b2533c8db70f0c832d156e465fa8dec4c93", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.47
[INFO] [stderr]    Compiling syn v1.0.104
[INFO] [stderr]     Checking bytes v1.2.1
[INFO] [stderr]    Compiling futures-core v0.3.24
[INFO] [stderr]    Compiling tokio v1.21.2
[INFO] [stderr]    Compiling futures-task v0.3.24
[INFO] [stderr]     Checking socket2 v0.4.7
[INFO] [stderr]    Compiling cc v1.0.74
[INFO] [stderr]    Compiling futures-util v0.3.24
[INFO] [stderr]     Checking parking_lot_core v0.9.3
[INFO] [stderr]     Checking tracing-core v0.1.30
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling serde_derive v1.0.148
[INFO] [stderr]    Compiling slab v0.4.7
[INFO] [stderr]    Compiling serde v1.0.148
[INFO] [stderr]    Compiling openssl v0.10.42
[INFO] [stderr]    Compiling futures-channel v0.3.24
[INFO] [stderr]     Checking futures-sink v0.3.25
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling native-tls v0.2.10
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking form_urlencoded v1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.81
[INFO] [stderr]    Compiling async-trait v0.1.57
[INFO] [stderr]     Checking unicode-normalization v0.1.22
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]     Checking http v0.2.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking http-range-header v0.3.0
[INFO] [stderr]     Checking matchit v0.6.0
[INFO] [stderr]     Checking fastrand v1.8.0
[INFO] [stderr]     Checking unsafe-libyaml v0.2.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking tracing v0.1.37
[INFO] [stderr]     Checking ipnet v2.5.0
[INFO] [stderr]     Checking dashmap v5.4.0
[INFO] [stderr]     Checking gethostname v0.4.0
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]    Compiling openssl-sys v0.9.77
[INFO] [stderr]     Checking http-body v0.4.5
[INFO] [stderr]     Checking ordered-float v2.10.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking url v2.3.1
[INFO] [stderr]     Checking tdigest v0.2.3
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]     Checking axum-core v0.3.0-rc.2
[INFO] [stderr]     Checking pin-project v1.0.12
[INFO] [stderr]     Checking tokio-util v0.7.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tower-http v0.3.4
[INFO] [stderr]     Checking h2 v0.3.15
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_yaml v0.9.14
[INFO] [stderr]     Checking hyper v0.14.20
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking axum v0.6.0-rc.2
[INFO] [stderr]     Checking reqwest v0.11.12
[INFO] [stderr]     Checking metricsdb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `approx_datapoint_count_for_time_range` is never used
[INFO] [stdout]    --> src/metric/helpers.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn approx_datapoint_count_for_time_range<TStorage: MetricStorage<E>, E: Copy>(storage: &TStorage,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestMetricsEngine` is never constructed
[INFO] [stdout]    --> src/engine/querying.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | struct TestMetricsEngine {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/engine/querying.rs:514:12
[INFO] [stdout]     |
[INFO] [stdout] 513 | impl TestMetricsEngine {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 514 |     pub fn new(metric_values: Vec<(String, OperationResult)>) -> TestMetricsEngine {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/metric/common.rs:132:93
[INFO] [stdout]     |
[INFO] [stdout] 132 | ...>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout]     |       --                     --                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                          ^^ the same lifetime is elided here
[INFO] [stdout]     |       |                      |                                     |
[INFO] [stdout]     |       |                      the lifetime is named here            the same lifetime is elided here
[INFO] [stdout]     |       the lifetime is named 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 -     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout] 132 +     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&'a PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + 'a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompareOperation` and `FilterExpression`
[INFO] [stdout]   --> src/bin/dev.rs:12:58
[INFO] [stdout]    |
[INFO] [stdout] 12 | use metricsdb::metric::expression::{ArithmeticOperation, CompareOperation, FilterExpression, Function, TransformExpression};
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]   --> src/bin/dev.rs:48:39
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]    |                                       ^         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 48 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bin/dev.rs:142:39
[INFO] [stdout]     |
[INFO] [stdout] 142 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 142 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bin/dev.rs:225:39
[INFO] [stdout]     |
[INFO] [stdout] 225 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 225 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 225 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bin/dev.rs:266:39
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 266 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 266 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompareOperation` and `FilterExpression`
[INFO] [stdout]   --> src/bin/dev.rs:12:58
[INFO] [stdout]    |
[INFO] [stdout] 12 | use metricsdb::metric::expression::{ArithmeticOperation, CompareOperation, FilterExpression, Function, TransformExpression};
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]   --> src/bin/dev.rs:48:39
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]    |                                       ^         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 48 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bin/dev.rs:142:39
[INFO] [stdout]     |
[INFO] [stdout] 142 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 142 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bin/dev.rs:225:39
[INFO] [stdout]     |
[INFO] [stdout] 225 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 225 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 225 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/bin/dev.rs:266:39
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                       ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 266 -             let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 266 +             let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_count` is never used
[INFO] [stdout]    --> src/bin/dev.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn main_count() {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_ratio` is never used
[INFO] [stdout]    --> src/bin/dev.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn main_ratio() {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_engine` is never used
[INFO] [stdout]    --> src/bin/dev.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn main_engine() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_engine_existing1` is never used
[INFO] [stdout]    --> src/bin/dev.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn main_engine_existing1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_engine_existing2` is never used
[INFO] [stdout]    --> src/bin/dev.rs:331:4
[INFO] [stdout]     |
[INFO] [stdout] 331 | fn main_engine_existing2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_count` is never used
[INFO] [stdout]    --> src/bin/dev.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn main_count() {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_ratio` is never used
[INFO] [stdout]    --> src/bin/dev.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn main_ratio() {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_engine` is never used
[INFO] [stdout]    --> src/bin/dev.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn main_engine() {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_engine_existing1` is never used
[INFO] [stdout]    --> src/bin/dev.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn main_engine_existing1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main_engine_existing2` is never used
[INFO] [stdout]    --> src/bin/dev.rs:331:4
[INFO] [stdout]     |
[INFO] [stdout] 331 | fn main_engine_existing2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `approx_datapoint_count_for_time_range` is never used
[INFO] [stdout]    --> src/metric/helpers.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn approx_datapoint_count_for_time_range<TStorage: MetricStorage<E>, E: Copy>(storage: &TStorage,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/metric/common.rs:132:93
[INFO] [stdout]     |
[INFO] [stdout] 132 | ...>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout]     |       --                     --                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                          ^^ the same lifetime is elided here
[INFO] [stdout]     |       |                      |                                     |
[INFO] [stdout]     |       |                      the lifetime is named here            the same lifetime is elided here
[INFO] [stdout]     |       the lifetime is named 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 -     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout] 132 +     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&'a PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + 'a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]   --> src/integration_tests.rs:72:35
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]    |                                   ^         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 72 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 72 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]   --> src/integration_tests.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]    |                                   ^         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 97 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:238:35
[INFO] [stdout]     |
[INFO] [stdout] 238 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 238 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:271:35
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 271 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 271 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:333:35
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 333 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 333 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:360:35
[INFO] [stdout]     |
[INFO] [stdout] 360 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 360 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 360 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:389:35
[INFO] [stdout]     |
[INFO] [stdout] 389 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 389 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 389 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:426:35
[INFO] [stdout]     |
[INFO] [stdout] 426 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 426 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 426 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:693:35
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 693 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 693 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:720:35
[INFO] [stdout]     |
[INFO] [stdout] 720 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 720 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 720 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:827:35
[INFO] [stdout]     |
[INFO] [stdout] 827 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 827 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 827 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:858:35
[INFO] [stdout]     |
[INFO] [stdout] 858 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 858 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 858 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:890:35
[INFO] [stdout]     |
[INFO] [stdout] 890 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 890 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 890 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:931:35
[INFO] [stdout]     |
[INFO] [stdout] 931 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 931 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 931 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/integration_tests.rs:978:35
[INFO] [stdout]     |
[INFO] [stdout] 978 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]     |                                   ^         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 978 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 978 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]     --> src/integration_tests.rs:1025:35
[INFO] [stdout]      |
[INFO] [stdout] 1025 |         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout]      |                                   ^         ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1025 -         let tags = vec![tags_list[(index % 2)].to_owned()];
[INFO] [stdout] 1025 +         let tags = vec![tags_list[index % 2 ].to_owned()];
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TimeMeasurementUnit` is never used
[INFO] [stdout]  --> src/helpers.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum TimeMeasurementUnit {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimeMeasurement` is never constructed
[INFO] [stdout]  --> src/helpers.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TimeMeasurement {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `elapsed_seconds`, `elapsed_ms`, and `elapsed_micro` are never used
[INFO] [stdout]   --> src/helpers.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl TimeMeasurement {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(pattern: &str, unit: TimeMeasurementUnit) -> TimeMeasurement {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn elapsed_seconds(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn elapsed_ms(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn elapsed_micro(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `num_segments` is never used
[INFO] [stdout]   --> src/storage/mod.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait MetricStorage<E: Copy> {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn num_segments(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/storage/memory_file.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     FailedToMap(std::io::Error),
[INFO] [stdout]   |     ----------- ^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MemoryFileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     FailedToMap(std::io::Error),
[INFO] [stdout] 9 +     FailedToMap(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/storage/memory_file.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 |     IO(std::io::Error)
[INFO] [stdout]    |     -- ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryFileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     IO(std::io::Error)
[INFO] [stdout] 11 +     IO(())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_multi_ref` is never used
[INFO] [stdout]   --> src/model.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl GroupKey {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn from_multi_ref(keys: &[&str]) -> GroupKey {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_ref` is never used
[INFO] [stdout]   --> src/model.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl GroupValue {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 93 |     pub fn from_ref(value: &str) -> GroupValue {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_tags_filter`, `with_input_filter`, `with_input_transform`, `with_output_filter`, `with_output_transform`, and `with_group_by` are never used
[INFO] [stdout]    --> src/model.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl Query {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn with_tags_filter(self, tags: TagsFilter) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn with_input_filter(self, filter: FilterExpression) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn with_input_transform(self, transform: TransformExpression) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn with_output_filter(self, filter: FilterExpression) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn with_output_transform(self, transform: TransformExpression) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn with_group_by(self, key: GroupKey) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:207:27
[INFO] [stdout]     |
[INFO] [stdout] 207 |     FailedToCreateBaseDir(std::io::Error),
[INFO] [stdout]     |     --------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 207 -     FailedToCreateBaseDir(std::io::Error),
[INFO] [stdout] 207 +     FailedToCreateBaseDir(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:208:24
[INFO] [stdout]     |
[INFO] [stdout] 208 |     FailedToLoadMetric(std::io::Error),
[INFO] [stdout]     |     ------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 208 -     FailedToLoadMetric(std::io::Error),
[INFO] [stdout] 208 +     FailedToLoadMetric(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:209:24
[INFO] [stdout]     |
[INFO] [stdout] 209 |     FailedToLoadConfig(std::io::Error),
[INFO] [stdout]     |     ------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 209 -     FailedToLoadConfig(std::io::Error),
[INFO] [stdout] 209 +     FailedToLoadConfig(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:210:24
[INFO] [stdout]     |
[INFO] [stdout] 210 |     FailedToSaveConfig(std::io::Error),
[INFO] [stdout]     |     ------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 210 -     FailedToSaveConfig(std::io::Error),
[INFO] [stdout] 210 +     FailedToSaveConfig(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:211:21
[INFO] [stdout]     |
[INFO] [stdout] 211 |     MemoryFileError(MemoryFileError),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 211 -     MemoryFileError(MemoryFileError),
[INFO] [stdout] 211 +     MemoryFileError(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:213:28
[INFO] [stdout]     |
[INFO] [stdout] 213 |     FailedToSavePrimaryTag(std::io::Error),
[INFO] [stdout]     |     ---------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 213 -     FailedToSavePrimaryTag(std::io::Error),
[INFO] [stdout] 213 +     FailedToSavePrimaryTag(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:214:28
[INFO] [stdout]     |
[INFO] [stdout] 214 |     FailedToLoadPrimaryTag(std::io::Error),
[INFO] [stdout]     |     ---------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 214 -     FailedToLoadPrimaryTag(std::io::Error),
[INFO] [stdout] 214 +     FailedToLoadPrimaryTag(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:215:30
[INFO] [stdout]     |
[INFO] [stdout] 215 |     FailedToLoadSecondaryTag(std::io::Error),
[INFO] [stdout]     |     ------------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 215 -     FailedToLoadSecondaryTag(std::io::Error),
[INFO] [stdout] 215 +     FailedToLoadSecondaryTag(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     FailedToCreateMetric(std::io::Error),
[INFO] [stdout]     |     -------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 216 -     FailedToCreateMetric(std::io::Error),
[INFO] [stdout] 216 +     FailedToCreateMetric(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:217:26
[INFO] [stdout]     |
[INFO] [stdout] 217 |     FailedToRemoveMetric(std::io::Error),
[INFO] [stdout]     |     -------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 217 -     FailedToRemoveMetric(std::io::Error),
[INFO] [stdout] 217 +     FailedToRemoveMetric(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `primary_tags` are never used
[INFO] [stdout]    --> src/metric/gauge.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl<TStorage: MetricStorage<f32>> GaugeMetric<TStorage> {
[INFO] [stdout]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  80 |     pub fn new(base_path: &Path) -> MetricResult<GaugeMetric<TStorage>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn primary_tags(&self) -> impl Iterator<Item=&PrimaryTag> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `primary_tags` are never used
[INFO] [stdout]   --> src/metric/count.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<TStorage: MetricStorage<u32>> CountMetric<TStorage> {
[INFO] [stdout]    | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(base_path: &Path) -> MetricResult<CountMetric<TStorage>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn primary_tags(&self) -> impl Iterator<Item=&PrimaryTag> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `primary_tags` are never used
[INFO] [stdout]   --> src/metric/ratio.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl<TStorage: MetricStorage<RatioU32>> RatioMetric<TStorage> {
[INFO] [stdout]    | ------------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new(base_path: &Path) -> MetricResult<RatioMetric<TStorage>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn primary_tags(&self) -> impl Iterator<Item=&PrimaryTag> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stats` is never used
[INFO] [stdout]   --> src/metric/common.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait GenericMetric {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 44 |     fn stats(&self);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `stats`, and `primary_tags` are never used
[INFO] [stdout]    --> src/metric/common.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl<TStorage: MetricStorage<E>, E: Copy> PrimaryTagsStorage<TStorage, E> {
[INFO] [stdout]     | ------------------------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  76 |     pub fn new(base_path: &Path, metric_type: MetricType) -> MetricResult<PrimaryTagsStorage<TStorage, E>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn stats(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn primary_tags(&self) -> impl Iterator<Item=&PrimaryTag> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `approx_datapoint_count_for_time_range` is never used
[INFO] [stdout]    --> src/metric/helpers.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn approx_datapoint_count_for_time_range<TStorage: MetricStorage<E>, E: Copy>(storage: &TStorage,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `min`, and `max` are never used
[INFO] [stdout]    --> src/metric/helpers.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | impl<T: MinMax + Copy> TimeRangeStatistics<T> {
[INFO] [stdout]     | --------------------------------------------- associated items in this implementation
[INFO] [stdout] 171 |     pub fn new(count: usize, min: T, max: T) -> TimeRangeStatistics<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn min(&self) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn max(&self) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamingHistogram` is never constructed
[INFO] [stdout]    --> src/metric/operations.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct StreamingHistogram {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/metric/operations.rs:283:12
[INFO] [stdout]     |
[INFO] [stdout] 282 | impl StreamingHistogram {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 283 |     pub fn new(min: f64, max: f64, num_buckets: usize) -> StreamingHistogram {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn percentile(&self, percentile: i32) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn edge_from_index(&self, index: usize) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn edge_from_float_index(&self, index: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     fn auto_num_buckets(count: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     fn add_with_count(&mut self, value: f64, count: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamingApproxPercentileHistogram` is never constructed
[INFO] [stdout]    --> src/metric/operations.rs:373:12
[INFO] [stdout]     |
[INFO] [stdout] 373 | pub struct StreamingApproxPercentileHistogram {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_stats` are never used
[INFO] [stdout]    --> src/metric/operations.rs:379:12
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl StreamingApproxPercentileHistogram {
[INFO] [stdout]     | --------------------------------------- associated functions in this implementation
[INFO] [stdout] 379 |     pub fn new(min: f64, max: f64, num_buckets: usize, percentile: i32) -> StreamingApproxPercentileHistogram {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn from_stats(stats: &TimeRangeStatistics<f64>, percentile: i32) -> StreamingApproxPercentileHistogram {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_default` is never used
[INFO] [stdout]    --> src/metric/operations.rs:488:12
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T: StreamingOperation<f64> + Default> StreamingTransformOperation<T> {
[INFO] [stdout]     | ------------------------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 488 |     pub fn from_default(operation: TransformExpression) -> StreamingTransformOperation<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_default` is never used
[INFO] [stdout]    --> src/metric/operations.rs:532:12
[INFO] [stdout]     |
[INFO] [stdout] 531 | impl<TInput, TOutput, TOp: StreamingOperation<TInput, TOutput> + Default> StreamingFilterOperation<TInput, TOutput, TOp> {
[INFO] [stdout]     | ------------------------------------------------------------------------------------------------------------------------ associated function in this implementation
[INFO] [stdout] 532 |     pub fn from_default(operation: FilterExpression) -> StreamingFilterOperation<TInput, TOutput, TOp> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `input_value` and `value` are never used
[INFO] [stdout]   --> src/metric/expression.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl FilterExpression {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] 75 |     pub fn input_value() -> FilterExpression {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn value(value: f64) -> FilterExpression {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/engine/io.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl AddGaugeValue {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(time: f64, value: f64, tags: Vec<Tag>) -> AddGaugeValue {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/engine/io.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl AddCountValue {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 53 |     pub fn new(time: f64, count: CountInput, tags: Vec<Tag>) -> AddCountValue {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/engine/io.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl AddRatioValue {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 70 |     pub fn new(time: f64, ratio: RatioInput, tags: Vec<Tag>) -> AddRatioValue {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_metric` is never used
[INFO] [stdout]   --> src/engine/engine.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MetricsEngine {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn add_metric(&self, name: &str, metric_type: MetricType) -> MetricsEngineResult<()> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestMetricsEngine` is never constructed
[INFO] [stdout]    --> src/engine/querying.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | struct TestMetricsEngine {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/engine/querying.rs:514:12
[INFO] [stdout]     |
[INFO] [stdout] 513 | impl TestMetricsEngine {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 514 |     pub fn new(metric_values: Vec<(String, OperationResult)>) -> TestMetricsEngine {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/metric/common.rs:132:93
[INFO] [stdout]     |
[INFO] [stdout] 132 | ...>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout]     |       --                     --                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                          ^^ the same lifetime is elided here
[INFO] [stdout]     |       |                      |                                     |
[INFO] [stdout]     |       |                      the lifetime is named here            the same lifetime is elided here
[INFO] [stdout]     |       the lifetime is named 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 -     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout] 132 +     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&'a PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + 'a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TimeMeasurementUnit` is never used
[INFO] [stdout]  --> src/helpers.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum TimeMeasurementUnit {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimeMeasurement` is never constructed
[INFO] [stdout]  --> src/helpers.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TimeMeasurement {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `elapsed_seconds`, `elapsed_ms`, and `elapsed_micro` are never used
[INFO] [stdout]   --> src/helpers.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl TimeMeasurement {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(pattern: &str, unit: TimeMeasurementUnit) -> TimeMeasurement {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn elapsed_seconds(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn elapsed_ms(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn elapsed_micro(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `num_segments` is never used
[INFO] [stdout]   --> src/storage/mod.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait MetricStorage<E: Copy> {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn num_segments(&self) -> usize;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/storage/memory_file.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     FailedToMap(std::io::Error),
[INFO] [stdout]   |     ----------- ^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MemoryFileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     FailedToMap(std::io::Error),
[INFO] [stdout] 9 +     FailedToMap(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/storage/memory_file.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 |     IO(std::io::Error)
[INFO] [stdout]    |     -- ^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryFileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     IO(std::io::Error)
[INFO] [stdout] 11 +     IO(())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_multi_ref` is never used
[INFO] [stdout]   --> src/model.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl GroupKey {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn from_multi_ref(keys: &[&str]) -> GroupKey {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_input_filter` and `with_output_transform` are never used
[INFO] [stdout]    --> src/model.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | impl Query {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn with_input_filter(self, filter: FilterExpression) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn with_output_transform(self, transform: TransformExpression) -> Query {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:207:27
[INFO] [stdout]     |
[INFO] [stdout] 207 |     FailedToCreateBaseDir(std::io::Error),
[INFO] [stdout]     |     --------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 207 -     FailedToCreateBaseDir(std::io::Error),
[INFO] [stdout] 207 +     FailedToCreateBaseDir(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:208:24
[INFO] [stdout]     |
[INFO] [stdout] 208 |     FailedToLoadMetric(std::io::Error),
[INFO] [stdout]     |     ------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 208 -     FailedToLoadMetric(std::io::Error),
[INFO] [stdout] 208 +     FailedToLoadMetric(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:209:24
[INFO] [stdout]     |
[INFO] [stdout] 209 |     FailedToLoadConfig(std::io::Error),
[INFO] [stdout]     |     ------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 209 -     FailedToLoadConfig(std::io::Error),
[INFO] [stdout] 209 +     FailedToLoadConfig(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:210:24
[INFO] [stdout]     |
[INFO] [stdout] 210 |     FailedToSaveConfig(std::io::Error),
[INFO] [stdout]     |     ------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 210 -     FailedToSaveConfig(std::io::Error),
[INFO] [stdout] 210 +     FailedToSaveConfig(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:211:21
[INFO] [stdout]     |
[INFO] [stdout] 211 |     MemoryFileError(MemoryFileError),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 211 -     MemoryFileError(MemoryFileError),
[INFO] [stdout] 211 +     MemoryFileError(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:213:28
[INFO] [stdout]     |
[INFO] [stdout] 213 |     FailedToSavePrimaryTag(std::io::Error),
[INFO] [stdout]     |     ---------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 213 -     FailedToSavePrimaryTag(std::io::Error),
[INFO] [stdout] 213 +     FailedToSavePrimaryTag(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:214:28
[INFO] [stdout]     |
[INFO] [stdout] 214 |     FailedToLoadPrimaryTag(std::io::Error),
[INFO] [stdout]     |     ---------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 214 -     FailedToLoadPrimaryTag(std::io::Error),
[INFO] [stdout] 214 +     FailedToLoadPrimaryTag(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:215:30
[INFO] [stdout]     |
[INFO] [stdout] 215 |     FailedToLoadSecondaryTag(std::io::Error),
[INFO] [stdout]     |     ------------------------ ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 215 -     FailedToLoadSecondaryTag(std::io::Error),
[INFO] [stdout] 215 +     FailedToLoadSecondaryTag(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:216:26
[INFO] [stdout]     |
[INFO] [stdout] 216 |     FailedToCreateMetric(std::io::Error),
[INFO] [stdout]     |     -------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 216 -     FailedToCreateMetric(std::io::Error),
[INFO] [stdout] 216 +     FailedToCreateMetric(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/model.rs:217:26
[INFO] [stdout]     |
[INFO] [stdout] 217 |     FailedToRemoveMetric(std::io::Error),
[INFO] [stdout]     |     -------------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetricError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 217 -     FailedToRemoveMetric(std::io::Error),
[INFO] [stdout] 217 +     FailedToRemoveMetric(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `primary_tags` is never used
[INFO] [stdout]   --> src/metric/count.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<TStorage: MetricStorage<u32>> CountMetric<TStorage> {
[INFO] [stdout]    | -------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn primary_tags(&self) -> impl Iterator<Item=&PrimaryTag> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `primary_tags` is never used
[INFO] [stdout]   --> src/metric/ratio.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl<TStorage: MetricStorage<RatioU32>> RatioMetric<TStorage> {
[INFO] [stdout]    | ------------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn primary_tags(&self) -> impl Iterator<Item=&PrimaryTag> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stats` is never used
[INFO] [stdout]   --> src/metric/common.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait GenericMetric {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 44 |     fn stats(&self);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stats` is never used
[INFO] [stdout]    --> src/metric/common.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl<TStorage: MetricStorage<E>, E: Copy> PrimaryTagsStorage<TStorage, E> {
[INFO] [stdout]     | ------------------------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn stats(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `approx_datapoint_count_for_time_range` is never used
[INFO] [stdout]    --> src/metric/helpers.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn approx_datapoint_count_for_time_range<TStorage: MetricStorage<E>, E: Copy>(storage: &TStorage,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `min`, and `max` are never used
[INFO] [stdout]    --> src/metric/helpers.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | impl<T: MinMax + Copy> TimeRangeStatistics<T> {
[INFO] [stdout]     | --------------------------------------------- associated items in this implementation
[INFO] [stdout] 171 |     pub fn new(count: usize, min: T, max: T) -> TimeRangeStatistics<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn min(&self) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn max(&self) -> T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print` and `edge_from_index` are never used
[INFO] [stdout]    --> src/metric/operations.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 282 | impl StreamingHistogram {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn edge_from_index(&self, index: usize) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_stats` is never used
[INFO] [stdout]    --> src/metric/operations.rs:386:12
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl StreamingApproxPercentileHistogram {
[INFO] [stdout]     | --------------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn from_stats(stats: &TimeRangeStatistics<f64>, percentile: i32) -> StreamingApproxPercentileHistogram {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_default` is never used
[INFO] [stdout]    --> src/metric/operations.rs:488:12
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl<T: StreamingOperation<f64> + Default> StreamingTransformOperation<T> {
[INFO] [stdout]     | ------------------------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 488 |     pub fn from_default(operation: TransformExpression) -> StreamingTransformOperation<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_default` is never used
[INFO] [stdout]    --> src/metric/operations.rs:532:12
[INFO] [stdout]     |
[INFO] [stdout] 531 | impl<TInput, TOutput, TOp: StreamingOperation<TInput, TOutput> + Default> StreamingFilterOperation<TInput, TOutput, TOp> {
[INFO] [stdout]     | ------------------------------------------------------------------------------------------------------------------------ associated function in this implementation
[INFO] [stdout] 532 |     pub fn from_default(operation: FilterExpression) -> StreamingFilterOperation<TInput, TOutput, TOp> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/engine/io.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl AddRatioValue {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 70 |     pub fn new(time: f64, ratio: RatioInput, tags: Vec<Tag>) -> AddRatioValue {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/metric/common.rs:132:93
[INFO] [stdout]     |
[INFO] [stdout] 132 | ...>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout]     |       --                     --                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                          ^^ the same lifetime is elided here
[INFO] [stdout]     |       |                      |                                     |
[INFO] [stdout]     |       |                      the lifetime is named here            the same lifetime is elided here
[INFO] [stdout]     |       the lifetime is named 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: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 -     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + '_ {
[INFO] [stdout] 132 +     pub fn iter_for_query<'a>(&'a self, tags_filter: &'a TagsFilter) -> impl Iterator<Item=(&'a PrimaryTagMetric<TStorage, E>, SecondaryTagsFilter)> + 'a {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.05s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: openssl v0.10.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "7f2d0c0e535224e6e59484e227056b2533c8db70f0c832d156e465fa8dec4c93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f2d0c0e535224e6e59484e227056b2533c8db70f0c832d156e465fa8dec4c93", kill_on_drop: false }`
[INFO] [stdout] 7f2d0c0e535224e6e59484e227056b2533c8db70f0c832d156e465fa8dec4c93
