[INFO] cloning repository https://github.com/borja-eth/rust-engine [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/borja-eth/rust-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fborja-eth%2Frust-engine", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fborja-eth%2Frust-engine'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7276552383bde10fee1955f976f26f9bdfee049d [INFO] checking borja-eth/rust-engine against master#8a65ee08296b36342bf7c3cdc15312ccbc357227 for pr-142704 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fborja-eth%2Frust-engine" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/borja-eth/rust-engine on toolchain 8a65ee08296b36342bf7c3cdc15312ccbc357227 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/borja-eth/rust-engine [INFO] finished tweaking git repo https://github.com/borja-eth/rust-engine [INFO] tweaked toml for git repo https://github.com/borja-eth/rust-engine written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/borja-eth/rust-engine 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" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fa89e101152ad6af68a564b4380ddf9259f05e68471cc3eee23bd3a6880f02cf [INFO] running `Command { std: "docker" "start" "-a" "fa89e101152ad6af68a564b4380ddf9259f05e68471cc3eee23bd3a6880f02cf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fa89e101152ad6af68a564b4380ddf9259f05e68471cc3eee23bd3a6880f02cf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa89e101152ad6af68a564b4380ddf9259f05e68471cc3eee23bd3a6880f02cf", kill_on_drop: false }` [INFO] [stdout] fa89e101152ad6af68a564b4380ddf9259f05e68471cc3eee23bd3a6880f02cf [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 80df8d9846872c20eac042fdcb440cbd331b98389e6753564f2553408f8f5730 [INFO] running `Command { std: "docker" "start" "-a" "80df8d9846872c20eac042fdcb440cbd331b98389e6753564f2553408f8f5730", kill_on_drop: false }` [INFO] [stderr] Checking rust-engine v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0583]: file not found for module `depth_constants` [INFO] [stdout] --> lib.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub mod depth_constants; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `depth_constants`, create file "lib/depth_constants.rs" or "lib/depth_constants/mod.rs" [INFO] [stdout] = note: if there is a `mod depth_constants` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `depth_constants` [INFO] [stdout] --> lib.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub mod depth_constants; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `depth_constants`, create file "lib/depth_constants.rs" or "lib/depth_constants/mod.rs" [INFO] [stdout] = note: if there is a `mod depth_constants` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `depth_constants` [INFO] [stdout] --> lib.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | pub mod depth_constants; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `depth_constants`, create file "lib/depth_constants.rs" or "lib/depth_constants/mod.rs" [INFO] [stdout] = note: if there is a `mod depth_constants` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0583]: file not found for module `depth_constants` [INFO] [stdout] --> lib.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | pub mod depth_constants; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: to create the module `depth_constants`, create file "lib/depth_constants.rs" or "lib/depth_constants/mod.rs" [INFO] [stdout] = note: if there is a `mod depth_constants` elsewhere in the crate already, import it with `use crate::...` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0428]: the name `lib` is defined multiple times [INFO] [stdout] --> lib.rs:90:1 [INFO] [stdout] | [INFO] [stdout] 25 | pub mod lib { [INFO] [stdout] | ----------- previous definition of the module `lib` here [INFO] [stdout] ... [INFO] [stdout] 90 | pub mod lib { [INFO] [stdout] | ^^^^^^^^^^^ `lib` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `lib` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0428]: the name `lib` is defined multiple times [INFO] [stdout] --> lib.rs:90:1 [INFO] [stdout] | [INFO] [stdout] 25 | pub mod lib { [INFO] [stdout] | ----------- previous definition of the module `lib` here [INFO] [stdout] ... [INFO] [stdout] 90 | pub mod lib { [INFO] [stdout] | ^^^^^^^^^^^ `lib` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `lib` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `OrderBook` is defined multiple times [INFO] [stdout] --> lib.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 73 | pub use lib::depth_order_book::{DepthOrderBook, OrderBook}; [INFO] [stdout] | --------- previous import of the trait `OrderBook` here [INFO] [stdout] 74 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `OrderBook` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `OrderBook` must be defined only once in the type namespace of this module [INFO] [stdout] help: you can use `as` to change the binding name of the import [INFO] [stdout] | [INFO] [stdout] 74 | pub use lib::order_book::OrderBook as OtherOrderBook; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `OrderBook` is defined multiple times [INFO] [stdout] --> lib.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 73 | pub use lib::depth_order_book::{DepthOrderBook, OrderBook}; [INFO] [stdout] | --------- previous import of the trait `OrderBook` here [INFO] [stdout] 74 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `OrderBook` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `OrderBook` must be defined only once in the type namespace of this module [INFO] [stdout] help: you can use `as` to change the binding name of the import [INFO] [stdout] | [INFO] [stdout] 74 | pub use lib::order_book::OrderBook as OtherOrderBook; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Order` is defined multiple times [INFO] [stdout] --> lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 65 | pub use lib::order::Order; [INFO] [stdout] | ----------------- previous import of the trait `Order` here [INFO] [stdout] ... [INFO] [stdout] 111 | pub use lib::order::Order; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ `Order` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `Order` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Order` is defined multiple times [INFO] [stdout] --> lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 65 | pub use lib::order::Order; [INFO] [stdout] | ----------------- previous import of the trait `Order` here [INFO] [stdout] ... [INFO] [stdout] 111 | pub use lib::order::Order; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ `Order` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `Order` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `OrderBook` is defined multiple times [INFO] [stdout] --> lib.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 73 | pub use lib::depth_order_book::{DepthOrderBook, OrderBook}; [INFO] [stdout] | --------- previous import of the trait `OrderBook` here [INFO] [stdout] ... [INFO] [stdout] 112 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `OrderBook` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `OrderBook` must be defined only once in the type namespace of this module [INFO] [stdout] help: you can use `as` to change the binding name of the import [INFO] [stdout] | [INFO] [stdout] 112 | pub use lib::order_book::OrderBook as OtherOrderBook; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `OrderBook` is defined multiple times [INFO] [stdout] --> lib.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 73 | pub use lib::depth_order_book::{DepthOrderBook, OrderBook}; [INFO] [stdout] | --------- previous import of the trait `OrderBook` here [INFO] [stdout] ... [INFO] [stdout] 112 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `OrderBook` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `OrderBook` must be defined only once in the type namespace of this module [INFO] [stdout] help: you can use `as` to change the binding name of the import [INFO] [stdout] | [INFO] [stdout] 112 | pub use lib::order_book::OrderBook as OtherOrderBook; [INFO] [stdout] | +++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Price` is defined multiple times [INFO] [stdout] --> lib.rs:113:22 [INFO] [stdout] | [INFO] [stdout] 63 | pub use lib::types::{Price, Quantity, OrderConditions, FillFlags}; [INFO] [stdout] | ----- previous import of the type `Price` here [INFO] [stdout] ... [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | `Price` reimported here [INFO] [stdout] | help: remove unnecessary import [INFO] [stdout] | [INFO] [stdout] = note: `Price` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Price` is defined multiple times [INFO] [stdout] --> lib.rs:113:22 [INFO] [stdout] | [INFO] [stdout] 63 | pub use lib::types::{Price, Quantity, OrderConditions, FillFlags}; [INFO] [stdout] | ----- previous import of the type `Price` here [INFO] [stdout] ... [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | `Price` reimported here [INFO] [stdout] | help: remove unnecessary import [INFO] [stdout] | [INFO] [stdout] = note: `Price` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Quantity` is defined multiple times [INFO] [stdout] --> lib.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 63 | pub use lib::types::{Price, Quantity, OrderConditions, FillFlags}; [INFO] [stdout] | -------- previous import of the type `Quantity` here [INFO] [stdout] ... [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | `Quantity` reimported here [INFO] [stdout] | help: remove unnecessary import [INFO] [stdout] | [INFO] [stdout] = note: `Quantity` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `OrderConditions` is defined multiple times [INFO] [stdout] --> lib.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 63 | pub use lib::types::{Price, Quantity, OrderConditions, FillFlags}; [INFO] [stdout] | --------------- previous import of the type `OrderConditions` here [INFO] [stdout] ... [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ `OrderConditions` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `OrderConditions` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `Quantity` is defined multiple times [INFO] [stdout] --> lib.rs:113:29 [INFO] [stdout] | [INFO] [stdout] 63 | pub use lib::types::{Price, Quantity, OrderConditions, FillFlags}; [INFO] [stdout] | -------- previous import of the type `Quantity` here [INFO] [stdout] ... [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | `Quantity` reimported here [INFO] [stdout] | help: remove unnecessary import [INFO] [stdout] | [INFO] [stdout] = note: `Quantity` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `condition` is defined multiple times [INFO] [stdout] --> lib.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 64 | pub use lib::types::condition; [INFO] [stdout] | --------------------- previous import of the module `condition` here [INFO] [stdout] ... [INFO] [stdout] 114 | pub use lib::types::condition; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ `condition` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `condition` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `OrderConditions` is defined multiple times [INFO] [stdout] --> lib.rs:113:39 [INFO] [stdout] | [INFO] [stdout] 63 | pub use lib::types::{Price, Quantity, OrderConditions, FillFlags}; [INFO] [stdout] | --------------- previous import of the type `OrderConditions` here [INFO] [stdout] ... [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ `OrderConditions` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `OrderConditions` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0252]: the name `condition` is defined multiple times [INFO] [stdout] --> lib.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 64 | pub use lib::types::condition; [INFO] [stdout] | --------------------- previous import of the module `condition` here [INFO] [stdout] ... [INFO] [stdout] 114 | pub use lib::types::condition; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ `condition` reimported here [INFO] [stdout] | [INFO] [stdout] = note: `condition` must be defined only once in the type namespace of this module [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `crate::lib::errors::OrderError` [INFO] [stdout] --> lib/order_tracker.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::lib::errors::OrderError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[deny(unused_imports)]` implied by `#[deny(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `SIZE_UNCHANGED` [INFO] [stdout] --> lib/order_book.rs:17:96 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::lib::types::{Price, Quantity, OrderConditions, MARKET_ORDER_PRICE, PRICE_UNCHANGED, SIZE_UNCHANGED}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::order_book::OrderBook` [INFO] [stdout] --> lib.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::order::Order` [INFO] [stdout] --> lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | pub use lib::order::Order; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::order_book::OrderBook` [INFO] [stdout] --> lib.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused imports: `OrderConditions`, `Price`, and `Quantity` [INFO] [stdout] --> lib.rs:113:22 [INFO] [stdout] | [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::types::condition` [INFO] [stdout] --> lib.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | pub use lib::types::condition; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `crate::lib::errors::OrderError` [INFO] [stdout] --> lib/order_tracker.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::lib::errors::OrderError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> lib.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[deny(unused_imports)]` implied by `#[deny(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `SIZE_UNCHANGED` [INFO] [stdout] --> lib/order_book.rs:17:96 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::lib::types::{Price, Quantity, OrderConditions, MARKET_ORDER_PRICE, PRICE_UNCHANGED, SIZE_UNCHANGED}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::order_book::OrderBook` [INFO] [stdout] --> lib.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::order::Order` [INFO] [stdout] --> lib.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | pub use lib::order::Order; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::order_book::OrderBook` [INFO] [stdout] --> lib.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | pub use lib::order_book::OrderBook; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused imports: `OrderConditions`, `Price`, and `Quantity` [INFO] [stdout] --> lib.rs:113:22 [INFO] [stdout] | [INFO] [stdout] 113 | pub use lib::types::{Price, Quantity, OrderConditions}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused import: `lib::types::condition` [INFO] [stdout] --> lib.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | pub use lib::types::condition; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `OB: HasDepthTracker` is not satisfied [INFO] [stdout] --> lib/depth_listener.rs:18:54 [INFO] [stdout] | [INFO] [stdout] 18 | fn on_depth_change(&mut self, book: &OB, depth: &::DepthTracker); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `HasDepthTracker` is not implemented for `OB` [INFO] [stdout] | [INFO] [stdout] help: consider restricting type parameter `OB` with trait `HasDepthTracker` [INFO] [stdout] | [INFO] [stdout] 10 | pub trait DepthListener { [INFO] [stdout] | ++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `OB: HasDepthTracker` is not satisfied [INFO] [stdout] --> lib/depth_listener.rs:18:54 [INFO] [stdout] | [INFO] [stdout] 18 | fn on_depth_change(&mut self, book: &OB, depth: &::DepthTracker); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `HasDepthTracker` is not implemented for `OB` [INFO] [stdout] | [INFO] [stdout] help: consider restricting type parameter `OB` with trait `HasDepthTracker` [INFO] [stdout] | [INFO] [stdout] 10 | pub trait DepthListener { [INFO] [stdout] | ++++++++++++++++++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `O: Clone` is not satisfied [INFO] [stdout] --> lib/order_book_listener.rs:17:47 [INFO] [stdout] | [INFO] [stdout] 17 | fn on_order_book_change(&mut self, book: &OrderBook); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `O` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `lib::order_book::OrderBook` [INFO] [stdout] --> lib/order_book.rs:29:33 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^ required by this bound in `OrderBook` [INFO] [stdout] help: consider further restricting type parameter `O` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 12 | pub trait OrderBookListener { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `O: Clone` is not satisfied [INFO] [stdout] --> lib/order_book_listener.rs:17:47 [INFO] [stdout] | [INFO] [stdout] 17 | fn on_order_book_change(&mut self, book: &OrderBook); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Clone` is not implemented for `O` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `lib::order_book::OrderBook` [INFO] [stdout] --> lib/order_book.rs:29:33 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^ required by this bound in `OrderBook` [INFO] [stdout] help: consider further restricting type parameter `O` with trait `Clone` [INFO] [stdout] | [INFO] [stdout] 12 | pub trait OrderBookListener { [INFO] [stdout] | +++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn depth_order_book::OrderBook + 'static)` doesn't implement `Debug` [INFO] [stdout] --> lib/depth_order_book.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | order_book: Box>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn depth_order_book::OrderBook + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn depth_order_book::OrderBook + 'static)` [INFO] [stdout] = help: the following other types implement trait `Debug`: [INFO] [stdout] dyn Any + Send + Sync [INFO] [stdout] dyn Any + Send [INFO] [stdout] dyn Any [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn BboListener> + 'static)` doesn't implement `Debug` [INFO] [stdout] --> lib/depth_order_book.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 27 | bbo_listener: RefCell>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn BboListener> + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn BboListener> + 'static)` [INFO] [stdout] = help: the following other types implement trait `Debug`: [INFO] [stdout] dyn Any + Send + Sync [INFO] [stdout] dyn Any + Send [INFO] [stdout] dyn Any [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn DepthListener> + 'static)` doesn't implement `Debug` [INFO] [stdout] --> lib/depth_order_book.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 29 | depth_listener: RefCell>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn DepthListener> + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn DepthListener> + 'static)` [INFO] [stdout] = help: the following other types implement trait `Debug`: [INFO] [stdout] dyn Any + Send + Sync [INFO] [stdout] dyn Any + Send [INFO] [stdout] dyn Any [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn depth_order_book::OrderBook + 'static)` doesn't implement `Debug` [INFO] [stdout] --> lib/depth_order_book.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 23 | order_book: Box>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn depth_order_book::OrderBook + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn depth_order_book::OrderBook + 'static)` [INFO] [stdout] = help: the following other types implement trait `Debug`: [INFO] [stdout] dyn Any + Send + Sync [INFO] [stdout] dyn Any + Send [INFO] [stdout] dyn Any [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn BboListener> + 'static)` doesn't implement `Debug` [INFO] [stdout] --> lib/depth_order_book.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 27 | bbo_listener: RefCell>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn BboListener> + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn BboListener> + 'static)` [INFO] [stdout] = help: the following other types implement trait `Debug`: [INFO] [stdout] dyn Any + Send + Sync [INFO] [stdout] dyn Any + Send [INFO] [stdout] dyn Any [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `(dyn DepthListener> + 'static)` doesn't implement `Debug` [INFO] [stdout] --> lib/depth_order_book.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug)] [INFO] [stdout] | ----- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 29 | depth_listener: RefCell>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn DepthListener> + 'static)` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `(dyn DepthListener> + 'static)` [INFO] [stdout] = help: the following other types implement trait `Debug`: [INFO] [stdout] dyn Any + Send + Sync [INFO] [stdout] dyn Any + Send [INFO] [stdout] dyn Any [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:225:34 [INFO] [stdout] | [INFO] [stdout] 225 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:246:38 [INFO] [stdout] | [INFO] [stdout] 246 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:269:34 [INFO] [stdout] | [INFO] [stdout] 269 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:290:38 [INFO] [stdout] | [INFO] [stdout] 290 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:225:34 [INFO] [stdout] | [INFO] [stdout] 225 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:246:38 [INFO] [stdout] | [INFO] [stdout] 246 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:269:34 [INFO] [stdout] | [INFO] [stdout] 269 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&O` [INFO] [stdout] --> lib/order_book.rs:290:38 [INFO] [stdout] | [INFO] [stdout] 290 | if tracker.ptr() == *order { [INFO] [stdout] | ------------- ^^ ------ O [INFO] [stdout] | | [INFO] [stdout] | &O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> lib/order_book.rs:416:32 [INFO] [stdout] | [INFO] [stdout] 416 | let is_stopped = key < self.market_price; [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^ expected `ComparablePrice`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected because this is `lib::comparable_price::ComparablePrice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> lib/order_book.rs:416:32 [INFO] [stdout] | [INFO] [stdout] 416 | let is_stopped = key < self.market_price; [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^ expected `ComparablePrice`, found `u64` [INFO] [stdout] | | [INFO] [stdout] | expected because this is `lib::comparable_price::ComparablePrice` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&&O` [INFO] [stdout] --> lib/order_book.rs:837:31 [INFO] [stdout] | [INFO] [stdout] 837 | if &tracker.ptr() == order { [INFO] [stdout] | -------------- ^^ ----- &O [INFO] [stdout] | | [INFO] [stdout] | &&O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&&O` [INFO] [stdout] --> lib/order_book.rs:861:31 [INFO] [stdout] | [INFO] [stdout] 861 | if &tracker.ptr() == order { [INFO] [stdout] | -------------- ^^ ----- &O [INFO] [stdout] | | [INFO] [stdout] | &&O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&&O` [INFO] [stdout] --> lib/order_book.rs:837:31 [INFO] [stdout] | [INFO] [stdout] 837 | if &tracker.ptr() == order { [INFO] [stdout] | -------------- ^^ ----- &O [INFO] [stdout] | | [INFO] [stdout] | &&O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `&&O` [INFO] [stdout] --> lib/order_book.rs:861:31 [INFO] [stdout] | [INFO] [stdout] 861 | if &tracker.ptr() == order { [INFO] [stdout] | -------------- ^^ ----- &O [INFO] [stdout] | | [INFO] [stdout] | &&O [INFO] [stdout] | [INFO] [stdout] help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement [INFO] [stdout] | [INFO] [stdout] 73 | impl OrderBook where &O: PartialEq { [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> lib/order_book.rs:920:39 [INFO] [stdout] | [INFO] [stdout] 920 | listener.on_trade(self, callback.quantity, callback.price); [INFO] [stdout] | -------- ^^^^ expected `&OrderBook`, found `&mut OrderBook` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: `lib::order_book::OrderBook` and `lib::order_book::OrderBook` have similar names, but are actually distinct types [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib#1::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: method defined here [INFO] [stdout] --> lib/trade_listener.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | fn on_trade(&mut self, book: &OrderBook, qty: Quantity, price: Price); [INFO] [stdout] | ^^^^^^^^ ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> lib/order_book.rs:1041:51 [INFO] [stdout] | [INFO] [stdout] 1041 | listener.on_order_book_change(self); [INFO] [stdout] | -------------------- ^^^^ expected `&OrderBook`, found `&mut OrderBook` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: `lib::order_book::OrderBook` and `lib::order_book::OrderBook` have similar names, but are actually distinct types [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib#1::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: method defined here [INFO] [stdout] --> lib/order_book_listener.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | fn on_order_book_change(&mut self, book: &OrderBook); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> lib/order_book.rs:920:39 [INFO] [stdout] | [INFO] [stdout] 920 | listener.on_trade(self, callback.quantity, callback.price); [INFO] [stdout] | -------- ^^^^ expected `&OrderBook`, found `&mut OrderBook` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: `lib::order_book::OrderBook` and `lib::order_book::OrderBook` have similar names, but are actually distinct types [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib#1::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: method defined here [INFO] [stdout] --> lib/trade_listener.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | fn on_trade(&mut self, book: &OrderBook, qty: Quantity, price: Price); [INFO] [stdout] | ^^^^^^^^ ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> lib/order_book.rs:1041:51 [INFO] [stdout] | [INFO] [stdout] 1041 | listener.on_order_book_change(self); [INFO] [stdout] | -------------------- ^^^^ expected `&OrderBook`, found `&mut OrderBook` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] = note: `lib::order_book::OrderBook` and `lib::order_book::OrderBook` have similar names, but are actually distinct types [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib#1::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: `lib::order_book::OrderBook` is defined in module `crate::lib::order_book` of the current crate [INFO] [stdout] --> lib/order_book.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct OrderBook { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: method defined here [INFO] [stdout] --> lib/order_book_listener.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | fn on_order_book_change(&mut self, book: &OrderBook); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused variable: `new_qty` [INFO] [stdout] --> lib/order_tracker.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let new_qty = self.order.order_qty() + delta as Quantity; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_qty` [INFO] [stdout] | [INFO] [stdout] = note: `#[deny(unused_variables)]` implied by `#[deny(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:283:35 [INFO] [stdout] | [INFO] [stdout] 278 | &mut self.bid_levels[level_idx] [INFO] [stdout] | ------------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 283 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:294:39 [INFO] [stdout] | [INFO] [stdout] 287 | &mut self.excess_bid_levels [INFO] [stdout] | --------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 294 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:299:39 [INFO] [stdout] | [INFO] [stdout] 287 | &mut self.excess_bid_levels [INFO] [stdout] | --------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 299 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | ^^^^ second mutable borrow occurs here [INFO] [stdout] 300 | excess_levels.insert(price, level); [INFO] [stdout] | ------------- first borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:321:43 [INFO] [stdout] | [INFO] [stdout] 311 | &mut self.bid_levels[level_idx] [INFO] [stdout] | ------------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 321 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:338:47 [INFO] [stdout] | [INFO] [stdout] 327 | &mut self.excess_bid_levels [INFO] [stdout] | --------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 338 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:360:35 [INFO] [stdout] | [INFO] [stdout] 354 | &mut self.bid_levels[level_idx] [INFO] [stdout] | ------------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 360 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:371:39 [INFO] [stdout] | [INFO] [stdout] 364 | &mut self.excess_bid_levels [INFO] [stdout] | --------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 371 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:388:35 [INFO] [stdout] | [INFO] [stdout] 382 | &mut self.bid_levels[level_idx] [INFO] [stdout] | ------------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 388 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `*self` as mutable more than once at a time [INFO] [stdout] --> lib/depth.rs:399:39 [INFO] [stdout] | [INFO] [stdout] 392 | &mut self.excess_bid_levels [INFO] [stdout] | --------------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 399 | level.set_last_change(self.next_change_id()); [INFO] [stdout] | --------------- ^^^^ second mutable borrow occurs here [INFO] [stdout] | | [INFO] [stdout] | first borrow later used by call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.bid_levels[_]` as mutable because it is also borrowed as immutable [INFO] [stdout] --> lib/depth.rs:485:17 [INFO] [stdout] | [INFO] [stdout] 485 | self.bid_levels[i].copy_from(&self.bid_levels[prev]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^---------^----------------------^ [INFO] [stdout] | | | | [INFO] [stdout] | | | immutable borrow occurs here [INFO] [stdout] | | immutable borrow later used by call [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unused variable: `new_qty` [INFO] [stdout] --> lib/order_tracker.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | let new_qty = self.order.order_qty() + delta as Quantity; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_qty` [INFO] [stdout] | [INFO] [stdout] = note: `#[deny(unused_variables)]` implied by `#[deny(warnings)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust-engine` (lib) due to 42 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `rust-engine` (lib test) due to 32 previous errors [INFO] running `Command { std: "docker" "inspect" "80df8d9846872c20eac042fdcb440cbd331b98389e6753564f2553408f8f5730", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "80df8d9846872c20eac042fdcb440cbd331b98389e6753564f2553408f8f5730", kill_on_drop: false }` [INFO] [stdout] 80df8d9846872c20eac042fdcb440cbd331b98389e6753564f2553408f8f5730