[INFO] cloning repository https://github.com/ckolek/FIXEngine-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ckolek/FIXEngine-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fckolek%2FFIXEngine-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fckolek%2FFIXEngine-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9dd83c9a96e832824db68e5182369d4db3b52c47
[INFO] checking ckolek/FIXEngine-rs against e3607d549209cc9fdfe7e907123b4185210e2c2b for pr-158915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fckolek%2FFIXEngine-rs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ckolek/FIXEngine-rs
[INFO] finished tweaking git repo https://github.com/ckolek/FIXEngine-rs
[INFO] tweaked toml for git repo https://github.com/ckolek/FIXEngine-rs written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ckolek/FIXEngine-rs on toolchain e3607d549209cc9fdfe7e907123b4185210e2c2b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ckolek/FIXEngine-rs 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" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `fix` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69
[INFO] running `Command { std: "docker" "start" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `fix` (manifest) generated 1 warning
[INFO] [stderr]     Checking fix v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     message_listeners : Vec<Box<&'a mut MessageListener>>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     message_listeners : Vec<Box<&'a mut dyn MessageListener>>
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/messages/mod.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 |     field_values  : Vec<Box<Any>>,
[INFO] [stdout]   |                             ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     field_values  : Vec<Box<dyn Any>>,
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/messages/mod.rs:45:29
[INFO] [stdout]    |
[INFO] [stdout] 45 |     field_values  : Vec<Box<Any>>,
[INFO] [stdout]    |                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     field_values  : Vec<Box<dyn Any>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/engine/mod.rs:7:66
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn on_receive(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]   |                                                                  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn on_receive(&mut self, session_id : &SessionId, message : &dyn FIXMessage);
[INFO] [stdout]   |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/engine/mod.rs:8:63
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn on_send(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]   |                                                               ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn on_send(&mut self, session_id : &SessionId, message : &dyn FIXMessage);
[INFO] [stdout]   |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/fields/mod.rs:30:62
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&Any>, ()>;
[INFO] [stdout]    |                                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&dyn Any>, ()>;
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/fields/mod.rs:31:80
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&Any>, ()>;
[INFO] [stdout]    |                                                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&dyn Any>, ()>;
[INFO] [stdout]    |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/messages/mod.rs:31:62
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&Any>, ()> {
[INFO] [stdout]    |                                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&dyn Any>, ()> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/messages/mod.rs:35:80
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&Any>, ()> {
[INFO] [stdout]    |                                                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&dyn Any>, ()> {
[INFO] [stdout]    |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `fix` in the crate root
[INFO] [stdout]   --> src/messages/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use fix::fields::{FIXMessageField, StringField};
[INFO] [stdout]    |         ^^^ use of unresolved module or unlinked crate `fix`
[INFO] [stdout]    |
[INFO] [stdout] help: if you wanted to use a crate named `fix`, use `cargo add fix` to add it to your `Cargo.toml` and import it in your code
[INFO] [stdout]   --> src/lib.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 + extern crate fix;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:12:41
[INFO] [stdout]    |
[INFO] [stdout] 12 |     message_listeners : Vec<Box<&'a mut MessageListener>>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     message_listeners : Vec<Box<&'a mut dyn MessageListener>>
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/messages/mod.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 |     field_values  : Vec<Box<Any>>,
[INFO] [stdout]   |                             ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 |     field_values  : Vec<Box<dyn Any>>,
[INFO] [stdout]   |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/messages/mod.rs:45:29
[INFO] [stdout]    |
[INFO] [stdout] 45 |     field_values  : Vec<Box<Any>>,
[INFO] [stdout]    |                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     field_values  : Vec<Box<dyn Any>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/engine/mod.rs:7:66
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn on_receive(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]   |                                                                  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn on_receive(&mut self, session_id : &SessionId, message : &dyn FIXMessage);
[INFO] [stdout]   |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/engine/mod.rs:8:63
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn on_send(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]   |                                                               ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn on_send(&mut self, session_id : &SessionId, message : &dyn FIXMessage);
[INFO] [stdout]   |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/fields/mod.rs:30:62
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&Any>, ()>;
[INFO] [stdout]    |                                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&dyn Any>, ()>;
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/fields/mod.rs:31:80
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&Any>, ()>;
[INFO] [stdout]    |                                                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&dyn Any>, ()>;
[INFO] [stdout]    |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/messages/mod.rs:31:62
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&Any>, ()> {
[INFO] [stdout]    |                                                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn get_tag_value(&self, tag_num : u32) -> Result<Option<&dyn Any>, ()> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/messages/mod.rs:35:80
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&Any>, ()> {
[INFO] [stdout]    |                                                                                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn get_tag_value_at(&self, tag_num : u32, index : usize) -> Result<Option<&dyn Any>, ()> {
[INFO] [stdout]    |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `FIXMessage` is not dyn compatible
[INFO] [stdout]   --> src/engine/mod.rs:7:66
[INFO] [stdout]    |
[INFO] [stdout]  7 |     fn on_receive(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]    |                                                                  ^^^^^^^^^^ `FIXMessage` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/fields/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn get_value<T : Any, F : FIXMessageField<T>>(&self, field : &F) -> Result<Option<&T>, ()>;
[INFO] [stdout]    |        ^^^^^^^^^ ...because method `get_value` has generic type parameters
[INFO] [stdout] 28 |     fn get_value_at<T : Any, F : FIXMessageField<T>>(&self, field : &F, index : usize) -> Result<Option<&T>, ()>;
[INFO] [stdout]    |        ^^^^^^^^^^^^ ...because method `get_value_at` has generic type parameters
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/messages/mod.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait FIXMessage : FIXMessageFields {}
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout]    = help: consider moving `get_value` to another trait
[INFO] [stdout]    = help: consider moving `get_value_at` to another trait
[INFO] [stdout]    = help: only type `messages::RawFIXMessage` implements `FIXMessage` within this crate; consider using it directly instead.
[INFO] [stdout]    = note: `FIXMessage` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout]  7 -     fn on_receive(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]  7 +     fn on_receive(&mut self, session_id : &SessionId, message : &Self);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `FIXMessage` is not dyn compatible
[INFO] [stdout]   --> src/engine/mod.rs:8:63
[INFO] [stdout]    |
[INFO] [stdout]  8 |     fn on_send(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]    |                                                               ^^^^^^^^^^ `FIXMessage` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/fields/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn get_value<T : Any, F : FIXMessageField<T>>(&self, field : &F) -> Result<Option<&T>, ()>;
[INFO] [stdout]    |        ^^^^^^^^^ ...because method `get_value` has generic type parameters
[INFO] [stdout] 28 |     fn get_value_at<T : Any, F : FIXMessageField<T>>(&self, field : &F, index : usize) -> Result<Option<&T>, ()>;
[INFO] [stdout]    |        ^^^^^^^^^^^^ ...because method `get_value_at` has generic type parameters
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/messages/mod.rs:6:11
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait FIXMessage : FIXMessageFields {}
[INFO] [stdout]    |           ---------- this trait is not dyn compatible...
[INFO] [stdout]    = help: consider moving `get_value` to another trait
[INFO] [stdout]    = help: consider moving `get_value_at` to another trait
[INFO] [stdout]    = help: only type `messages::RawFIXMessage` implements `FIXMessage` within this crate; consider using it directly instead.
[INFO] [stdout]    = note: `FIXMessage` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout]  8 -     fn on_send(&mut self, session_id : &SessionId, message : &FIXMessage);
[INFO] [stdout]  8 +     fn on_send(&mut self, session_id : &SessionId, message : &Self);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fix` (lib test) due to 1 previous error; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/fields/mod.rs:21:25
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn get_value(&self, raw : Vec<u8>) -> Result<String, ()> {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[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/messages/mod.rs:54:55
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn add_value<T : Any, F : FIXMessageField<T>>(mut self, field : &F, value : T) -> Self {
[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/messages/mod.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |             let mut field_indices = self.field_indices.entry(tag_num).or_insert(Vec::new());
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0038`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fix` (lib) due to 2 previous errors; 12 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69", kill_on_drop: false }`
[INFO] [stdout] 41f130191492fb0be313b3a86962eb4adf6adfa90303091896c831ddda719a69
