[INFO] fetching crate matching_engine 0.1.8... [INFO] testing matching_engine-0.1.8 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate matching_engine 0.1.8 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate matching_engine 0.1.8 [INFO] finished tweaking crates.io crate matching_engine 0.1.8 [INFO] tweaked toml for crates.io crate matching_engine 0.1.8 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate matching_engine 0.1.8 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate matching_engine 0.1.8 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 679ec43b8bfcf6790e7a08336700a822e8978b831d4ec604c0a6c60a0f2fedad [INFO] running `Command { std: "docker" "start" "-a" "679ec43b8bfcf6790e7a08336700a822e8978b831d4ec604c0a6c60a0f2fedad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "679ec43b8bfcf6790e7a08336700a822e8978b831d4ec604c0a6c60a0f2fedad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "679ec43b8bfcf6790e7a08336700a822e8978b831d4ec604c0a6c60a0f2fedad", kill_on_drop: false }` [INFO] [stdout] 679ec43b8bfcf6790e7a08336700a822e8978b831d4ec604c0a6c60a0f2fedad [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 283f2ea061bbb637265def912a6d3c1e1ba1a981b57c97e40729cfeefd2fc504 [INFO] running `Command { std: "docker" "start" "-a" "283f2ea061bbb637265def912a6d3c1e1ba1a981b57c97e40729cfeefd2fc504", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.148 [INFO] [stderr] Compiling proc-macro2 v1.0.68 [INFO] [stderr] Compiling rustix v0.38.17 [INFO] [stderr] Compiling linux-raw-sys v0.4.8 [INFO] [stderr] Compiling serde v1.0.188 [INFO] [stderr] Compiling bitflags v2.4.0 [INFO] [stderr] Compiling aho-corasick v1.1.1 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling regex-syntax v0.7.5 [INFO] [stderr] Compiling csv-core v0.1.11 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling serde_json v1.0.107 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling syn v2.0.38 [INFO] [stderr] Compiling is-terminal v0.4.9 [INFO] [stderr] Compiling iana-time-zone v0.1.57 [INFO] [stderr] Compiling unicode-width v0.1.11 [INFO] [stderr] Compiling termcolor v1.3.0 [INFO] [stderr] Compiling encode_unicode v1.0.0 [INFO] [stderr] Compiling log v0.4.20 [INFO] [stderr] Compiling colored v2.0.4 [INFO] [stderr] Compiling chrono v0.4.31 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling getrandom v0.2.10 [INFO] [stderr] Compiling regex-automata v0.3.9 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling serde_derive v1.0.188 [INFO] [stderr] Compiling regex v1.9.6 [INFO] [stderr] Compiling env_logger v0.10.0 [INFO] [stderr] Compiling csv v1.3.0 [INFO] [stderr] Compiling prettytable-rs v0.10.0 [INFO] [stderr] Compiling matching_engine v0.1.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/lib.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{error, info}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::hash_map::DefaultHasher` [INFO] [stdout] --> src/model/domain.rs:642:9 [INFO] [stdout] | [INFO] [stdout] 642 | use std::collections::hash_map::DefaultHasher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `Hasher` [INFO] [stdout] --> src/model/domain.rs:643:21 [INFO] [stdout] | [INFO] [stdout] 643 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/model/domain.rs:645:9 [INFO] [stdout] | [INFO] [stdout] 645 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `create_order_book` and `read_input` [INFO] [stdout] --> src/model/domain.rs:647:32 [INFO] [stdout] | [INFO] [stdout] 647 | use crate::common::utils::{create_order_book, read_input}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::matchers::fifo_matcher::FIFOMatcher` [INFO] [stdout] --> src/model/domain.rs:648:9 [INFO] [stdout] | [INFO] [stdout] 648 | use crate::matchers::fifo_matcher::FIFOMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::matchers::matcher::Matcher` [INFO] [stdout] --> src/model/domain.rs:649:9 [INFO] [stdout] | [INFO] [stdout] 649 | use crate::matchers::matcher::Matcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Fill`, `OrderBookKey`, and `OrderBook` [INFO] [stdout] --> src/model/domain.rs:650:32 [INFO] [stdout] | [INFO] [stdout] 650 | use crate::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stdout] | ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> src/matchers/fifo_matcher.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> src/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ex_cum_qty` is never read [INFO] [stdout] --> src/matchers/prorata_matcher.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | ex_cum_qty = ex_fill.cum_qty(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/common/utils.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut file = OpenOptions::new() [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/common/utils.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | let mut log_message = format!("\n{}-{}", formatted_timestamp, message); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut ob = utils::create_order_book(input); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sum_of_filled_quantities` and `print_fills` are never used [INFO] [stdout] --> src/matchers/fifo_matcher.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 17 | impl FIFOMatcher { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | fn sum_of_filled_quantities(&self, fills: &Vec, side: Side) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn print_fills(&self, fills: Vec, side: Side) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/model/domain.rs:187:40 [INFO] [stdout] | [INFO] [stdout] 187 | let float_bits: u64 = unsafe { std::mem::transmute(self.price) }; [INFO] [stdout] | -------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `f64::to_bits` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `Sender` [INFO] [stdout] --> src/main.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::JoinHandle` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::thread::JoinHandle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.74s [INFO] running `Command { std: "docker" "inspect" "283f2ea061bbb637265def912a6d3c1e1ba1a981b57c97e40729cfeefd2fc504", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "283f2ea061bbb637265def912a6d3c1e1ba1a981b57c97e40729cfeefd2fc504", kill_on_drop: false }` [INFO] [stdout] 283f2ea061bbb637265def912a6d3c1e1ba1a981b57c97e40729cfeefd2fc504 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 831a3ae60b6485eece3043d9fa13ca93f7de4023a59801c494fd1ad6bcfa562e [INFO] running `Command { std: "docker" "start" "-a" "831a3ae60b6485eece3043d9fa13ca93f7de4023a59801c494fd1ad6bcfa562e", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/lib.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{error, info}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::hash_map::DefaultHasher` [INFO] [stdout] --> src/model/domain.rs:642:9 [INFO] [stdout] | [INFO] [stdout] 642 | use std::collections::hash_map::DefaultHasher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `Hasher` [INFO] [stdout] --> src/model/domain.rs:643:21 [INFO] [stdout] | [INFO] [stdout] 643 | use std::hash::{Hash, Hasher}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> src/model/domain.rs:645:9 [INFO] [stdout] | [INFO] [stdout] 645 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `create_order_book` and `read_input` [INFO] [stdout] --> src/model/domain.rs:647:32 [INFO] [stdout] | [INFO] [stdout] 647 | use crate::common::utils::{create_order_book, read_input}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::matchers::fifo_matcher::FIFOMatcher` [INFO] [stdout] --> src/model/domain.rs:648:9 [INFO] [stdout] | [INFO] [stdout] 648 | use crate::matchers::fifo_matcher::FIFOMatcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::matchers::matcher::Matcher` [INFO] [stdout] --> src/model/domain.rs:649:9 [INFO] [stdout] | [INFO] [stdout] 649 | use crate::matchers::matcher::Matcher; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling matching_engine v0.1.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Fill`, `OrderBookKey`, and `OrderBook` [INFO] [stdout] --> src/model/domain.rs:650:32 [INFO] [stdout] | [INFO] [stdout] 650 | use crate::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stdout] | ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> src/matchers/fifo_matcher.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> src/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ex_cum_qty` is never read [INFO] [stdout] --> src/matchers/prorata_matcher.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | ex_cum_qty = ex_fill.cum_qty(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/common/utils.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut file = OpenOptions::new() [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/common/utils.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | let mut log_message = format!("\n{}-{}", formatted_timestamp, message); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut ob = utils::create_order_book(input); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sum_of_filled_quantities` and `print_fills` are never used [INFO] [stdout] --> src/matchers/fifo_matcher.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 17 | impl FIFOMatcher { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | fn sum_of_filled_quantities(&self, fills: &Vec, side: Side) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn print_fills(&self, fills: Vec, side: Side) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/model/domain.rs:187:40 [INFO] [stdout] | [INFO] [stdout] 187 | let float_bits: u64 = unsafe { std::mem::transmute(self.price) }; [INFO] [stdout] | -------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `f64::to_bits` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `Sender` [INFO] [stdout] --> src/main.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::JoinHandle` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::thread::JoinHandle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `Sender` [INFO] [stdout] --> src/main.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread::JoinHandle` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::thread::JoinHandle; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OrderBook` [INFO] [stdout] --> tests/fifo_matcher_tests.rs:4:44 [INFO] [stdout] | [INFO] [stdout] 4 | use matching_engine::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/lib.rs:10:18 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{error, info}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OrderBook` [INFO] [stdout] --> src/model/domain.rs:650:38 [INFO] [stdout] | [INFO] [stdout] 650 | use crate::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::Colorize` [INFO] [stdout] --> src/matchers/fifo_matcher.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use colored::Colorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OrderBook` [INFO] [stdout] --> src/matchers/fifo_matcher.rs:231:38 [INFO] [stdout] | [INFO] [stdout] 231 | use crate::model::domain::{Fill, OrderBook}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `client_fills` [INFO] [stdout] --> tests/fifo_matcher_tests.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let client_fills: Vec = fills.clone().into_iter().filter(|f| f.side() == Buy).collect(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_fills` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ex_fills` [INFO] [stdout] --> tests/fifo_matcher_tests.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | let ex_fills: Vec = fills.clone().into_iter().filter(|f| f.side() == Sell).collect(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ex_fills` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OrderBook` [INFO] [stdout] --> tests/pro_rata_matcher_tests.rs:3:44 [INFO] [stdout] | [INFO] [stdout] 3 | use matching_engine::model::domain::{Fill, OrderBook}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufRead` [INFO] [stdout] --> src/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::BufRead; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/model/domain.rs:694:13 [INFO] [stdout] | [INFO] [stdout] 694 | let key = &String::from("IBM"); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/model/domain.rs:693:13 [INFO] [stdout] | [INFO] [stdout] 693 | let mut ob = create_order_book(read_input("test_data/orders.txt")); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/matchers/fifo_matcher.rs:321:13 [INFO] [stdout] | [INFO] [stdout] 321 | let mut fifo = FIFOMatcher; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/matchers/fifo_matcher.rs:354:13 [INFO] [stdout] | [INFO] [stdout] 354 | let mut fifo = FIFOMatcher; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ex_cum_qty` is never read [INFO] [stdout] --> src/matchers/prorata_matcher.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | ex_cum_qty = ex_fill.cum_qty(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/common/utils.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut file = OpenOptions::new() [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/common/utils.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | let mut log_message = format!("\n{}-{}", formatted_timestamp, message); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 51 | let mut ob = utils::create_order_book(input); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sum_of_filled_quantities` and `print_fills` are never used [INFO] [stdout] --> src/matchers/fifo_matcher.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 17 | impl FIFOMatcher { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | fn sum_of_filled_quantities(&self, fills: &Vec, side: Side) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn print_fills(&self, fills: Vec, side: Side) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary transmute [INFO] [stdout] --> src/model/domain.rs:187:40 [INFO] [stdout] | [INFO] [stdout] 187 | let float_bits: u64 = unsafe { std::mem::transmute(self.price) }; [INFO] [stdout] | -------------------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace this with: `f64::to_bits` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.02s [INFO] running `Command { std: "docker" "inspect" "831a3ae60b6485eece3043d9fa13ca93f7de4023a59801c494fd1ad6bcfa562e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "831a3ae60b6485eece3043d9fa13ca93f7de4023a59801c494fd1ad6bcfa562e", kill_on_drop: false }` [INFO] [stdout] 831a3ae60b6485eece3043d9fa13ca93f7de4023a59801c494fd1ad6bcfa562e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a632c703f2158007401651de2212a716f8bfc5cf98fd568f913cbfef22fe8c13 [INFO] running `Command { std: "docker" "start" "-a" "a632c703f2158007401651de2212a716f8bfc5cf98fd568f913cbfef22fe8c13", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `info` [INFO] [stderr] --> src/lib.rs:10:18 [INFO] [stderr] | [INFO] [stderr] 10 | use log::{error, info}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::hash_map::DefaultHasher` [INFO] [stderr] --> src/model/domain.rs:642:9 [INFO] [stderr] | [INFO] [stderr] 642 | use std::collections::hash_map::DefaultHasher; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Hash` and `Hasher` [INFO] [stderr] --> src/model/domain.rs:643:21 [INFO] [stderr] | [INFO] [stderr] 643 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `log::debug` [INFO] [stderr] --> src/model/domain.rs:645:9 [INFO] [stderr] | [INFO] [stderr] 645 | use log::debug; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `create_order_book` and `read_input` [INFO] [stderr] --> src/model/domain.rs:647:32 [INFO] [stderr] | [INFO] [stderr] 647 | use crate::common::utils::{create_order_book, read_input}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::matchers::fifo_matcher::FIFOMatcher` [INFO] [stderr] --> src/model/domain.rs:648:9 [INFO] [stderr] | [INFO] [stderr] 648 | use crate::matchers::fifo_matcher::FIFOMatcher; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::matchers::matcher::Matcher` [INFO] [stderr] --> src/model/domain.rs:649:9 [INFO] [stderr] | [INFO] [stderr] 649 | use crate::matchers::matcher::Matcher; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Fill`, `OrderBookKey`, and `OrderBook` [INFO] [stderr] --> src/model/domain.rs:650:32 [INFO] [stderr] | [INFO] [stderr] 650 | use crate::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stderr] | ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `colored::Colorize` [INFO] [stderr] --> src/matchers/fifo_matcher.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use colored::Colorize; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufRead` [INFO] [stderr] --> src/lib.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::BufRead; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ex_cum_qty` is never read [INFO] [stderr] --> src/matchers/prorata_matcher.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | ex_cum_qty = ex_fill.cum_qty(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/common/utils.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | let mut file = OpenOptions::new() [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/common/utils.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | let mut log_message = format!("\n{}-{}", formatted_timestamp, message); [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | let mut ob = utils::create_order_book(input); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: methods `sum_of_filled_quantities` and `print_fills` are never used [INFO] [stderr] --> src/matchers/fifo_matcher.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 17 | impl FIFOMatcher { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 20 | fn sum_of_filled_quantities(&self, fills: &Vec, side: Side) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 86 | fn print_fills(&self, fills: Vec, side: Side) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary transmute [INFO] [stderr] --> src/model/domain.rs:187:40 [INFO] [stderr] | [INFO] [stderr] 187 | let float_bits: u64 = unsafe { std::mem::transmute(self.price) }; [INFO] [stderr] | -------------------^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: replace this with: `f64::to_bits` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unnecessary_transmutes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `OrderBook` [INFO] [stderr] --> src/model/domain.rs:650:38 [INFO] [stderr] | [INFO] [stderr] 650 | use crate::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OrderBook` [INFO] [stderr] --> src/matchers/fifo_matcher.rs:231:38 [INFO] [stderr] | [INFO] [stderr] 231 | use crate::model::domain::{Fill, OrderBook}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/model/domain.rs:694:13 [INFO] [stderr] | [INFO] [stderr] 694 | let key = &String::from("IBM"); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/model/domain.rs:693:13 [INFO] [stderr] | [INFO] [stderr] 693 | let mut ob = create_order_book(read_input("test_data/orders.txt")); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/matchers/fifo_matcher.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | let mut fifo = FIFOMatcher; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/matchers/fifo_matcher.rs:354:13 [INFO] [stderr] | [INFO] [stderr] 354 | let mut fifo = FIFOMatcher; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/common/utils.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | let mut file = OpenOptions::new() [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: `matching_engine` (lib) generated 16 warnings (run `cargo fix --lib -p matching_engine` to apply 13 suggestions) [INFO] [stderr] warning: `matching_engine` (lib test) generated 15 warnings (8 duplicates) (run `cargo fix --lib -p matching_engine --tests` to apply 6 suggestions) [INFO] [stderr] warning: unused imports: `Receiver` and `Sender` [INFO] [stderr] --> src/main.rs:1:23 [INFO] [stderr] | [INFO] [stderr] 1 | use std::sync::mpsc::{Receiver, Sender}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread::JoinHandle` [INFO] [stderr] --> src/main.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::thread::JoinHandle; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OrderBook` [INFO] [stderr] --> tests/pro_rata_matcher_tests.rs:3:44 [INFO] [stderr] | [INFO] [stderr] 3 | use matching_engine::model::domain::{Fill, OrderBook}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `OrderBook` [INFO] [stderr] --> tests/fifo_matcher_tests.rs:4:44 [INFO] [stderr] | [INFO] [stderr] 4 | use matching_engine::model::domain::{Fill, OrderBook, OrderBookKey}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `client_fills` [INFO] [stderr] --> tests/fifo_matcher_tests.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | let client_fills: Vec = fills.clone().into_iter().filter(|f| f.side() == Buy).collect(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client_fills` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ex_fills` [INFO] [stderr] --> tests/fifo_matcher_tests.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | let ex_fills: Vec = fills.clone().into_iter().filter(|f| f.side() == Sell).collect(); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ex_fills` [INFO] [stderr] [INFO] [stderr] warning: `matching_engine` (bin "matching_engine") generated 2 warnings (run `cargo fix --bin "matching_engine"` to apply 2 suggestions) [INFO] [stderr] warning: `matching_engine` (bin "matching_engine" test) generated 2 warnings (2 duplicates) [INFO] [stderr] warning: `matching_engine` (test "pro_rata_matcher_tests") generated 1 warning (run `cargo fix --test "pro_rata_matcher_tests"` to apply 1 suggestion) [INFO] [stderr] warning: `matching_engine` (test "fifo_matcher_tests") generated 3 warnings (run `cargo fix --test "fifo_matcher_tests"` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/matching_engine-9e3a3ed61cf0011f) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test common::utils::tests::test_values ... ok [INFO] [stdout] test matchers::fifo_matcher::tests::test_order_match_after_order_book_match ... ok [INFO] [stdout] test matchers::fifo_matcher::tests::test_update_fills_order_qty_less_than_available_qty ... ok [INFO] [stdout] test matchers::fifo_matcher::tests::test_update_fills_order_qty_eq_available_qty ... ok [INFO] [stdout] test matchers::fifo_matcher::tests::test_update_fills_order_qty_greater_than_available_qty ... ok [INFO] [stdout] test formatters::json_formatter::tests::test_serialize_fill_and_order ... ok [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | Symbol | Qty | Price | client_order_id | exchange_order_id | Side | Order Status | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 300 | 602.5 | id1 | id2 | Buy | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 300 | 602.5 | id2 | id1 | Sell | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 100 | 602.5 | id3 | id4 | Buy | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 100 | 602.5 | id4 | id3 | Sell | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 400 | 602.5 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 300 | 602 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 300 | 601.9 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 100 | 601.1 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 100 | 602.1 | Sell | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 400 | 602.5 | Sell | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] test matchers::prorata_matcher::tests::test_proportional_match ... ok [INFO] [stdout] test model::domain::tests::test_fill_str ... ok [INFO] [stdout] test model::domain::tests::test_orderbookkey_hash ... ok [INFO] [stdout] test model::domain::tests::test_partial_equals ... ok [INFO] [stdout] test model::domain::tests::test_print_md ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/matching_engine-ee6bdd6108582ca9) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/fifo_matcher_tests.rs (/opt/rustwide/target/debug/deps/fifo_matcher_tests-bcdd4375400ccfc3) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 300 | 602 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 300 | 601.9 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 100 | 601.1 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | Symbol | Qty | Price | client_order_id | exchange_order_id | Side | Order Status | [INFO] [stdout] +--------+-----+-------+-----------------+----------------+---------+-----+------+--------------+--------------++- [INFO] [stdout] | TATA | 20 | 602.5 ---|- -id8+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 100 | 602.1 | Sell | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | TATA | 100 | 621 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] test test_fifo_match_order_book ... ok [INFO] [stdout] | id7 | Buy | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | TATA | 20 | 602.5 | id7 | id8 | Sell | PartialFill | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | TATA | 30 | 602.5 | id9 | id7 | Buy | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | TATA | 30 | 602.5 | id7 | id9 | Sell | PartialFill | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] test test_match_order_multiple_buy_orders_against_a_single_sell_order ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/pro_rata_matcher_tests.rs (/opt/rustwide/target/debug/deps/pro_rata_matcher_tests-38b9cdd39c982ca3) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | Symbol | Qty | Price | client_order_id | exchange_order_id | Side | Order Status | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 225 | 602.5 | id1 | id2 | Buy | PartialFill | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 225 | 602.5 | id2 | id1 | Sell | PartialFill | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 75 | 602.5 | id3 | id2 | Buy | PartialFill | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 75 | 602.5 | id2 | id3 | Sell | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 75 | 602.5 | id1 | id4 | Buy | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 75 | 602.5 | id4 | id1 | Sell | PartialFill | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 25 | 602.5 | id3 | id4 | Buy | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] | IBM | 25 | 602.5 | id4 | id3 | Sell | Filled | [INFO] [stdout] +--------+-----+-------+-----------------+-------------------+------+--------------+ [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 300 | 602 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 300 | 601.9 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 100 | 601.1 | Buy | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | Symbol | Quantity | Price | Side | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] | IBM | 100 | 602.1 | Sell | [INFO] [stdout] +--------+----------+-------+------+ [INFO] [stdout] test test_match_order_book ... 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] [stderr] Doc-tests matching_engine [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test src/matchers/prorata_matcher.rs - matchers::prorata_matcher::ProrataMatcher::match_order_book (line 138) ... ok [INFO] [stdout] test src/common/utils.rs - common::utils::read_input (line 45) ... ok [INFO] [stdout] test src/common/utils.rs - common::utils::create_order_book (line 74) ... ok [INFO] [stdout] test src/common/utils.rs - common::utils::create_order_from_string (line 93) ... ok [INFO] [stdout] test src/matchers/fifo_matcher.rs - matchers::fifo_matcher::FIFOMatcher::match_order_book (line 167) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a632c703f2158007401651de2212a716f8bfc5cf98fd568f913cbfef22fe8c13", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a632c703f2158007401651de2212a716f8bfc5cf98fd568f913cbfef22fe8c13", kill_on_drop: false }` [INFO] [stdout] a632c703f2158007401651de2212a716f8bfc5cf98fd568f913cbfef22fe8c13