[INFO] cloning repository https://github.com/quattervals/dl_instrument
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/quattervals/dl_instrument" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquattervals%2Fdl_instrument", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquattervals%2Fdl_instrument'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dcc22e6b11affc1163a79f753b99543956eed65a
[INFO] testing quattervals/dl_instrument against 1.91.0 for beta-1.92-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquattervals%2Fdl_instrument" "/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/quattervals/dl_instrument
[INFO] finished tweaking git repo https://github.com/quattervals/dl_instrument
[INFO] tweaked toml for git repo https://github.com/quattervals/dl_instrument written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/quattervals/dl_instrument on toolchain 1.91.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/quattervals/dl_instrument 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.91.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.2.26
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 73d3af3ecb97c5ff5d107fb183767dbfdd604172d9bd703a97e161ba45f6306d
[INFO] running `Command { std: "docker" "start" "-a" "73d3af3ecb97c5ff5d107fb183767dbfdd604172d9bd703a97e161ba45f6306d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "73d3af3ecb97c5ff5d107fb183767dbfdd604172d9bd703a97e161ba45f6306d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "73d3af3ecb97c5ff5d107fb183767dbfdd604172d9bd703a97e161ba45f6306d", kill_on_drop: false }`
[INFO] [stdout] 73d3af3ecb97c5ff5d107fb183767dbfdd604172d9bd703a97e161ba45f6306d
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 850f050b52b2d8ee04598b354672b864dee293848157274d8a44b414b372185c
[INFO] running `Command { std: "docker" "start" "-a" "850f050b52b2d8ee04598b354672b864dee293848157274d8a44b414b372185c", kill_on_drop: false }`
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling serde_with_macros v3.12.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling serde_with v3.12.0
[INFO] [stderr]    Compiling instrument_stats v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     /// the hand made algorithm is 15 times slower than with serde
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     Ok(())
[INFO] [stdout]    |     ------ rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Instrument {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 32 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 33 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 34 |     priceChange: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 36 |     priceChangePercent: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 38 |     lastPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 39 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 40 |     lastQty: f64,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 42 |     open: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 44 |     high: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 45 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 46 |     low: f64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 48 |     volume: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 49 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 50 |     amount: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     askPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 55 |     openTime: u64, // could use a newtype to wrap the time nicely.
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     closeTime: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     firstTradeId: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 58 |     tradeCount: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 60 |     strikePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 61 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 62 |     exercisePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instrument` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_from_reader` is never used
[INFO] [stdout]    --> src/main.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn deserialize_from_reader(filename: &str) -> Result<Vec<Instrument>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.49s
[INFO] running `Command { std: "docker" "inspect" "850f050b52b2d8ee04598b354672b864dee293848157274d8a44b414b372185c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "850f050b52b2d8ee04598b354672b864dee293848157274d8a44b414b372185c", kill_on_drop: false }`
[INFO] [stdout] 850f050b52b2d8ee04598b354672b864dee293848157274d8a44b414b372185c
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cd8933660aeb65efec720dbfb45e084f260b4c87696f67fa55d0f8841b20aa2c
[INFO] running `Command { std: "docker" "start" "-a" "cd8933660aeb65efec720dbfb45e084f260b4c87696f67fa55d0f8841b20aa2c", kill_on_drop: false }`
[INFO] [stderr]    Compiling instrument_stats v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     /// the hand made algorithm is 15 times slower than with serde
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     Ok(())
[INFO] [stdout]    |     ------ rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Instrument {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 32 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 33 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 34 |     priceChange: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 36 |     priceChangePercent: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 38 |     lastPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 39 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 40 |     lastQty: f64,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 42 |     open: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 44 |     high: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 45 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 46 |     low: f64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 48 |     volume: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 49 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 50 |     amount: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     askPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 55 |     openTime: u64, // could use a newtype to wrap the time nicely.
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     closeTime: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     firstTradeId: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 58 |     tradeCount: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 60 |     strikePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 61 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 62 |     exercisePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instrument` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_from_reader` is never used
[INFO] [stdout]    --> src/main.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn deserialize_from_reader(filename: &str) -> Result<Vec<Instrument>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.90s
[INFO] running `Command { std: "docker" "inspect" "cd8933660aeb65efec720dbfb45e084f260b4c87696f67fa55d0f8841b20aa2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd8933660aeb65efec720dbfb45e084f260b4c87696f67fa55d0f8841b20aa2c", kill_on_drop: false }`
[INFO] [stdout] cd8933660aeb65efec720dbfb45e084f260b4c87696f67fa55d0f8841b20aa2c
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a79df6ca06d6d5a3d0302ba97b38da98073f8ffbb7b1e2bc34be604fc95f6746
[INFO] running `Command { std: "docker" "start" "-a" "a79df6ca06d6d5a3d0302ba97b38da98073f8ffbb7b1e2bc34be604fc95f6746", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/main.rs:83:5
[INFO] [stderr]    |
[INFO] [stderr] 83 |     /// the hand made algorithm is 15 times slower than with serde
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 84 |     Ok(())
[INFO] [stderr]    |     ------ rustdoc does not generate documentation for expressions
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/main.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | struct Instrument {
[INFO] [stderr]    |        ---------- fields in this struct
[INFO] [stderr] 32 |     symbol: String,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 33 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 34 |     priceChange: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 35 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 36 |     priceChangePercent: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 37 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 38 |     lastPrice: f64,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 39 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 40 |     lastQty: f64,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 41 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 42 |     open: f64,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 43 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 44 |     high: f64,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 45 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 46 |     low: f64,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 47 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 48 |     volume: f64,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 49 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 50 |     amount: f64,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     askPrice: f64,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 55 |     openTime: u64, // could use a newtype to wrap the time nicely.
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 56 |     closeTime: u64,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 57 |     firstTradeId: u64,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 58 |     tradeCount: u64,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 59 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 60 |     strikePrice: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 61 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 62 |     exercisePrice: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Instrument` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `deserialize_from_reader` is never used
[INFO] [stderr]    --> src/main.rs:122:4
[INFO] [stderr]     |
[INFO] [stderr] 122 | fn deserialize_from_reader(filename: &str) -> Result<Vec<Instrument>, Box<dyn std::error::Error>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `instrument_stats` (bin "instrument_stats" test) generated 3 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/instrument_stats-c9c1b17493563978)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::test_average_bid_price ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a79df6ca06d6d5a3d0302ba97b38da98073f8ffbb7b1e2bc34be604fc95f6746", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a79df6ca06d6d5a3d0302ba97b38da98073f8ffbb7b1e2bc34be604fc95f6746", kill_on_drop: false }`
[INFO] [stdout] a79df6ca06d6d5a3d0302ba97b38da98073f8ffbb7b1e2bc34be604fc95f6746
