[INFO] cloning repository https://github.com/joewlo/fb-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/joewlo/fb-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoewlo%2Ffb-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoewlo%2Ffb-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3d8647b3a226ac217fb6a4e107529515e08a3865
[INFO] checking joewlo/fb-rs against master#c290daa1e5274a52e54a0f49e31bd70192abc606 for pr-133502-23
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoewlo%2Ffb-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/joewlo/fb-rs
[INFO] finished tweaking git repo https://github.com/joewlo/fb-rs
[INFO] tweaked toml for git repo https://github.com/joewlo/fb-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/joewlo/fb-rs on toolchain c290daa1e5274a52e54a0f49e31bd70192abc606
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/joewlo/fb-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" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "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] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust_decimal v1.42.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5
[INFO] running `Command { std: "docker" "start" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5", 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" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5", 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" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling rust_decimal v1.42.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling sqlformat v0.2.6
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling webpki-roots v0.25.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking bigdecimal v0.3.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]    Compiling rust_decimal_macros v1.40.0
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sqlx-core v0.7.4
[INFO] [stderr]     Checking sqlx-postgres v0.7.4
[INFO] [stderr]    Compiling sqlx-macros-core v0.7.4
[INFO] [stderr]    Compiling sqlx-macros v0.7.4
[INFO] [stderr]     Checking sqlx v0.7.4
[INFO] [stderr]     Checking fb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `NaiveDate`
[INFO] [stdout]  --> src/kernel/event.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{NaiveDate, DateTime, Utc};
[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: `super::types::*`
[INFO] [stdout]  --> src/kernel/event.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/kernel/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/kernel/engine.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{NaiveDate, DateTime, Utc};
[INFO] [stdout]   |                         ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::types::*`
[INFO] [stdout]  --> src/kernel/engine.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::attribute_bag::AttributeBag`
[INFO] [stdout]  --> src/kernel/pipeline.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::attribute_bag::AttributeBag;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::attribute_bag::AttributeBag`
[INFO] [stdout]  --> src/kernel/template_engine.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::attribute_bag::AttributeBag;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NaiveDate`
[INFO] [stdout]  --> src/kernel/event.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{NaiveDate, DateTime, Utc};
[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: `super::types::*`
[INFO] [stdout]  --> src/kernel/event.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::DatabaseConfig`
[INFO] [stdout]   --> src/cli/faker.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::config::DatabaseConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/kernel/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/kernel/engine.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{NaiveDate, DateTime, Utc};
[INFO] [stdout]   |                         ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::types::*`
[INFO] [stdout]  --> src/kernel/engine.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::attribute_bag::AttributeBag`
[INFO] [stdout]  --> src/kernel/pipeline.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::attribute_bag::AttributeBag;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::attribute_bag::AttributeBag`
[INFO] [stdout]  --> src/kernel/template_engine.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::attribute_bag::AttributeBag;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::DatabaseConfig`
[INFO] [stdout]   --> src/cli/faker.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::config::DatabaseConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]  --> src/enrichment/bond.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_decimal::Decimal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]  --> src/enrichment/equity.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_decimal::Decimal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bond::BondContract`
[INFO] [stdout]  --> src/enrichment/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use bond::BondContract;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crypto::CryptoContract`
[INFO] [stdout]  --> src/enrichment/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use crypto::CryptoContract;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `equity::EquityContract`
[INFO] [stdout]  --> src/enrichment/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use equity::EquityContract;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]  --> src/enrichment/bond.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_decimal::Decimal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::Decimal`
[INFO] [stdout]  --> src/enrichment/equity.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rust_decimal::Decimal;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bond::BondContract`
[INFO] [stdout]  --> src/enrichment/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use bond::BondContract;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crypto::CryptoContract`
[INFO] [stdout]  --> src/enrichment/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use crypto::CryptoContract;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `equity::EquityContract`
[INFO] [stdout]  --> src/enrichment/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use equity::EquityContract;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/kernel/pipeline.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     async fn ingest(&self, mut raw: RawTransaction) -> Result<RawTransaction, FbError> {
[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/kernel/pipeline.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |     async fn ingest(&self, mut raw: RawTransaction) -> Result<RawTransaction, FbError> {
[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: unused variable: `e`
[INFO] [stdout]   --> src/kernel/fast_writer.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |             for (i, e) in chunk.iter().enumerate() {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/kernel/fast_writer.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |             for (i, e) in chunk.iter().enumerate() {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `desks`
[INFO] [stdout]   --> src/cli/faker.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let desks = vec!["ny-fi", "ny-eq", "ny-crypto"];
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_desks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/cli/faker.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         for i in 0..count {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `desks`
[INFO] [stdout]   --> src/cli/faker.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let desks = vec!["ny-fi", "ny-eq", "ny-crypto"];
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_desks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/cli/faker.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         for i in 0..count {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/enrichment/bond.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn validate(&self, tx: &RawTransaction) -> Vec<ValidationError> { vec![] }
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/enrichment/crypto.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn validate(&self, tx: &RawTransaction) -> Vec<ValidationError> { vec![] }
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/enrichment/equity.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn validate(&self, tx: &RawTransaction) -> Vec<ValidationError> { vec![] }
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/enrichment/bond.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn validate(&self, tx: &RawTransaction) -> Vec<ValidationError> { vec![] }
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/enrichment/crypto.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn validate(&self, tx: &RawTransaction) -> Vec<ValidationError> { vec![] }
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]   --> src/enrichment/equity.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn validate(&self, tx: &RawTransaction) -> Vec<ValidationError> { vec![] }
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntryType` is never used
[INFO] [stdout]   --> src/kernel/types.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum EntryType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `merge`, `get_enum`, and `set_enum` are never used
[INFO] [stdout]   --> src/kernel/attribute_bag.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AttributeBag {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn merge(&self, derived: &AttributeBag) -> AttributeBag {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn get_enum(&self, key: &str) -> Option<String> { self.enums.get(key).cloned() }
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn set_enum(&mut self, key: &str, value: &str) { self.enums.insert(key.to_string(), value.to_string()); }
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantityPosition` is never constructed
[INFO] [stdout]    --> src/kernel/models.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct QuantityPosition {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Event` is never constructed
[INFO] [stdout]   --> src/kernel/event.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Event {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_POSTED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const EVENT_TRANSACTION_POSTED: &str = "TransactionPosted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_FAILED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const EVENT_TRANSACTION_FAILED: &str = "TransactionFailed";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_CANCELLED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const EVENT_TRANSACTION_CANCELLED: &str = "TransactionCancelled";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_ENRICHED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const EVENT_TRANSACTION_ENRICHED: &str = "TransactionEnriched";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_ACCOUNT_OPENED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const EVENT_ACCOUNT_OPENED: &str = "AccountOpened";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_ACCOUNT_FROZEN` is never used
[INFO] [stdout]   --> src/kernel/event.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const EVENT_ACCOUNT_FROZEN: &str = "AccountFrozen";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_ACCOUNT_CLOSED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const EVENT_ACCOUNT_CLOSED: &str = "AccountClosed";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_POSITION_UPDATED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const EVENT_POSITION_UPDATED: &str = "PositionUpdated";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_BALANCE_UPDATED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const EVENT_BALANCE_UPDATED: &str = "BalanceUpdated";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_CHILD_TRANSACTION_POSTED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const EVENT_CHILD_TRANSACTION_POSTED: &str = "ChildTransactionPosted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AGGREGATE_TRANSACTION` is never used
[INFO] [stdout]   --> src/kernel/event.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const AGGREGATE_TRANSACTION: &str = "Transaction";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AGGREGATE_ACCOUNT` is never used
[INFO] [stdout]   --> src/kernel/event.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const AGGREGATE_ACCOUNT: &str = "Account";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAGE_ENRICH` is never used
[INFO] [stdout]   --> src/kernel/event.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const STAGE_ENRICH: &str = "ENRICH";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAGE_GENERATE` is never used
[INFO] [stdout]   --> src/kernel/event.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const STAGE_GENERATE: &str = "GENERATE";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metadata` is never read
[INFO] [stdout]   --> src/kernel/event.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct RawTransaction {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub metadata: Option<AttributeBag>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RawTransaction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BalanceSummary` is never constructed
[INFO] [stdout]   --> src/kernel/event.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct BalanceSummary {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/kernel/errors.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum FbError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout]  5 |     #[error("invalid number format")]
[INFO] [stdout]  6 |     InvalidNumber,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]  7 |     #[error("attribute bag is nil")]
[INFO] [stdout]  8 |     NilAttributeBag,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     DuplicateEvent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     #[error("event not found")]
[INFO] [stdout] 14 |     EventNotFound,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     #[error("version conflict: concurrent modification")]
[INFO] [stdout] 16 |     VersionConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     #[error("account is frozen")]
[INFO] [stdout] 18 |     AccountFrozen,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     TenantInactive,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     SchemaNotFound,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     #[error("invalid instrument type")]
[INFO] [stdout] 30 |     InstrumentInvalid,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     #[error("idempotency key already processed")]
[INFO] [stdout] 32 |     IdempotencyKeyExists,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     #[error("transaction DAG contains a cycle")]
[INFO] [stdout] 34 |     DagCycle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 35 |     #[error("parent transaction is not posted")]
[INFO] [stdout] 36 |     ParentNotPosted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     #[error("cannot void transaction with posted children")]
[INFO] [stdout] 38 |     ChildExists,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     #[error("unauthorized")]
[INFO] [stdout] 40 |     Unauthorized,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 41 |     #[error("invalid transaction status transition")]
[INFO] [stdout] 42 |     InvalidStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 43 |     #[error("side must be DEBIT or CREDIT")]
[INFO] [stdout] 44 |     InvalidSide,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 45 |     #[error("transaction must have at least one entry")]
[INFO] [stdout] 46 |     EmptyEntries,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `enrich` and `generate` are never used
[INFO] [stdout]   --> src/kernel/errors.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FbError {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn enrich(tx_id: &str, reason: impl std::fmt::Display) -> Self { Self::pipeline(STAGE_ENRICH, tx_id, reason) }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 66 |     pub fn generate(tx_id: &str, reason: impl std::fmt::Display) -> Self { Self::pipeline(STAGE_GENERATE, tx_id, reason) }
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_post` is never used
[INFO] [stdout]   --> src/kernel/engine.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait Contract: Send + Sync {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 33 |     async fn on_post(&self, tx: &PostedTransaction) -> Result<(), FbError>;
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_schema` and `list_instrument_types` are never used
[INFO] [stdout]   --> src/kernel/engine.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub trait ContractRegistry: Send + Sync {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] 39 |     async fn get_contract(&self, tenant_id: Uuid, instrument_type: &str) -> Result<Arc<dyn Contract + Send + Sync>, FbError>;
[INFO] [stdout] 40 |     async fn get_schema(&self, tenant_id: Uuid, instrument_type: &str) -> Result<InstrumentSchema, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 41 |     fn register_contract(&mut self, instrument_type: &str, contract: Arc<dyn Contract + Send + Sync>);
[INFO] [stdout] 42 |     async fn list_instrument_types(&self, tenant_id: Uuid) -> Result<Vec<String>, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `resolve_account` and `load_template` are never used
[INFO] [stdout]   --> src/kernel/engine.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait TemplateEngine: Send + Sync {
[INFO] [stdout]    |           -------------- methods in this trait
[INFO] [stdout] 48 |     async fn generate_entries(&self, template: &PostingTemplate, enriched: &EnrichedTransaction) -> R...
[INFO] [stdout] 49 |     async fn resolve_account(&self, code_template: &str, ctx: &ResolveContext) -> Result<Uuid, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     async fn load_template(&self, name: &str) -> Result<PostingTemplate, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fee_code`, `fee_category`, `fee_name`, `fee_amount`, and `currency` are never read
[INFO] [stdout]   --> src/kernel/engine.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FeeItem {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 74 |     pub fee_code: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 75 |     pub fee_category: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub fee_name: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 77 |     pub fee_amount: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 78 |     pub currency: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeeItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `track_position` is never used
[INFO] [stdout]   --> src/kernel/engine.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub trait PositionTracker: Send + Sync {
[INFO] [stdout]    |           --------------- method in this trait
[INFO] [stdout] 84 |     async fn track_position(&self, tenant_id: Uuid, account_id: Uuid, instrument_id: &str, side: &str, quantity: Decimal, amount: De...
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `passed` is never read
[INFO] [stdout]   --> src/kernel/engine.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct ComplianceCheckResult {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] 95 |     pub passed: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ComplianceCheckResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alert_type`, `severity`, and `message` are never read
[INFO] [stdout]    --> src/kernel/engine.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct ComplianceAlert {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 102 |     pub alert_type: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 103 |     pub severity: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 104 |     pub message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComplianceAlert` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `append` is never used
[INFO] [stdout]    --> src/kernel/engine.rs:110:14
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait EventStore: Send + Sync {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] 110 |     async fn append(&self, tenant_id: Uuid, events: &[Event]) -> Result<(), FbError>;
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `publish` is never used
[INFO] [stdout]    --> src/kernel/engine.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub trait EventPublisher: Send + Sync {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] 116 |     async fn publish(&self, event: &Event) -> Result<(), FbError>;
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position_tracker`, `event_store`, and `event_pub` are never read
[INFO] [stdout]   --> src/kernel/pipeline.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PostingEngineImpl {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub position_tracker: Option<Box<dyn PositionTracker + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub compliance_checker: Option<Box<dyn ComplianceChecker + Send + Sync>>,
[INFO] [stdout] 21 |     pub event_store: Option<Box<dyn EventStore + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 22 |     pub event_pub: Option<Box<dyn EventPublisher + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `templates` is never read
[INFO] [stdout]   --> src/kernel/template_engine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct InMemoryTemplateEngine {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 14 |     pub resolver: Box<dyn AccountResolver>,
[INFO] [stdout] 15 |     templates: RwLock<HashMap<String, PostingTemplate>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `register` is never used
[INFO] [stdout]   --> src/kernel/template_engine.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl InMemoryTemplateEngine {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn register(&self, tmpl: PostingTemplate) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimpleEntryWriter` is never constructed
[INFO] [stdout]  --> src/kernel/batch_writer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SimpleEntryWriter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/kernel/batch_writer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl SimpleEntryWriter {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new() -> Self { Self { entries: Mutex::new(Vec::new()) } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutputFormatter` is never used
[INFO] [stdout]   --> src/cli/output.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait OutputFormatter {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_headers` is never used
[INFO] [stdout]   --> src/cli/output.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn collect_headers(items: &[serde_json::Value]) -> Vec<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cell_value` is never used
[INFO] [stdout]   --> src/cli/output.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn cell_value(item: &serde_json::Value, key: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_output` is never used
[INFO] [stdout]    --> src/cli/output.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn print_output<T: OutputFormatter>(data: &T, fmt: &OutputFormat) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ServerConfig` is never constructed
[INFO] [stdout]  --> src/config.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ServerConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct LoggingConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TenantConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TenantConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/config.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_host` is never used
[INFO] [stdout]   --> src/config.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn default_host() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_port` is never used
[INFO] [stdout]    --> src/config.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn default_port() -> u16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_log_level` is never used
[INFO] [stdout]    --> src/config.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn default_log_level() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_schema` is never used
[INFO] [stdout]    --> src/config.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn default_schema() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load` is never used
[INFO] [stdout]    --> src/config.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Config {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 121 |     pub fn load<P: AsRef<Path>>(path: P) -> Result<Self, anyhow::Error> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JournalEntry` is never constructed
[INFO] [stdout]  --> src/db/batch_writer.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct JournalEntry {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BatchWriterError` is never used
[INFO] [stdout]   --> src/db/batch_writer.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum BatchWriterError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchEntryWriter` is never constructed
[INFO] [stdout]   --> src/db/batch_writer.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct BatchEntryWriter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/db/batch_writer.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl BatchEntryWriter {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 32 |     pub fn new(pool: PgPool, batch_size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn buffer_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn push(&mut self, entry: JournalEntry) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn needs_flush(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn flush(&mut self) -> Result<usize, BatchWriterError> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Event` is never constructed
[INFO] [stdout]  --> src/db/event_store.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Event {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewEvent` is never constructed
[INFO] [stdout]   --> src/db/event_store.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct NewEvent {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventStoreError` is never used
[INFO] [stdout]   --> src/db/event_store.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum EventStoreError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PostgresEventStore` is never constructed
[INFO] [stdout]   --> src/db/event_store.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct PostgresEventStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `append`, `events`, `events_by_aggregate`, `latest_version`, and `get_by_event_id` are never used
[INFO] [stdout]    --> src/db/event_store.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl PostgresEventStore {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub async fn append(
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub async fn events(
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub async fn events_by_aggregate(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub async fn latest_version(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn get_by_event_id(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MIGRATOR` is never used
[INFO] [stdout]  --> src/db/migrations.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static MIGRATOR: Migrator = sqlx::migrate!("./migrations");
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationRunner` is never constructed
[INFO] [stdout]  --> src/db/migrations.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MigrationRunner {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/db/migrations.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl MigrationRunner {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn run(&self, pool: &PgPool) -> Result<(), sqlx::migrate::MigrateError> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_migrations` is never used
[INFO] [stdout]   --> src/db/migrations.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn run_migrations(pool: &PgPool) -> Result<(), sqlx::migrate::MigrateError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_account`, `get_account_by_code`, and `list_accounts` are never used
[INFO] [stdout]    --> src/ledger/account_store.rs:118:18
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl AccountStore {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn get_account(&self, id: Uuid) -> Result<Account, FbError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub async fn get_account_by_code(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub async fn list_accounts(&self, tenant_id: Uuid) -> Result<Vec<Account>, FbError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeScheduleRow` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct FeeScheduleRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TierConfig` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TierConfig {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tier` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Tier {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/fee_engine.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeEngine` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct FeeEngine {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load_fee_schedules`, and `compute_fee_amount` are never used
[INFO] [stdout]   --> src/ledger/fee_engine.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl FeeEngine {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     async fn load_fee_schedules(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn compute_fee_amount(schedule: &FeeScheduleRow, basis_amount: Decimal) -> Decimal {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionCostBasisRow` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct PositionCostBasisRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceFeedRow` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct PriceFeedRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PnlSnapshotRow` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct PnlSnapshotRow {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionSummary` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct PositionSummary {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PNLEngine` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct PNLEngine {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_position_summary`, `calculate_daily_pnl`, `ingest_price`, and `mark_to_market` are never used
[INFO] [stdout]    --> src/ledger/pnl_engine.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl PNLEngine {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  79 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub async fn get_position_summary(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub async fn calculate_daily_pnl(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub async fn ingest_price(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     async fn mark_to_market(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxLotRow` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TaxLotRow {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxLotConsumptionRow` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct TaxLotConsumptionRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxJurisdictionRow` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TaxJurisdictionRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxLot` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct TaxLot {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LotConsumption` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct LotConsumption {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxComputation` is never constructed
[INFO] [stdout]    --> src/ledger/tax_engine.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct TaxComputation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]    --> src/ledger/tax_engine.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxEngine` is never constructed
[INFO] [stdout]    --> src/ledger/tax_engine.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub struct TaxEngine {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_lot`, `load_open_lots`, `consume_lots`, and `compute_tax` are never used
[INFO] [stdout]    --> src/ledger/tax_engine.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl TaxEngine {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 148 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub async fn create_lot(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     async fn load_open_lots(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub async fn consume_lots(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub async fn compute_tax(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CashFlowRow` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct CashFlowRow {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CashFlow` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct CashFlow {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceResult` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct PerformanceResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/perf_engine.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceEngine` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct PerformanceEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ledger/perf_engine.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl PerformanceEngine {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     async fn load_cash_flows(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     async fn load_position_market_values(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     async fn load_position_valuation(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub async fn calculate_performance(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn compute_irr(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn compute_modified_dietz(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     fn compute_twr(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SanctionedEntityRow` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct SanctionedEntityRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AmlRuleRow` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct AmlRuleRow {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComplianceAlertRow` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct ComplianceAlertRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/compliance.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `levenshtein_distance` is never used
[INFO] [stdout]   --> src/ledger/compliance.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn levenshtein_distance(a: &str, b: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fuzzy_score` is never used
[INFO] [stdout]   --> src/ledger/compliance.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn fuzzy_score(query: &str, target: &str) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComplianceEngine` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct ComplianceEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `seed_sanctions`, `sanctions_check`, `aml_check`, and `log_alert` are never used
[INFO] [stdout]    --> src/ledger/compliance.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl ComplianceEngine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  98 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub async fn seed_sanctions(&self, tenant_id: Uuid) -> Result<(), FbError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     async fn sanctions_check(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     async fn aml_check(
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     async fn log_alert(
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStatementRow` is never constructed
[INFO] [stdout]  --> src/ledger/statements.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct PositionStatementRow {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStatement` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PositionStatement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStatementEntry` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PositionStatementEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionStatement` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct TransactionStatement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionStatementEntry` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct TransactionStatementEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/statements.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatementsEngine` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct StatementsEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `generate_position_statement`, and `generate_transaction_statement` are never used
[INFO] [stdout]    --> src/ledger/statements.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl StatementsEngine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  77 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub async fn generate_position_statement(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn generate_transaction_statement(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountBalanceRow` is never constructed
[INFO] [stdout]  --> src/ledger/recon.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct AccountBalanceRow {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionBalanceRow` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct PositionBalanceRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconDiscrepancy` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ReconDiscrepancy {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconResult` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct ReconResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/recon.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconEngine` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct ReconEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `reconcile` are never used
[INFO] [stdout]   --> src/ledger/recon.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ReconEngine {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 52 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub async fn reconcile(
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `list`, `activate`, and `deactivate` are never used
[INFO] [stdout]   --> src/tenant/mod.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait TenantService: Send + Sync {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout]  9 |     async fn create(&self, name: &str, short_code: &str) -> Result<Tenant, FbError>;
[INFO] [stdout] 10 |     async fn list(&self) -> Result<Vec<Tenant>, FbError>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 11 |     async fn get_by_code(&self, code: &str) -> Result<Tenant, FbError>;
[INFO] [stdout] 12 |     async fn activate(&self, code: &str) -> Result<(), FbError>;
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 13 |     async fn deactivate(&self, code: &str) -> Result<(), FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EntryType` is never used
[INFO] [stdout]   --> src/kernel/types.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum EntryType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `merge`, `get_enum`, and `set_enum` are never used
[INFO] [stdout]   --> src/kernel/attribute_bag.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AttributeBag {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn merge(&self, derived: &AttributeBag) -> AttributeBag {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn get_enum(&self, key: &str) -> Option<String> { self.enums.get(key).cloned() }
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn set_enum(&mut self, key: &str, value: &str) { self.enums.insert(key.to_string(), value.to_string()); }
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QuantityPosition` is never constructed
[INFO] [stdout]    --> src/kernel/models.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct QuantityPosition {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Event` is never constructed
[INFO] [stdout]   --> src/kernel/event.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Event {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_POSTED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const EVENT_TRANSACTION_POSTED: &str = "TransactionPosted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_FAILED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const EVENT_TRANSACTION_FAILED: &str = "TransactionFailed";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_CANCELLED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const EVENT_TRANSACTION_CANCELLED: &str = "TransactionCancelled";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_TRANSACTION_ENRICHED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const EVENT_TRANSACTION_ENRICHED: &str = "TransactionEnriched";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_ACCOUNT_OPENED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const EVENT_ACCOUNT_OPENED: &str = "AccountOpened";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_ACCOUNT_FROZEN` is never used
[INFO] [stdout]   --> src/kernel/event.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const EVENT_ACCOUNT_FROZEN: &str = "AccountFrozen";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_ACCOUNT_CLOSED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const EVENT_ACCOUNT_CLOSED: &str = "AccountClosed";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_POSITION_UPDATED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const EVENT_POSITION_UPDATED: &str = "PositionUpdated";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_BALANCE_UPDATED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const EVENT_BALANCE_UPDATED: &str = "BalanceUpdated";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVENT_CHILD_TRANSACTION_POSTED` is never used
[INFO] [stdout]   --> src/kernel/event.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const EVENT_CHILD_TRANSACTION_POSTED: &str = "ChildTransactionPosted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AGGREGATE_TRANSACTION` is never used
[INFO] [stdout]   --> src/kernel/event.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const AGGREGATE_TRANSACTION: &str = "Transaction";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AGGREGATE_ACCOUNT` is never used
[INFO] [stdout]   --> src/kernel/event.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const AGGREGATE_ACCOUNT: &str = "Account";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAGE_ENRICH` is never used
[INFO] [stdout]   --> src/kernel/event.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const STAGE_ENRICH: &str = "ENRICH";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAGE_GENERATE` is never used
[INFO] [stdout]   --> src/kernel/event.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const STAGE_GENERATE: &str = "GENERATE";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metadata` is never read
[INFO] [stdout]   --> src/kernel/event.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct RawTransaction {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub metadata: Option<AttributeBag>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RawTransaction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BalanceSummary` is never constructed
[INFO] [stdout]   --> src/kernel/event.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct BalanceSummary {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/kernel/errors.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum FbError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout]  5 |     #[error("invalid number format")]
[INFO] [stdout]  6 |     InvalidNumber,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]  7 |     #[error("attribute bag is nil")]
[INFO] [stdout]  8 |     NilAttributeBag,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     DuplicateEvent,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     #[error("event not found")]
[INFO] [stdout] 14 |     EventNotFound,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     #[error("version conflict: concurrent modification")]
[INFO] [stdout] 16 |     VersionConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     #[error("account is frozen")]
[INFO] [stdout] 18 |     AccountFrozen,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     TenantInactive,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     SchemaNotFound,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     #[error("invalid instrument type")]
[INFO] [stdout] 30 |     InstrumentInvalid,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     #[error("idempotency key already processed")]
[INFO] [stdout] 32 |     IdempotencyKeyExists,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     #[error("transaction DAG contains a cycle")]
[INFO] [stdout] 34 |     DagCycle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 35 |     #[error("parent transaction is not posted")]
[INFO] [stdout] 36 |     ParentNotPosted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     #[error("cannot void transaction with posted children")]
[INFO] [stdout] 38 |     ChildExists,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     #[error("unauthorized")]
[INFO] [stdout] 40 |     Unauthorized,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 41 |     #[error("invalid transaction status transition")]
[INFO] [stdout] 42 |     InvalidStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 43 |     #[error("side must be DEBIT or CREDIT")]
[INFO] [stdout] 44 |     InvalidSide,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 45 |     #[error("transaction must have at least one entry")]
[INFO] [stdout] 46 |     EmptyEntries,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `enrich` and `generate` are never used
[INFO] [stdout]   --> src/kernel/errors.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FbError {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn enrich(tx_id: &str, reason: impl std::fmt::Display) -> Self { Self::pipeline(STAGE_ENRICH, tx_id, reason) }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 66 |     pub fn generate(tx_id: &str, reason: impl std::fmt::Display) -> Self { Self::pipeline(STAGE_GENERATE, tx_id, reason) }
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_post` is never used
[INFO] [stdout]   --> src/kernel/engine.rs:33:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub trait Contract: Send + Sync {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 33 |     async fn on_post(&self, tx: &PostedTransaction) -> Result<(), FbError>;
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_schema` and `list_instrument_types` are never used
[INFO] [stdout]   --> src/kernel/engine.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub trait ContractRegistry: Send + Sync {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] 39 |     async fn get_contract(&self, tenant_id: Uuid, instrument_type: &str) -> Result<Arc<dyn Contract + Send + Sync>, FbError>;
[INFO] [stdout] 40 |     async fn get_schema(&self, tenant_id: Uuid, instrument_type: &str) -> Result<InstrumentSchema, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 41 |     fn register_contract(&mut self, instrument_type: &str, contract: Arc<dyn Contract + Send + Sync>);
[INFO] [stdout] 42 |     async fn list_instrument_types(&self, tenant_id: Uuid) -> Result<Vec<String>, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `resolve_account` and `load_template` are never used
[INFO] [stdout]   --> src/kernel/engine.rs:49:14
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub trait TemplateEngine: Send + Sync {
[INFO] [stdout]    |           -------------- methods in this trait
[INFO] [stdout] 48 |     async fn generate_entries(&self, template: &PostingTemplate, enriched: &EnrichedTransaction) -> R...
[INFO] [stdout] 49 |     async fn resolve_account(&self, code_template: &str, ctx: &ResolveContext) -> Result<Uuid, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     async fn load_template(&self, name: &str) -> Result<PostingTemplate, FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fee_code`, `fee_category`, `fee_name`, `fee_amount`, and `currency` are never read
[INFO] [stdout]   --> src/kernel/engine.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FeeItem {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 74 |     pub fee_code: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 75 |     pub fee_category: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub fee_name: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 77 |     pub fee_amount: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 78 |     pub currency: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeeItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `track_position` is never used
[INFO] [stdout]   --> src/kernel/engine.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub trait PositionTracker: Send + Sync {
[INFO] [stdout]    |           --------------- method in this trait
[INFO] [stdout] 84 |     async fn track_position(&self, tenant_id: Uuid, account_id: Uuid, instrument_id: &str, side: &str, quantity: Decimal, amount: De...
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `passed` is never read
[INFO] [stdout]   --> src/kernel/engine.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct ComplianceCheckResult {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] 95 |     pub passed: bool,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ComplianceCheckResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `alert_type`, `severity`, and `message` are never read
[INFO] [stdout]    --> src/kernel/engine.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct ComplianceAlert {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 102 |     pub alert_type: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 103 |     pub severity: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 104 |     pub message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComplianceAlert` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `append` is never used
[INFO] [stdout]    --> src/kernel/engine.rs:110:14
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait EventStore: Send + Sync {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] 110 |     async fn append(&self, tenant_id: Uuid, events: &[Event]) -> Result<(), FbError>;
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `publish` is never used
[INFO] [stdout]    --> src/kernel/engine.rs:116:14
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub trait EventPublisher: Send + Sync {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] 116 |     async fn publish(&self, event: &Event) -> Result<(), FbError>;
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position_tracker`, `event_store`, and `event_pub` are never read
[INFO] [stdout]   --> src/kernel/pipeline.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct PostingEngineImpl {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub position_tracker: Option<Box<dyn PositionTracker + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub compliance_checker: Option<Box<dyn ComplianceChecker + Send + Sync>>,
[INFO] [stdout] 21 |     pub event_store: Option<Box<dyn EventStore + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 22 |     pub event_pub: Option<Box<dyn EventPublisher + Send + Sync>>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `templates` is never read
[INFO] [stdout]   --> src/kernel/template_engine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct InMemoryTemplateEngine {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 14 |     pub resolver: Box<dyn AccountResolver>,
[INFO] [stdout] 15 |     templates: RwLock<HashMap<String, PostingTemplate>>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `register` is never used
[INFO] [stdout]   --> src/kernel/template_engine.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl InMemoryTemplateEngine {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn register(&self, tmpl: PostingTemplate) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimpleEntryWriter` is never constructed
[INFO] [stdout]  --> src/kernel/batch_writer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SimpleEntryWriter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/kernel/batch_writer.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl SimpleEntryWriter {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new() -> Self { Self { entries: Mutex::new(Vec::new()) } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OutputFormatter` is never used
[INFO] [stdout]   --> src/cli/output.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait OutputFormatter {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_headers` is never used
[INFO] [stdout]   --> src/cli/output.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn collect_headers(items: &[serde_json::Value]) -> Vec<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cell_value` is never used
[INFO] [stdout]   --> src/cli/output.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn cell_value(item: &serde_json::Value, key: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_output` is never used
[INFO] [stdout]    --> src/cli/output.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn print_output<T: OutputFormatter>(data: &T, fmt: &OutputFormat) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ServerConfig` is never constructed
[INFO] [stdout]  --> src/config.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ServerConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct LoggingConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TenantConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TenantConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/config.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_host` is never used
[INFO] [stdout]   --> src/config.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn default_host() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_port` is never used
[INFO] [stdout]    --> src/config.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn default_port() -> u16 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_log_level` is never used
[INFO] [stdout]    --> src/config.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn default_log_level() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_schema` is never used
[INFO] [stdout]    --> src/config.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn default_schema() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load` is never used
[INFO] [stdout]    --> src/config.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Config {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 121 |     pub fn load<P: AsRef<Path>>(path: P) -> Result<Self, anyhow::Error> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JournalEntry` is never constructed
[INFO] [stdout]  --> src/db/batch_writer.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct JournalEntry {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BatchWriterError` is never used
[INFO] [stdout]   --> src/db/batch_writer.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum BatchWriterError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchEntryWriter` is never constructed
[INFO] [stdout]   --> src/db/batch_writer.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct BatchEntryWriter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/db/batch_writer.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl BatchEntryWriter {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 32 |     pub fn new(pool: PgPool, batch_size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn buffer_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn push(&mut self, entry: JournalEntry) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn needs_flush(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn flush(&mut self) -> Result<usize, BatchWriterError> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Event` is never constructed
[INFO] [stdout]  --> src/db/event_store.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Event {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NewEvent` is never constructed
[INFO] [stdout]   --> src/db/event_store.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct NewEvent {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventStoreError` is never used
[INFO] [stdout]   --> src/db/event_store.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum EventStoreError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PostgresEventStore` is never constructed
[INFO] [stdout]   --> src/db/event_store.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct PostgresEventStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `append`, `events`, `events_by_aggregate`, `latest_version`, and `get_by_event_id` are never used
[INFO] [stdout]    --> src/db/event_store.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl PostgresEventStore {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub async fn append(
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub async fn events(
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub async fn events_by_aggregate(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub async fn latest_version(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub async fn get_by_event_id(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MIGRATOR` is never used
[INFO] [stdout]  --> src/db/migrations.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static MIGRATOR: Migrator = sqlx::migrate!("./migrations");
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MigrationRunner` is never constructed
[INFO] [stdout]  --> src/db/migrations.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct MigrationRunner {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/db/migrations.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl MigrationRunner {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn run(&self, pool: &PgPool) -> Result<(), sqlx::migrate::MigrateError> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_migrations` is never used
[INFO] [stdout]   --> src/db/migrations.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn run_migrations(pool: &PgPool) -> Result<(), sqlx::migrate::MigrateError> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_account`, `get_account_by_code`, and `list_accounts` are never used
[INFO] [stdout]    --> src/ledger/account_store.rs:118:18
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl AccountStore {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn get_account(&self, id: Uuid) -> Result<Account, FbError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub async fn get_account_by_code(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub async fn list_accounts(&self, tenant_id: Uuid) -> Result<Vec<Account>, FbError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeScheduleRow` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct FeeScheduleRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TierConfig` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TierConfig {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tier` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Tier {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/fee_engine.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeEngine` is never constructed
[INFO] [stdout]   --> src/ledger/fee_engine.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct FeeEngine {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load_fee_schedules`, and `compute_fee_amount` are never used
[INFO] [stdout]   --> src/ledger/fee_engine.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl FeeEngine {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     async fn load_fee_schedules(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn compute_fee_amount(schedule: &FeeScheduleRow, basis_amount: Decimal) -> Decimal {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionCostBasisRow` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct PositionCostBasisRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceFeedRow` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct PriceFeedRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PnlSnapshotRow` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct PnlSnapshotRow {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionSummary` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct PositionSummary {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PNLEngine` is never constructed
[INFO] [stdout]   --> src/ledger/pnl_engine.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct PNLEngine {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_position_summary`, `calculate_daily_pnl`, `ingest_price`, and `mark_to_market` are never used
[INFO] [stdout]    --> src/ledger/pnl_engine.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl PNLEngine {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  79 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub async fn get_position_summary(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub async fn calculate_daily_pnl(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub async fn ingest_price(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     async fn mark_to_market(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxLotRow` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct TaxLotRow {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxLotConsumptionRow` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct TaxLotConsumptionRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxJurisdictionRow` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TaxJurisdictionRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxLot` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct TaxLot {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LotConsumption` is never constructed
[INFO] [stdout]   --> src/ledger/tax_engine.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct LotConsumption {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxComputation` is never constructed
[INFO] [stdout]    --> src/ledger/tax_engine.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct TaxComputation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]    --> src/ledger/tax_engine.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaxEngine` is never constructed
[INFO] [stdout]    --> src/ledger/tax_engine.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub struct TaxEngine {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `create_lot`, `load_open_lots`, `consume_lots`, and `compute_tax` are never used
[INFO] [stdout]    --> src/ledger/tax_engine.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl TaxEngine {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 148 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub async fn create_lot(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     async fn load_open_lots(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub async fn consume_lots(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub async fn compute_tax(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CashFlowRow` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct CashFlowRow {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CashFlow` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct CashFlow {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceResult` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct PerformanceResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/perf_engine.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerformanceEngine` is never constructed
[INFO] [stdout]   --> src/ledger/perf_engine.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct PerformanceEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ledger/perf_engine.rs:41:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl PerformanceEngine {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  41 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     async fn load_cash_flows(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     async fn load_position_market_values(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     async fn load_position_valuation(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub async fn calculate_performance(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn compute_irr(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn compute_modified_dietz(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     fn compute_twr(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SanctionedEntityRow` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct SanctionedEntityRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AmlRuleRow` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct AmlRuleRow {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComplianceAlertRow` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct ComplianceAlertRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/compliance.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `levenshtein_distance` is never used
[INFO] [stdout]   --> src/ledger/compliance.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn levenshtein_distance(a: &str, b: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fuzzy_score` is never used
[INFO] [stdout]   --> src/ledger/compliance.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn fuzzy_score(query: &str, target: &str) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComplianceEngine` is never constructed
[INFO] [stdout]   --> src/ledger/compliance.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub struct ComplianceEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `seed_sanctions`, `sanctions_check`, `aml_check`, and `log_alert` are never used
[INFO] [stdout]    --> src/ledger/compliance.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl ComplianceEngine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  98 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub async fn seed_sanctions(&self, tenant_id: Uuid) -> Result<(), FbError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     async fn sanctions_check(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     async fn aml_check(
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     async fn log_alert(
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStatementRow` is never constructed
[INFO] [stdout]  --> src/ledger/statements.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct PositionStatementRow {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStatement` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PositionStatement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStatementEntry` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PositionStatementEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionStatement` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct TransactionStatement {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionStatementEntry` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct TransactionStatementEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/statements.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatementsEngine` is never constructed
[INFO] [stdout]   --> src/ledger/statements.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct StatementsEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `generate_position_statement`, and `generate_transaction_statement` are never used
[INFO] [stdout]    --> src/ledger/statements.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl StatementsEngine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  77 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub async fn generate_position_statement(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn generate_transaction_statement(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountBalanceRow` is never constructed
[INFO] [stdout]  --> src/ledger/recon.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct AccountBalanceRow {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionBalanceRow` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct PositionBalanceRow {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconDiscrepancy` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ReconDiscrepancy {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconResult` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct ReconResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_db_err` is never used
[INFO] [stdout]   --> src/ledger/recon.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn map_db_err(e: sqlx::Error) -> FbError {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReconEngine` is never constructed
[INFO] [stdout]   --> src/ledger/recon.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct ReconEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `reconcile` are never used
[INFO] [stdout]   --> src/ledger/recon.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ReconEngine {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 52 |     pub fn new(pool: PgPool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub async fn reconcile(
[INFO] [stdout]    |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `list`, `activate`, and `deactivate` are never used
[INFO] [stdout]   --> src/tenant/mod.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait TenantService: Send + Sync {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout]  9 |     async fn create(&self, name: &str, short_code: &str) -> Result<Tenant, FbError>;
[INFO] [stdout] 10 |     async fn list(&self) -> Result<Vec<Tenant>, FbError>;
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] 11 |     async fn get_by_code(&self, code: &str) -> Result<Tenant, FbError>;
[INFO] [stdout] 12 |     async fn activate(&self, code: &str) -> Result<(), FbError>;
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 13 |     async fn deactivate(&self, code: &str) -> Result<(), FbError>;
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.40s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: sqlx-postgres v0.7.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5", kill_on_drop: false }`
[INFO] [stdout] 14c0601e678cfa89e83a066475c57d0dd5f79c7533bfd3b4b6d5db7d20c30ed5
