[INFO] cloning repository https://github.com/yogt1984/netgate [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yogt1984/netgate" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyogt1984%2Fnetgate", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyogt1984%2Fnetgate'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c68e598e4c3c5e8a7fc1cd2b3c3026dece553bba [INFO] testing yogt1984/netgate against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyogt1984%2Fnetgate" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/yogt1984/netgate [INFO] finished tweaking git repo https://github.com/yogt1984/netgate [INFO] tweaked toml for git repo https://github.com/yogt1984/netgate written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/yogt1984/netgate on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/yogt1984/netgate 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e70bf8cc9eb1d4c3b8c7ef0a57b16663287783dc6d1d33e3e46019a45146a99f [INFO] running `Command { std: "docker" "start" "-a" "e70bf8cc9eb1d4c3b8c7ef0a57b16663287783dc6d1d33e3e46019a45146a99f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e70bf8cc9eb1d4c3b8c7ef0a57b16663287783dc6d1d33e3e46019a45146a99f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e70bf8cc9eb1d4c3b8c7ef0a57b16663287783dc6d1d33e3e46019a45146a99f", kill_on_drop: false }` [INFO] [stdout] e70bf8cc9eb1d4c3b8c7ef0a57b16663287783dc6d1d33e3e46019a45146a99f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 428baf4f647236d59dcadda8bcb1a25ae0f9ac18b7eac6f3d1ce5bbe3463507e [INFO] running `Command { std: "docker" "start" "-a" "428baf4f647236d59dcadda8bcb1a25ae0f9ac18b7eac6f3d1ce5bbe3463507e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling find-msvc-tools v0.1.5 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling cc v1.2.46 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling indexmap v2.12.0 [INFO] [stderr] Compiling toml_datetime v0.6.3 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling icu_properties_data v2.1.1 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling opaque-debug v0.3.1 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling strsim v0.10.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling mio v1.1.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.6 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling universal-hash v0.5.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling polyval v0.6.2 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling ghash v0.5.1 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling ctr v0.9.2 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling aead v0.5.2 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling cookie v0.17.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling multer v2.1.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling aes-gcm v0.10.3 [INFO] [stderr] Compiling toml_edit v0.20.2 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling headers-core v0.2.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling headers v0.3.9 [INFO] [stderr] Compiling rfc7239 v0.1.3 [INFO] [stderr] Compiling nix v0.27.1 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling proc-macro-crate v2.0.2 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling wildmatch v2.6.1 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling darling_core v0.14.4 [INFO] [stderr] Compiling tempfile v3.23.0 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling darling_macro v0.14.4 [INFO] [stderr] Compiling poem-derive v1.3.59 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Compiling darling v0.14.4 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling poem-openapi-derive v2.0.27 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling quick-xml v0.30.0 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling quick-xml v0.26.0 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling uuid v1.18.1 [INFO] [stderr] Compiling tracing-subscriber v0.3.20 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.7 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling poem v1.3.59 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling poem-openapi v2.0.27 [INFO] [stderr] Compiling netgate v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `timezone` is never read [INFO] [stdout] --> src/business/enrichment.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct GeographicData { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub timezone: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GeographicData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `department` is never read [INFO] [stdout] --> src/business/enrichment.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct ContactData { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | pub department: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ContactData` 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: multiple associated items are never used [INFO] [stdout] --> src/business/enrichment.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 60 | impl ObjectEnricher { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn enrich_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | fn add_computed_fields_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | fn merge_enrichment_data_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn add_business_tags_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub fn compute_status(&self, enrichment: &EnrichmentData) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn merge_enrichment_sources(sources: Vec) -> EnrichmentData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtensibleOrderService` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ExtensibleOrderService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `process_order`, `get_order_status`, and `registry` are never used [INFO] [stdout] --> src/business/extensible_order_service.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl ExtensibleOrderService { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 17 | /// Create a new extensible order service with a registry [INFO] [stdout] 18 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub async fn process_order( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub async fn get_order_status( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn registry(&self) -> &Arc { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessedOrderResult` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct ProcessedOrderResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderStatus` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct OrderStatus { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtensibleOrderServiceBuilder` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct ExtensibleOrderServiceBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_processor`, `with_default_processors`, and `build` are never used [INFO] [stdout] --> src/business/extensible_order_service.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl ExtensibleOrderServiceBuilder { [INFO] [stdout] | ---------------------------------- associated items in this implementation [INFO] [stdout] 168 | /// Create a new builder [INFO] [stdout] 169 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn with_processor(mut self, processor: Arc) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub fn with_default_processors(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn build( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OrderType` is never used [INFO] [stdout] --> src/business/plugin.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub type OrderType = String; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OrderPayload` is never used [INFO] [stdout] --> src/business/plugin.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum OrderPayload { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `order_type` is never used [INFO] [stdout] --> src/business/plugin.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl OrderPayload { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 23 | pub fn order_type(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NetBoxResourceRequest` is never used [INFO] [stdout] --> src/business/plugin.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum NetBoxResourceRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `resource_type` is never used [INFO] [stdout] --> src/business/plugin.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl NetBoxResourceRequest { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] 38 | pub fn resource_type(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NetBoxResource` is never used [INFO] [stdout] --> src/business/plugin.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum NetBoxResource { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `resource_id` and `resource_type` are never used [INFO] [stdout] --> src/business/plugin.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl NetBoxResource { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 53 | pub fn resource_id(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn resource_type(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `OrderProcessor` is never used [INFO] [stdout] --> src/business/plugin.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | pub trait OrderProcessor: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderTypeRegistry` is never constructed [INFO] [stdout] --> src/business/plugin.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct OrderTypeRegistry { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `register`, `get_processor`, `default_order_type`, `registered_types`, and `is_registered` are never used [INFO] [stdout] --> src/business/plugin.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl OrderTypeRegistry { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 111 | /// Create a new registry [INFO] [stdout] 112 | pub fn new(default_order_type: OrderType) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn register(&mut self, processor: Arc) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn get_processor(&self, order_type: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn default_order_type(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn registered_types(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn is_registered(&self, order_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderTypeConfig` is never constructed [INFO] [stdout] --> src/business/plugin.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | pub struct OrderTypeConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderTypeConfigLoader` is never constructed [INFO] [stdout] --> src/business/plugin.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct OrderTypeConfigLoader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `load_from_map` and `default_configs` are never used [INFO] [stdout] --> src/business/plugin.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl OrderTypeConfigLoader { [INFO] [stdout] | -------------------------- associated functions in this implementation [INFO] [stdout] 168 | /// Load order type configurations from a map [INFO] [stdout] 169 | pub fn load_from_map( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn default_configs() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SiteOrderProcessor` is never constructed [INFO] [stdout] --> src/business/processors.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SiteOrderProcessor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/business/processors.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SiteOrderProcessor { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_default_status` and `enrich_site_request` are never used [INFO] [stdout] --> src/business/transformation.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl OrderTransformer { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn with_default_status(status: SiteStatus) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn enrich_site_request( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SiteEnrichmentData` is never constructed [INFO] [stdout] --> src/business/transformation.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | pub struct SiteEnrichmentData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_rules` is never used [INFO] [stdout] --> src/business/validation.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl OrderValidator { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_rules( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_terminal` is never used [INFO] [stdout] --> src/business/workflow.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl OrderState { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn is_terminal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_tenant_orders` and `get_orders_by_state` are never used [INFO] [stdout] --> src/business/workflow.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 147 | impl WorkflowManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn get_tenant_orders(&self, tenant_id: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn get_orders_by_state(&self, state: OrderState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheMetrics` is never constructed [INFO] [stdout] --> src/cache/metrics.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct CacheMetrics { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cache/metrics.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl CacheMetrics { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn record_hit(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn record_miss(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn record_eviction(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn record_invalidation(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn record_put(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn snapshot(&self) -> CacheMetricsSnapshot { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheMetricsSnapshot` is never constructed [INFO] [stdout] --> src/cache/metrics.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct CacheMetricsSnapshot { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `expires_at` are never read [INFO] [stdout] --> src/cache/store.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct CacheEntry { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 12 | value: T, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | expires_at: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CacheEntry` 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: associated items `new` and `is_expired` are never used [INFO] [stdout] --> src/cache/store.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl CacheEntry { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 19 | fn new(value: T, ttl: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn is_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cache` is never constructed [INFO] [stdout] --> src/cache/store.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Cache { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cache/store.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 45 | / impl Cache [INFO] [stdout] 46 | | where [INFO] [stdout] 47 | | K: Hash + Eq + Clone + Send + Sync + std::fmt::Debug + 'static, [INFO] [stdout] 48 | | V: Clone + Send + Sync + 'static, [INFO] [stdout] | |_____________________________________- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn new(default_ttl: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_max_size(default_ttl: Duration, max_size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub async fn get(&self, key: &K) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub async fn put(&self, key: K, value: V) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn put_with_ttl(&self, key: K, value: V, ttl: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub async fn invalidate(&self, key: &K) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub async fn invalidate_matching(&self, predicate: F) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub async fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn evict_expired(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub async fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub async fn stats(&self) -> CacheStats { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheStats` is never constructed [INFO] [stdout] --> src/cache/store.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct CacheStats { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SiteCache` is never used [INFO] [stdout] --> src/cache/store.rs:191:10 [INFO] [stdout] | [INFO] [stdout] 191 | pub type SiteCache = Cache; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DeviceCache` is never used [INFO] [stdout] --> src/cache/store.rs:194:10 [INFO] [stdout] | [INFO] [stdout] 194 | pub type DeviceCache = Cache; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CacheKey` is never used [INFO] [stdout] --> src/cache/store.rs:198:10 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum CacheKey { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `site`, `device`, `site_list`, and `device_list` are never used [INFO] [stdout] --> src/cache/store.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 205 | impl CacheKey { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 206 | pub fn site(id: i32) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn device(id: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn site_list>(query: S) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn device_list>(query: S) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InvalidationStrategy` is never used [INFO] [stdout] --> src/cache/strategy.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum InvalidationStrategy { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheConfig` is never constructed [INFO] [stdout] --> src/cache/strategy.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct CacheConfig { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_max_size`, `with_invalidation_strategy`, and `with_metrics` are never used [INFO] [stdout] --> src/cache/strategy.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl CacheConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 38 | /// Create a new cache configuration [INFO] [stdout] 39 | pub fn new(default_ttl: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn with_max_size(mut self, max_size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn with_invalidation_strategy(mut self, strategy: InvalidationStrategy) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn with_metrics(mut self, enable: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_invalidation_keys` is never used [INFO] [stdout] --> src/cache/strategy.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_invalidation_keys(key: &CacheKey, strategy: InvalidationStrategy) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_site` is never used [INFO] [stdout] --> src/domain/tenant.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl TenantStore { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn add_site(&self, tenant_id: TenantId, site: Site) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CachedNetBoxClient` is never constructed [INFO] [stdout] --> src/netbox/cached_client.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CachedNetBoxClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/netbox/cached_client.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl CachedNetBoxClient { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 18 | /// Create a new cached client with default configuration [INFO] [stdout] 19 | pub fn new(client: Arc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn with_config(client: Arc, config: CacheConfig) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub async fn list_sites( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub async fn create_site(&self, request: CreateSiteRequest) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | async fn invalidate_site_cache(&self, site_id: &Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | async fn invalidate_site_list_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn cache_metrics(&self) -> crate::cache::CacheMetricsSnapshot { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn cache_stats(&self) -> CacheClientStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub async fn clear_all_caches(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub async fn evict_expired(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheClientStats` is never constructed [INFO] [stdout] --> src/netbox/cached_client.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct CacheClientStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/netbox/client.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl NetBoxClient { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn update_site( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub async fn delete_site(&self, id: i32) -> Result<(), NetBoxError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub async fn create_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub async fn get_device(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub async fn list_devices( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub async fn update_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | pub async fn delete_device(&self, id: i32) -> Result<(), NetBoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `UnexpectedResponse` is never constructed [INFO] [stdout] --> src/netbox/error.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum NetBoxError { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | UnexpectedResponse(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetBoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateSiteRequest` is never constructed [INFO] [stdout] --> src/netbox/models.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 180 | pub struct UpdateSiteRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateDeviceRequest` is never constructed [INFO] [stdout] --> src/netbox/models.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct CreateDeviceRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateDeviceRequest` is never constructed [INFO] [stdout] --> src/netbox/models.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | pub struct UpdateDeviceRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_config`, `get_site`, and `clear_cache` are never used [INFO] [stdout] --> src/netbox/resilient_client.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ResilientNetBoxClient { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn clear_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantAwareNetBoxClient` is never constructed [INFO] [stdout] --> src/netbox/tenant_client.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct TenantAwareNetBoxClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/netbox/tenant_client.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl TenantAwareNetBoxClient { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 16 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub async fn get_site(&self, tenant_id: &TenantId, site_id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub async fn list_sites( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub async fn create_site( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub async fn update_site( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub async fn delete_site(&self, tenant_id: &TenantId, site_id: i32) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub async fn get_device(&self, tenant_id: &TenantId, device_id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn list_devices( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub async fn create_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub async fn update_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub async fn delete_device(&self, tenant_id: &TenantId, device_id: i32) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequestTracingMiddleware` is never constructed [INFO] [stdout] --> src/observability/middleware.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct RequestTracingMiddleware; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequestTracingEndpoint` is never constructed [INFO] [stdout] --> src/observability/middleware.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct RequestTracingEndpoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_request_id` is never used [INFO] [stdout] --> src/observability/middleware.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn extract_request_id(req: &Request) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_correlation_id` is never used [INFO] [stdout] --> src/observability/middleware.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn extract_correlation_id(req: &Request) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_structured_logging` is never used [INFO] [stdout] --> src/observability/tracing.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn init_structured_logging() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `window_duration` is never read [INFO] [stdout] --> src/resilience/circuit_breaker.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct CircuitBreakerConfig { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub window_duration: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CircuitBreakerConfig` 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: associated items `with_config` and `reset` are never used [INFO] [stdout] --> src/resilience/circuit_breaker.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl CircuitBreaker { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn with_config(config: CircuitBreakerConfig) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `record_retry` and `reset` are never used [INFO] [stdout] --> src/resilience/metrics.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl ApiMetrics { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn record_retry(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/resilience/retry.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl RetryConfig { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 33 | pub fn new(max_attempts: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `retry` is never used [INFO] [stdout] --> src/resilience/retry.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | pub async fn retry( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `devices` and `device_lists` are never read [INFO] [stdout] --> src/resilience/degradation.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DegradationCache { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 9 | sites: Arc>>, [INFO] [stdout] 10 | devices: Arc>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | site_lists: Arc>>, [INFO] [stdout] 12 | device_lists: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `site` and `cached_at` are never read [INFO] [stdout] --> src/resilience/degradation.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | struct CachedSite { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 18 | site: NetBoxSite, [INFO] [stdout] | ^^^^ [INFO] [stdout] 19 | cached_at: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedSite` 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 `device` and `cached_at` are never read [INFO] [stdout] --> src/resilience/degradation.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | struct CachedDevice { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 24 | device: NetBoxDevice, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | cached_at: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedDevice` 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 `devices` and `cached_at` are never read [INFO] [stdout] --> src/resilience/degradation.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | struct CachedDeviceList { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 36 | devices: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 37 | cached_at: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedDeviceList` 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: multiple methods are never used [INFO] [stdout] --> src/resilience/degradation.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl DegradationCache { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_site(&self, id: i32) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_device(&self, id: i32) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn cache_device(&self, id: i32, device: NetBoxDevice) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn get_device_list(&self, key: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn cache_device_list(&self, key: String, devices: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn clear_expired(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn clear_all(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DegradationStrategy` is never used [INFO] [stdout] --> src/resilience/degradation.rs:178:10 [INFO] [stdout] | [INFO] [stdout] 178 | pub enum DegradationStrategy { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `degrade_site_retrieval` is never used [INFO] [stdout] --> src/resilience/degradation.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn degrade_site_retrieval( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `degrade_site_list_retrieval` is never used [INFO] [stdout] --> src/resilience/degradation.rs:221:8 [INFO] [stdout] | [INFO] [stdout] 221 | pub fn degrade_site_list_retrieval( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NetBoxTenantId` is never used [INFO] [stdout] --> src/security/tenant.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub type NetBoxTenantId = i32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantMappingService` is never constructed [INFO] [stdout] --> src/security/tenant.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct TenantMappingService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `register_mapping`, `get_netbox_tenant_id`, `has_mapping`, `remove_mapping`, and `get_all_tenant_ids` are never used [INFO] [stdout] --> src/security/tenant.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl TenantMappingService { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 19 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn register_mapping(&self, tenant_id: TenantId, netbox_tenant_id: NetBoxTenantId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn get_netbox_tenant_id(&self, tenant_id: &TenantId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn has_mapping(&self, tenant_id: &TenantId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn remove_mapping(&self, tenant_id: &TenantId) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_all_tenant_ids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantAccessControl` is never constructed [INFO] [stdout] --> src/security/tenant.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct TenantAccessControl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/security/tenant.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl TenantAccessControl { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 68 | pub fn new(mapping_service: TenantMappingService) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn mapping_service(&self) -> &std::sync::Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn verify_site_access(&self, tenant_id: &TenantId, site: &NetBoxSite) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn verify_device_access(&self, tenant_id: &TenantId, device: &NetBoxDevice) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn get_netbox_tenant_id(&self, tenant_id: &TenantId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn filter_sites_by_tenant( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn filter_devices_by_tenant( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn has_access_to_netbox_tenant(&self, tenant_id: &TenantId, netbox_tenant_id: NetBoxTenantId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantResourceVisibility` is never constructed [INFO] [stdout] --> src/security/tenant.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | pub struct TenantResourceVisibility { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `ensure_site_visible`, `ensure_device_visible`, `get_tenant_sites`, and `get_tenant_devices` are never used [INFO] [stdout] --> src/security/tenant.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 176 | impl TenantResourceVisibility { [INFO] [stdout] | ----------------------------- associated items in this implementation [INFO] [stdout] 177 | pub fn new(access_control: TenantAccessControl) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub fn ensure_site_visible(&self, tenant_id: &TenantId, site: &NetBoxSite) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn ensure_device_visible(&self, tenant_id: &TenantId, device: &NetBoxDevice) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn get_tenant_sites( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn get_tenant_devices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 35s [INFO] running `Command { std: "docker" "inspect" "428baf4f647236d59dcadda8bcb1a25ae0f9ac18b7eac6f3d1ce5bbe3463507e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "428baf4f647236d59dcadda8bcb1a25ae0f9ac18b7eac6f3d1ce5bbe3463507e", kill_on_drop: false }` [INFO] [stdout] 428baf4f647236d59dcadda8bcb1a25ae0f9ac18b7eac6f3d1ce5bbe3463507e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 36026efb8852862cb5304297f16f75ef96b0c323d17ab369a8bd6ccdb4be541b [INFO] running `Command { std: "docker" "start" "-a" "36026efb8852862cb5304297f16f75ef96b0c323d17ab369a8bd6ccdb4be541b", kill_on_drop: false }` [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling waker-fn v1.2.0 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling http-types v2.12.0 [INFO] [stderr] Compiling serde_qs v0.8.5 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling retain_mut v0.1.9 [INFO] [stderr] Compiling infer v0.2.3 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling futures-lite v1.13.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling async-channel v1.9.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tokio-util v0.7.17 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling multer v2.1.0 [INFO] [stderr] Compiling deadpool v0.9.5 [INFO] [stderr] Compiling tokio-test v0.4.4 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling poem v1.3.59 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling wiremock v0.5.22 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling poem-openapi v2.0.27 [INFO] [stderr] Compiling netgate v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `poem::EndpointExt` [INFO] [stdout] --> src/observability/middleware.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | use poem::EndpointExt; [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::*` [INFO] [stdout] --> src/observability/tracing.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/health.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let api = HealthApi::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/health.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let api = HealthApi::with_netbox_client(resilient_client); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/metrics.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | let api = MetricsApi::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/metrics.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | let api = MetricsApi::with_netbox_client(resilient_client); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:462:13 [INFO] [stdout] | [INFO] [stdout] 462 | let mut site = create_test_site(); [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/business/enrichment.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let mut site = create_test_site(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:508:13 [INFO] [stdout] | [INFO] [stdout] 508 | let mut site = create_test_site(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:571:13 [INFO] [stdout] | [INFO] [stdout] 571 | let mut device = create_test_device(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:743:13 [INFO] [stdout] | [INFO] [stdout] 743 | let mut site = create_test_site(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `service` [INFO] [stdout] --> src/business/order_service.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | let service = OrderService::new(workflow_manager, netbox_client); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/transformation.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | let mut request = transformer.transform_site_order(order, None); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `poem::EndpointExt` [INFO] [stdout] --> src/observability/middleware.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | use poem::EndpointExt; [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::*` [INFO] [stdout] --> src/observability/tracing.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/health.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let api = HealthApi::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/health.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let api = HealthApi::with_netbox_client(resilient_client); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/metrics.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | let api = MetricsApi::new(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `api` [INFO] [stdout] --> src/api/metrics.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | let api = MetricsApi::with_netbox_client(resilient_client); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timezone` is never read [INFO] [stdout] --> src/business/enrichment.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct GeographicData { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub timezone: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GeographicData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `department` is never read [INFO] [stdout] --> src/business/enrichment.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct ContactData { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | pub department: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ContactData` 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: multiple associated items are never used [INFO] [stdout] --> src/business/enrichment.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 60 | impl ObjectEnricher { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn enrich_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | fn add_computed_fields_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | fn merge_enrichment_data_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn add_business_tags_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | pub fn compute_status(&self, enrichment: &EnrichmentData) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn merge_enrichment_sources(sources: Vec) -> EnrichmentData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtensibleOrderService` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ExtensibleOrderService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `process_order`, `get_order_status`, and `registry` are never used [INFO] [stdout] --> src/business/extensible_order_service.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl ExtensibleOrderService { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 17 | /// Create a new extensible order service with a registry [INFO] [stdout] 18 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub async fn process_order( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub async fn get_order_status( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn registry(&self) -> &Arc { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessedOrderResult` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct ProcessedOrderResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderStatus` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct OrderStatus { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExtensibleOrderServiceBuilder` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct ExtensibleOrderServiceBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_processor`, `with_default_processors`, and `build` are never used [INFO] [stdout] --> src/business/extensible_order_service.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl ExtensibleOrderServiceBuilder { [INFO] [stdout] | ---------------------------------- associated items in this implementation [INFO] [stdout] 168 | /// Create a new builder [INFO] [stdout] 169 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn with_processor(mut self, processor: Arc) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub fn with_default_processors(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub fn build( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OrderType` is never used [INFO] [stdout] --> src/business/plugin.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | pub type OrderType = String; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `OrderPayload` is never used [INFO] [stdout] --> src/business/plugin.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum OrderPayload { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `order_type` is never used [INFO] [stdout] --> src/business/plugin.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl OrderPayload { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 23 | pub fn order_type(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NetBoxResourceRequest` is never used [INFO] [stdout] --> src/business/plugin.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | pub enum NetBoxResourceRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `resource_type` is never used [INFO] [stdout] --> src/business/plugin.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl NetBoxResourceRequest { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] 38 | pub fn resource_type(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NetBoxResource` is never used [INFO] [stdout] --> src/business/plugin.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum NetBoxResource { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `resource_id` and `resource_type` are never used [INFO] [stdout] --> src/business/plugin.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 52 | impl NetBoxResource { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 53 | pub fn resource_id(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn resource_type(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `OrderProcessor` is never used [INFO] [stdout] --> src/business/plugin.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | pub trait OrderProcessor: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderTypeRegistry` is never constructed [INFO] [stdout] --> src/business/plugin.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct OrderTypeRegistry { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `register`, `get_processor`, `default_order_type`, `registered_types`, and `is_registered` are never used [INFO] [stdout] --> src/business/plugin.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl OrderTypeRegistry { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 111 | /// Create a new registry [INFO] [stdout] 112 | pub fn new(default_order_type: OrderType) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn register(&mut self, processor: Arc) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn get_processor(&self, order_type: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn default_order_type(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn registered_types(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub fn is_registered(&self, order_type: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderTypeConfig` is never constructed [INFO] [stdout] --> src/business/plugin.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | pub struct OrderTypeConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderTypeConfigLoader` is never constructed [INFO] [stdout] --> src/business/plugin.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct OrderTypeConfigLoader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `load_from_map` and `default_configs` are never used [INFO] [stdout] --> src/business/plugin.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl OrderTypeConfigLoader { [INFO] [stdout] | -------------------------- associated functions in this implementation [INFO] [stdout] 168 | /// Load order type configurations from a map [INFO] [stdout] 169 | pub fn load_from_map( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn default_configs() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SiteOrderProcessor` is never constructed [INFO] [stdout] --> src/business/processors.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SiteOrderProcessor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/business/processors.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SiteOrderProcessor { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_default_status` and `enrich_site_request` are never used [INFO] [stdout] --> src/business/transformation.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl OrderTransformer { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn with_default_status(status: SiteStatus) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn enrich_site_request( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SiteEnrichmentData` is never constructed [INFO] [stdout] --> src/business/transformation.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | pub struct SiteEnrichmentData { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_rules` is never used [INFO] [stdout] --> src/business/validation.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl OrderValidator { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_rules( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_terminal` is never used [INFO] [stdout] --> src/business/workflow.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl OrderState { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn is_terminal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_tenant_orders` and `get_orders_by_state` are never used [INFO] [stdout] --> src/business/workflow.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 147 | impl WorkflowManager { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn get_tenant_orders(&self, tenant_id: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 220 | pub fn get_orders_by_state(&self, state: OrderState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheMetrics` is never constructed [INFO] [stdout] --> src/cache/metrics.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct CacheMetrics { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cache/metrics.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl CacheMetrics { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn record_hit(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn record_miss(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn record_eviction(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn record_invalidation(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn record_put(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn snapshot(&self) -> CacheMetricsSnapshot { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheMetricsSnapshot` is never constructed [INFO] [stdout] --> src/cache/metrics.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct CacheMetricsSnapshot { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `value` and `expires_at` are never read [INFO] [stdout] --> src/cache/store.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct CacheEntry { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 12 | value: T, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 13 | expires_at: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CacheEntry` 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: associated items `new` and `is_expired` are never used [INFO] [stdout] --> src/cache/store.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl CacheEntry { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 19 | fn new(value: T, ttl: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn is_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cache` is never constructed [INFO] [stdout] --> src/cache/store.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Cache { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/cache/store.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 45 | / impl Cache [INFO] [stdout] 46 | | where [INFO] [stdout] 47 | | K: Hash + Eq + Clone + Send + Sync + std::fmt::Debug + 'static, [INFO] [stdout] 48 | | V: Clone + Send + Sync + 'static, [INFO] [stdout] | |_____________________________________- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn new(default_ttl: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_max_size(default_ttl: Duration, max_size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub async fn get(&self, key: &K) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub async fn put(&self, key: K, value: V) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn put_with_ttl(&self, key: K, value: V, ttl: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub async fn invalidate(&self, key: &K) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub async fn invalidate_matching(&self, predicate: F) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub async fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn evict_expired(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub async fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub async fn stats(&self) -> CacheStats { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheStats` is never constructed [INFO] [stdout] --> src/cache/store.rs:184:12 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct CacheStats { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SiteCache` is never used [INFO] [stdout] --> src/cache/store.rs:191:10 [INFO] [stdout] | [INFO] [stdout] 191 | pub type SiteCache = Cache; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DeviceCache` is never used [INFO] [stdout] --> src/cache/store.rs:194:10 [INFO] [stdout] | [INFO] [stdout] 194 | pub type DeviceCache = Cache; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CacheKey` is never used [INFO] [stdout] --> src/cache/store.rs:198:10 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum CacheKey { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `site`, `device`, `site_list`, and `device_list` are never used [INFO] [stdout] --> src/cache/store.rs:206:12 [INFO] [stdout] | [INFO] [stdout] 205 | impl CacheKey { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 206 | pub fn site(id: i32) -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn device(id: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn site_list>(query: S) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn device_list>(query: S) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InvalidationStrategy` is never used [INFO] [stdout] --> src/cache/strategy.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum InvalidationStrategy { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheConfig` is never constructed [INFO] [stdout] --> src/cache/strategy.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct CacheConfig { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_max_size`, `with_invalidation_strategy`, and `with_metrics` are never used [INFO] [stdout] --> src/cache/strategy.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl CacheConfig { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 38 | /// Create a new cache configuration [INFO] [stdout] 39 | pub fn new(default_ttl: Duration) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn with_max_size(mut self, max_size: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn with_invalidation_strategy(mut self, strategy: InvalidationStrategy) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn with_metrics(mut self, enable: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_invalidation_keys` is never used [INFO] [stdout] --> src/cache/strategy.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn get_invalidation_keys(key: &CacheKey, strategy: InvalidationStrategy) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_site` is never used [INFO] [stdout] --> src/domain/tenant.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl TenantStore { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn add_site(&self, tenant_id: TenantId, site: Site) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CachedNetBoxClient` is never constructed [INFO] [stdout] --> src/netbox/cached_client.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CachedNetBoxClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/netbox/cached_client.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl CachedNetBoxClient { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 18 | /// Create a new cached client with default configuration [INFO] [stdout] 19 | pub fn new(client: Arc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn with_config(client: Arc, config: CacheConfig) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub async fn list_sites( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub async fn create_site(&self, request: CreateSiteRequest) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | async fn invalidate_site_cache(&self, site_id: &Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | async fn invalidate_site_list_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | pub fn cache_metrics(&self) -> crate::cache::CacheMetricsSnapshot { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn cache_stats(&self) -> CacheClientStats { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub async fn clear_all_caches(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub async fn evict_expired(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheClientStats` is never constructed [INFO] [stdout] --> src/netbox/cached_client.rs:198:12 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct CacheClientStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/netbox/client.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl NetBoxClient { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn update_site( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub async fn delete_site(&self, id: i32) -> Result<(), NetBoxError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | pub async fn create_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub async fn get_device(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub async fn list_devices( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub async fn update_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | pub async fn delete_device(&self, id: i32) -> Result<(), NetBoxError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `UnexpectedResponse` is never constructed [INFO] [stdout] --> src/netbox/error.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum NetBoxError { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | UnexpectedResponse(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetBoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateSiteRequest` is never constructed [INFO] [stdout] --> src/netbox/models.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 180 | pub struct UpdateSiteRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateDeviceRequest` is never constructed [INFO] [stdout] --> src/netbox/models.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct CreateDeviceRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateDeviceRequest` is never constructed [INFO] [stdout] --> src/netbox/models.rs:222:12 [INFO] [stdout] | [INFO] [stdout] 222 | pub struct UpdateDeviceRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_config`, `get_site`, and `clear_cache` are never used [INFO] [stdout] --> src/netbox/resilient_client.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ResilientNetBoxClient { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn clear_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantAwareNetBoxClient` is never constructed [INFO] [stdout] --> src/netbox/tenant_client.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct TenantAwareNetBoxClient { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/netbox/tenant_client.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl TenantAwareNetBoxClient { [INFO] [stdout] | ---------------------------- associated items in this implementation [INFO] [stdout] 16 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub async fn get_site(&self, tenant_id: &TenantId, site_id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub async fn list_sites( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub async fn create_site( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub async fn update_site( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub async fn delete_site(&self, tenant_id: &TenantId, site_id: i32) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub async fn get_device(&self, tenant_id: &TenantId, device_id: i32) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn list_devices( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub async fn create_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub async fn update_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub async fn delete_device(&self, tenant_id: &TenantId, device_id: i32) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequestTracingMiddleware` is never constructed [INFO] [stdout] --> src/observability/middleware.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct RequestTracingMiddleware; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequestTracingEndpoint` is never constructed [INFO] [stdout] --> src/observability/middleware.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct RequestTracingEndpoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_request_id` is never used [INFO] [stdout] --> src/observability/middleware.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn extract_request_id(req: &Request) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `extract_correlation_id` is never used [INFO] [stdout] --> src/observability/middleware.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn extract_correlation_id(req: &Request) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_structured_logging` is never used [INFO] [stdout] --> src/observability/tracing.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn init_structured_logging() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `window_duration` is never read [INFO] [stdout] --> src/resilience/circuit_breaker.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct CircuitBreakerConfig { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub window_duration: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CircuitBreakerConfig` 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: associated items `with_config` and `reset` are never used [INFO] [stdout] --> src/resilience/circuit_breaker.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl CircuitBreaker { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn with_config(config: CircuitBreakerConfig) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `record_retry` and `reset` are never used [INFO] [stdout] --> src/resilience/metrics.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl ApiMetrics { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn record_retry(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/resilience/retry.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl RetryConfig { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 33 | pub fn new(max_attempts: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `retry` is never used [INFO] [stdout] --> src/resilience/retry.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | pub async fn retry( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `devices` and `device_lists` are never read [INFO] [stdout] --> src/resilience/degradation.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DegradationCache { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 9 | sites: Arc>>, [INFO] [stdout] 10 | devices: Arc>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | site_lists: Arc>>, [INFO] [stdout] 12 | device_lists: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `site` and `cached_at` are never read [INFO] [stdout] --> src/resilience/degradation.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | struct CachedSite { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 18 | site: NetBoxSite, [INFO] [stdout] | ^^^^ [INFO] [stdout] 19 | cached_at: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedSite` 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 `device` and `cached_at` are never read [INFO] [stdout] --> src/resilience/degradation.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 23 | struct CachedDevice { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 24 | device: NetBoxDevice, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 25 | cached_at: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedDevice` 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 `devices` and `cached_at` are never read [INFO] [stdout] --> src/resilience/degradation.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | struct CachedDeviceList { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 36 | devices: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 37 | cached_at: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedDeviceList` 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: multiple methods are never used [INFO] [stdout] --> src/resilience/degradation.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl DegradationCache { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_site(&self, id: i32) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn get_device(&self, id: i32) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn cache_device(&self, id: i32, device: NetBoxDevice) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn get_device_list(&self, key: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn cache_device_list(&self, key: String, devices: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn clear_expired(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn clear_all(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `DegradationStrategy` is never used [INFO] [stdout] --> src/resilience/degradation.rs:178:10 [INFO] [stdout] | [INFO] [stdout] 178 | pub enum DegradationStrategy { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `degrade_site_retrieval` is never used [INFO] [stdout] --> src/resilience/degradation.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn degrade_site_retrieval( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `degrade_site_list_retrieval` is never used [INFO] [stdout] --> src/resilience/degradation.rs:221:8 [INFO] [stdout] | [INFO] [stdout] 221 | pub fn degrade_site_list_retrieval( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NetBoxTenantId` is never used [INFO] [stdout] --> src/security/tenant.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub type NetBoxTenantId = i32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantMappingService` is never constructed [INFO] [stdout] --> src/security/tenant.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct TenantMappingService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `register_mapping`, `get_netbox_tenant_id`, `has_mapping`, `remove_mapping`, and `get_all_tenant_ids` are never used [INFO] [stdout] --> src/security/tenant.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl TenantMappingService { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 19 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn register_mapping(&self, tenant_id: TenantId, netbox_tenant_id: NetBoxTenantId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn get_netbox_tenant_id(&self, tenant_id: &TenantId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn has_mapping(&self, tenant_id: &TenantId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn remove_mapping(&self, tenant_id: &TenantId) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn get_all_tenant_ids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantAccessControl` is never constructed [INFO] [stdout] --> src/security/tenant.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct TenantAccessControl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/security/tenant.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl TenantAccessControl { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 68 | pub fn new(mapping_service: TenantMappingService) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn mapping_service(&self) -> &std::sync::Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn verify_site_access(&self, tenant_id: &TenantId, site: &NetBoxSite) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn verify_device_access(&self, tenant_id: &TenantId, device: &NetBoxDevice) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn get_netbox_tenant_id(&self, tenant_id: &TenantId) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn filter_sites_by_tenant( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn filter_devices_by_tenant( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn has_access_to_netbox_tenant(&self, tenant_id: &TenantId, netbox_tenant_id: NetBoxTenantId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TenantResourceVisibility` is never constructed [INFO] [stdout] --> src/security/tenant.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | pub struct TenantResourceVisibility { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `ensure_site_visible`, `ensure_device_visible`, `get_tenant_sites`, and `get_tenant_devices` are never used [INFO] [stdout] --> src/security/tenant.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 176 | impl TenantResourceVisibility { [INFO] [stdout] | ----------------------------- associated items in this implementation [INFO] [stdout] 177 | pub fn new(access_control: TenantAccessControl) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 182 | pub fn ensure_site_visible(&self, tenant_id: &TenantId, site: &NetBoxSite) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn ensure_device_visible(&self, tenant_id: &TenantId, device: &NetBoxDevice) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn get_tenant_sites( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | pub fn get_tenant_devices( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:462:13 [INFO] [stdout] | [INFO] [stdout] 462 | let mut site = create_test_site(); [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/business/enrichment.rs:486:13 [INFO] [stdout] | [INFO] [stdout] 486 | let mut site = create_test_site(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:508:13 [INFO] [stdout] | [INFO] [stdout] 508 | let mut site = create_test_site(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:571:13 [INFO] [stdout] | [INFO] [stdout] 571 | let mut device = create_test_device(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/enrichment.rs:743:13 [INFO] [stdout] | [INFO] [stdout] 743 | let mut site = create_test_site(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `service` [INFO] [stdout] --> src/business/order_service.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | let service = OrderService::new(workflow_manager, netbox_client); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/business/transformation.rs:185:13 [INFO] [stdout] | [INFO] [stdout] 185 | let mut request = transformer.transform_site_order(order, None); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timezone` is never read [INFO] [stdout] --> src/business/enrichment.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct GeographicData { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub timezone: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GeographicData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `department` is never read [INFO] [stdout] --> src/business/enrichment.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct ContactData { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | pub department: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ContactData` 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: associated function `with_config` is never used [INFO] [stdout] --> src/business/enrichment.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 60 | impl ObjectEnricher { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `registry` and `netbox_client` are never read [INFO] [stdout] --> src/business/extensible_order_service.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ExtensibleOrderService { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 11 | registry: Arc, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 12 | workflow_manager: Arc, [INFO] [stdout] 13 | netbox_client: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `process_order` and `registry` are never used [INFO] [stdout] --> src/business/extensible_order_service.rs:31:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl ExtensibleOrderService { [INFO] [stdout] | --------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 31 | pub async fn process_order( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn registry(&self) -> &Arc { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessedOrderResult` is never constructed [INFO] [stdout] --> src/business/extensible_order_service.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct ProcessedOrderResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `order_id`, `state`, `netbox_resource_id`, `created_at`, and `updated_at` are never read [INFO] [stdout] --> src/business/extensible_order_service.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct OrderStatus { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 155 | pub order_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 156 | pub state: OrderState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 157 | pub netbox_resource_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 158 | pub created_at: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 159 | pub updated_at: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OrderStatus` 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 `with_processor` is never used [INFO] [stdout] --> src/business/extensible_order_service.rs:176:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl ExtensibleOrderServiceBuilder { [INFO] [stdout] | ---------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn with_processor(mut self, processor: Arc) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/business/plugin.rs:33:10 [INFO] [stdout] | [INFO] [stdout] 33 | Site(CreateSiteRequest), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `NetBoxResourceRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 33 - Site(CreateSiteRequest), [INFO] [stdout] 33 + Site(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `enrich_request`, `create_resource`, and `enrich_resource` are never used [INFO] [stdout] --> src/business/plugin.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub trait OrderProcessor: Send + Sync { [INFO] [stdout] | -------------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 83 | fn enrich_request( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | async fn create_resource( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn enrich_resource( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `load_from_map` is never used [INFO] [stdout] --> src/business/plugin.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 167 | impl OrderTypeConfigLoader { [INFO] [stdout] | -------------------------- associated function in this implementation [INFO] [stdout] 168 | /// Load order type configurations from a map [INFO] [stdout] 169 | pub fn load_from_map( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `enricher` is never read [INFO] [stdout] --> src/business/processors.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SiteOrderProcessor { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | enricher: ObjectEnricher, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_rules` is never used [INFO] [stdout] --> src/business/validation.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl OrderValidator { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_rules( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `miss_rate` is never read [INFO] [stdout] --> src/cache/metrics.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct CacheMetricsSnapshot { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 87 | pub miss_rate: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CacheMetricsSnapshot` 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 `clear` is never used [INFO] [stdout] --> src/cache/store.rs:140:18 [INFO] [stdout] | [INFO] [stdout] 45 | / impl Cache [INFO] [stdout] 46 | | where [INFO] [stdout] 47 | | K: Hash + Eq + Clone + Send + Sync + std::fmt::Debug + 'static, [INFO] [stdout] 48 | | V: Clone + Send + Sync + 'static, [INFO] [stdout] | |_____________________________________- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 140 | pub async fn clear(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expired_entries` is never read [INFO] [stdout] --> src/cache/store.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 184 | pub struct CacheStats { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 187 | pub expired_entries: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CacheStats` 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: type alias `SiteCache` is never used [INFO] [stdout] --> src/cache/store.rs:191:10 [INFO] [stdout] | [INFO] [stdout] 191 | pub type SiteCache = Cache; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DeviceCache` is never used [INFO] [stdout] --> src/cache/store.rs:194:10 [INFO] [stdout] | [INFO] [stdout] 194 | pub type DeviceCache = Cache; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Device` is never constructed [INFO] [stdout] --> src/cache/store.rs:200:5 [INFO] [stdout] | [INFO] [stdout] 198 | pub enum CacheKey { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 199 | Site(i32), [INFO] [stdout] 200 | Device(i32), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CacheKey` 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: associated functions `device` and `device_list` are never used [INFO] [stdout] --> src/cache/store.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 205 | impl CacheKey { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 210 | pub fn device(id: i32) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 218 | pub fn device_list>(query: S) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `TypeBased` is never constructed [INFO] [stdout] --> src/cache/strategy.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum InvalidationStrategy { [INFO] [stdout] | -------------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 14 | TypeBased, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InvalidationStrategy` 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 `clear_all_caches` is never used [INFO] [stdout] --> src/netbox/cached_client.rs:181:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl CachedNetBoxClient { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 181 | pub async fn clear_all_caches(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `site_list_cache` is never read [INFO] [stdout] --> src/netbox/cached_client.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 198 | pub struct CacheClientStats { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 199 | pub site_cache: crate::cache::CacheStats, [INFO] [stdout] 200 | pub site_list_cache: crate::cache::CacheStats, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CacheClientStats` 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: variant `UnexpectedResponse` is never constructed [INFO] [stdout] --> src/netbox/error.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum NetBoxError { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 28 | UnexpectedResponse(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetBoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_cache` is never used [INFO] [stdout] --> src/netbox/resilient_client.rs:226:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ResilientNetBoxClient { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 226 | pub fn clear_cache(&self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_device` and `delete_device` are never used [INFO] [stdout] --> src/netbox/tenant_client.rs:178:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl TenantAwareNetBoxClient { [INFO] [stdout] | ---------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 178 | pub async fn update_device( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub async fn delete_device(&self, tenant_id: &TenantId, device_id: i32) -> Result<(), AppError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequestTracingMiddleware` is never constructed [INFO] [stdout] --> src/observability/middleware.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct RequestTracingMiddleware; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequestTracingEndpoint` is never constructed [INFO] [stdout] --> src/observability/middleware.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct RequestTracingEndpoint { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_structured_logging` is never used [INFO] [stdout] --> src/observability/tracing.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn init_structured_logging() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `window_duration` is never read [INFO] [stdout] --> src/resilience/circuit_breaker.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct CircuitBreakerConfig { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub window_duration: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CircuitBreakerConfig` 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: associated function `new` is never used [INFO] [stdout] --> src/resilience/retry.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl RetryConfig { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 33 | pub fn new(max_attempts: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `retry` is never used [INFO] [stdout] --> src/resilience/retry.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | pub async fn retry( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `devices` is never read [INFO] [stdout] --> src/resilience/degradation.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | struct CachedDeviceList { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 36 | devices: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CachedDeviceList` 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: methods `get_device_list` and `cache_device_list` are never used [INFO] [stdout] --> src/resilience/degradation.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl DegradationCache { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn get_device_list(&self, key: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn cache_device_list(&self, key: String, devices: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ReturnError` and `ReturnPartial` are never constructed [INFO] [stdout] --> src/resilience/degradation.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 178 | pub enum DegradationStrategy { [INFO] [stdout] | ------------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 184 | ReturnError, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 185 | /// Return partial data if available [INFO] [stdout] 186 | ReturnPartial, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 48.58s [INFO] running `Command { std: "docker" "inspect" "36026efb8852862cb5304297f16f75ef96b0c323d17ab369a8bd6ccdb4be541b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "36026efb8852862cb5304297f16f75ef96b0c323d17ab369a8bd6ccdb4be541b", kill_on_drop: false }` [INFO] [stdout] 36026efb8852862cb5304297f16f75ef96b0c323d17ab369a8bd6ccdb4be541b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8ba6ed27c8da52f5dad74f1c9a5eb9142ee4b843d74701f36b7bbf050e85d0ce [INFO] running `Command { std: "docker" "start" "-a" "8ba6ed27c8da52f5dad74f1c9a5eb9142ee4b843d74701f36b7bbf050e85d0ce", kill_on_drop: false }` [INFO] [stderr] warning: field `timezone` is never read [INFO] [stderr] --> src/business/enrichment.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 22 | pub struct GeographicData { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 25 | pub timezone: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `GeographicData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `department` is never read [INFO] [stderr] --> src/business/enrichment.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 32 | pub struct ContactData { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 36 | pub department: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ContactData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/business/enrichment.rs:75:12 [INFO] [stderr] | [INFO] [stderr] 60 | impl ObjectEnricher { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 75 | pub fn with_config( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 104 | pub fn enrich_device( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 159 | fn add_computed_fields_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 232 | fn merge_enrichment_data_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 315 | fn add_business_tags_device(&self, device: &mut NetBoxDevice, enrichment: &EnrichmentData) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 350 | pub fn compute_status(&self, enrichment: &EnrichmentData) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 365 | pub fn merge_enrichment_sources(sources: Vec) -> EnrichmentData { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ExtensibleOrderService` is never constructed [INFO] [stderr] --> src/business/extensible_order_service.rs:10:12 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct ExtensibleOrderService { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `process_order`, `get_order_status`, and `registry` are never used [INFO] [stderr] --> src/business/extensible_order_service.rs:18:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl ExtensibleOrderService { [INFO] [stderr] | --------------------------- associated items in this implementation [INFO] [stderr] 17 | /// Create a new extensible order service with a registry [INFO] [stderr] 18 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 31 | pub async fn process_order( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 114 | pub async fn get_order_status( [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 138 | pub fn registry(&self) -> &Arc { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ProcessedOrderResult` is never constructed [INFO] [stderr] --> src/business/extensible_order_service.rs:145:12 [INFO] [stderr] | [INFO] [stderr] 145 | pub struct ProcessedOrderResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `OrderStatus` is never constructed [INFO] [stderr] --> src/business/extensible_order_service.rs:154:12 [INFO] [stderr] | [INFO] [stderr] 154 | pub struct OrderStatus { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ExtensibleOrderServiceBuilder` is never constructed [INFO] [stderr] --> src/business/extensible_order_service.rs:163:12 [INFO] [stderr] | [INFO] [stderr] 163 | pub struct ExtensibleOrderServiceBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `with_processor`, `with_default_processors`, and `build` are never used [INFO] [stderr] --> src/business/extensible_order_service.rs:169:12 [INFO] [stderr] | [INFO] [stderr] 167 | impl ExtensibleOrderServiceBuilder { [INFO] [stderr] | ---------------------------------- associated items in this implementation [INFO] [stderr] 168 | /// Create a new builder [INFO] [stderr] 169 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub fn with_processor(mut self, processor: Arc) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 182 | pub fn with_default_processors(mut self) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 189 | pub fn build( [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `OrderType` is never used [INFO] [stderr] --> src/business/plugin.rs:12:10 [INFO] [stderr] | [INFO] [stderr] 12 | pub type OrderType = String; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `OrderPayload` is never used [INFO] [stderr] --> src/business/plugin.rs:16:10 [INFO] [stderr] | [INFO] [stderr] 16 | pub enum OrderPayload { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `order_type` is never used [INFO] [stderr] --> src/business/plugin.rs:23:12 [INFO] [stderr] | [INFO] [stderr] 22 | impl OrderPayload { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] 23 | pub fn order_type(&self) -> &'static str { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `NetBoxResourceRequest` is never used [INFO] [stderr] --> src/business/plugin.rs:32:10 [INFO] [stderr] | [INFO] [stderr] 32 | pub enum NetBoxResourceRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `resource_type` is never used [INFO] [stderr] --> src/business/plugin.rs:38:12 [INFO] [stderr] | [INFO] [stderr] 37 | impl NetBoxResourceRequest { [INFO] [stderr] | -------------------------- method in this implementation [INFO] [stderr] 38 | pub fn resource_type(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `NetBoxResource` is never used [INFO] [stderr] --> src/business/plugin.rs:47:10 [INFO] [stderr] | [INFO] [stderr] 47 | pub enum NetBoxResource { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `resource_id` and `resource_type` are never used [INFO] [stderr] --> src/business/plugin.rs:53:12 [INFO] [stderr] | [INFO] [stderr] 52 | impl NetBoxResource { [INFO] [stderr] | ------------------- methods in this implementation [INFO] [stderr] 53 | pub fn resource_id(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | pub fn resource_type(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `OrderProcessor` is never used [INFO] [stderr] --> src/business/plugin.rs:68:11 [INFO] [stderr] | [INFO] [stderr] 68 | pub trait OrderProcessor: Send + Sync { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `OrderTypeRegistry` is never constructed [INFO] [stderr] --> src/business/plugin.rs:105:12 [INFO] [stderr] | [INFO] [stderr] 105 | pub struct OrderTypeRegistry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `register`, `get_processor`, `default_order_type`, `registered_types`, and `is_registered` are never used [INFO] [stderr] --> src/business/plugin.rs:112:12 [INFO] [stderr] | [INFO] [stderr] 110 | impl OrderTypeRegistry { [INFO] [stderr] | ---------------------- associated items in this implementation [INFO] [stderr] 111 | /// Create a new registry [INFO] [stderr] 112 | pub fn new(default_order_type: OrderType) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 120 | pub fn register(&mut self, processor: Arc) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 127 | pub fn get_processor(&self, order_type: &str) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 132 | pub fn default_order_type(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 137 | pub fn registered_types(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 142 | pub fn is_registered(&self, order_type: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `OrderTypeConfig` is never constructed [INFO] [stderr] --> src/business/plugin.rs:155:12 [INFO] [stderr] | [INFO] [stderr] 155 | pub struct OrderTypeConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `OrderTypeConfigLoader` is never constructed [INFO] [stderr] --> src/business/plugin.rs:165:12 [INFO] [stderr] | [INFO] [stderr] 165 | pub struct OrderTypeConfigLoader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `load_from_map` and `default_configs` are never used [INFO] [stderr] --> src/business/plugin.rs:169:12 [INFO] [stderr] | [INFO] [stderr] 167 | impl OrderTypeConfigLoader { [INFO] [stderr] | -------------------------- associated functions in this implementation [INFO] [stderr] 168 | /// Load order type configurations from a map [INFO] [stderr] 169 | pub fn load_from_map( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub fn default_configs() -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SiteOrderProcessor` is never constructed [INFO] [stderr] --> src/business/processors.rs:10:12 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct SiteOrderProcessor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/business/processors.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl SiteOrderProcessor { [INFO] [stderr] | ----------------------- associated function in this implementation [INFO] [stderr] 17 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `with_default_status` and `enrich_site_request` are never used [INFO] [stderr] --> src/business/transformation.rs:24:12 [INFO] [stderr] | [INFO] [stderr] 15 | impl OrderTransformer { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 24 | pub fn with_default_status(status: SiteStatus) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 79 | pub fn enrich_site_request( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SiteEnrichmentData` is never constructed [INFO] [stderr] --> src/business/transformation.rs:119:12 [INFO] [stderr] | [INFO] [stderr] 119 | pub struct SiteEnrichmentData { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `with_rules` is never used [INFO] [stderr] --> src/business/validation.rs:60:12 [INFO] [stderr] | [INFO] [stderr] 42 | impl OrderValidator { [INFO] [stderr] | ------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 60 | pub fn with_rules( [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `is_terminal` is never used [INFO] [stderr] --> src/business/workflow.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 24 | impl OrderState { [INFO] [stderr] | --------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 52 | pub fn is_terminal(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_tenant_orders` and `get_orders_by_state` are never used [INFO] [stderr] --> src/business/workflow.rs:210:12 [INFO] [stderr] | [INFO] [stderr] 147 | impl WorkflowManager { [INFO] [stderr] | -------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 210 | pub fn get_tenant_orders(&self, tenant_id: &str) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 220 | pub fn get_orders_by_state(&self, state: OrderState) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CacheMetrics` is never constructed [INFO] [stderr] --> src/cache/metrics.rs:5:12 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct CacheMetrics { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/cache/metrics.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl CacheMetrics { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] 14 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | pub fn record_hit(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 28 | pub fn record_miss(&self) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 32 | pub fn record_eviction(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 36 | pub fn record_invalidation(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 40 | pub fn record_put(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 44 | pub fn snapshot(&self) -> CacheMetricsSnapshot { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 66 | pub fn reset(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CacheMetricsSnapshot` is never constructed [INFO] [stderr] --> src/cache/metrics.rs:83:12 [INFO] [stderr] | [INFO] [stderr] 83 | pub struct CacheMetricsSnapshot { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `value` and `expires_at` are never read [INFO] [stderr] --> src/cache/store.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 11 | struct CacheEntry { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 12 | value: T, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 13 | expires_at: Instant, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CacheEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `is_expired` are never used [INFO] [stderr] --> src/cache/store.rs:19:8 [INFO] [stderr] | [INFO] [stderr] 18 | impl CacheEntry { [INFO] [stderr] | --------------------- associated items in this implementation [INFO] [stderr] 19 | fn new(value: T, ttl: Duration) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 28 | fn is_expired(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Cache` is never constructed [INFO] [stderr] --> src/cache/store.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 39 | pub struct Cache { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/cache/store.rs:51:12 [INFO] [stderr] | [INFO] [stderr] 45 | / impl Cache [INFO] [stderr] 46 | | where [INFO] [stderr] 47 | | K: Hash + Eq + Clone + Send + Sync + std::fmt::Debug + 'static, [INFO] [stderr] 48 | | V: Clone + Send + Sync + 'static, [INFO] [stderr] | |_____________________________________- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 51 | pub fn new(default_ttl: Duration) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 60 | pub fn with_max_size(default_ttl: Duration, max_size: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 69 | pub async fn get(&self, key: &K) -> Option { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 87 | pub async fn put(&self, key: K, value: V) { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 92 | pub async fn put_with_ttl(&self, key: K, value: V, ttl: Duration) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 113 | pub async fn invalidate(&self, key: &K) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 121 | pub async fn invalidate_matching(&self, predicate: F) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub async fn clear(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 148 | pub async fn evict_expired(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 162 | pub async fn size(&self) -> usize { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 168 | pub async fn stats(&self) -> CacheStats { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CacheStats` is never constructed [INFO] [stderr] --> src/cache/store.rs:184:12 [INFO] [stderr] | [INFO] [stderr] 184 | pub struct CacheStats { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `SiteCache` is never used [INFO] [stderr] --> src/cache/store.rs:191:10 [INFO] [stderr] | [INFO] [stderr] 191 | pub type SiteCache = Cache; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `DeviceCache` is never used [INFO] [stderr] --> src/cache/store.rs:194:10 [INFO] [stderr] | [INFO] [stderr] 194 | pub type DeviceCache = Cache; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `CacheKey` is never used [INFO] [stderr] --> src/cache/store.rs:198:10 [INFO] [stderr] | [INFO] [stderr] 198 | pub enum CacheKey { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `site`, `device`, `site_list`, and `device_list` are never used [INFO] [stderr] --> src/cache/store.rs:206:12 [INFO] [stderr] | [INFO] [stderr] 205 | impl CacheKey { [INFO] [stderr] | ------------- associated functions in this implementation [INFO] [stderr] 206 | pub fn site(id: i32) -> Self { [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 210 | pub fn device(id: i32) -> Self { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 214 | pub fn site_list>(query: S) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 218 | pub fn device_list>(query: S) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `InvalidationStrategy` is never used [INFO] [stderr] --> src/cache/strategy.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum InvalidationStrategy { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CacheConfig` is never constructed [INFO] [stderr] --> src/cache/strategy.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct CacheConfig { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `with_max_size`, `with_invalidation_strategy`, and `with_metrics` are never used [INFO] [stderr] --> src/cache/strategy.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 37 | impl CacheConfig { [INFO] [stderr] | ---------------- associated items in this implementation [INFO] [stderr] 38 | /// Create a new cache configuration [INFO] [stderr] 39 | pub fn new(default_ttl: Duration) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 47 | pub fn with_max_size(mut self, max_size: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 53 | pub fn with_invalidation_strategy(mut self, strategy: InvalidationStrategy) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | pub fn with_metrics(mut self, enable: bool) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_invalidation_keys` is never used [INFO] [stderr] --> src/cache/strategy.rs:66:8 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn get_invalidation_keys(key: &CacheKey, strategy: InvalidationStrategy) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `add_site` is never used [INFO] [stderr] --> src/domain/tenant.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl TenantStore { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 20 | pub fn add_site(&self, tenant_id: TenantId, site: Site) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CachedNetBoxClient` is never constructed [INFO] [stderr] --> src/netbox/cached_client.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct CachedNetBoxClient { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/netbox/cached_client.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 17 | impl CachedNetBoxClient { [INFO] [stderr] | ----------------------- associated items in this implementation [INFO] [stderr] 18 | /// Create a new cached client with default configuration [INFO] [stderr] 19 | pub fn new(client: Arc) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | pub fn with_config(client: Arc, config: CacheConfig) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 47 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 77 | pub async fn list_sites( [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 124 | pub async fn create_site(&self, request: CreateSiteRequest) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 134 | async fn invalidate_site_cache(&self, site_id: &Option) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 160 | async fn invalidate_site_list_cache(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 167 | pub fn cache_metrics(&self) -> crate::cache::CacheMetricsSnapshot { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 172 | pub async fn cache_stats(&self) -> CacheClientStats { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 181 | pub async fn clear_all_caches(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 188 | pub async fn evict_expired(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CacheClientStats` is never constructed [INFO] [stderr] --> src/netbox/cached_client.rs:198:12 [INFO] [stderr] | [INFO] [stderr] 198 | pub struct CacheClientStats { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/netbox/client.rs:96:18 [INFO] [stderr] | [INFO] [stderr] 16 | impl NetBoxClient { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 96 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 173 | pub async fn update_site( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 204 | pub async fn delete_site(&self, id: i32) -> Result<(), NetBoxError> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 232 | pub async fn create_device( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 259 | pub async fn get_device(&self, id: i32) -> Result { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 285 | pub async fn list_devices( [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 340 | pub async fn update_device( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 371 | pub async fn delete_device(&self, id: i32) -> Result<(), NetBoxError> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `UnexpectedResponse` is never constructed [INFO] [stderr] --> src/netbox/error.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 5 | pub enum NetBoxError { [INFO] [stderr] | ----------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 28 | UnexpectedResponse(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `NetBoxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `UpdateSiteRequest` is never constructed [INFO] [stderr] --> src/netbox/models.rs:180:12 [INFO] [stderr] | [INFO] [stderr] 180 | pub struct UpdateSiteRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `CreateDeviceRequest` is never constructed [INFO] [stderr] --> src/netbox/models.rs:201:12 [INFO] [stderr] | [INFO] [stderr] 201 | pub struct CreateDeviceRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `UpdateDeviceRequest` is never constructed [INFO] [stderr] --> src/netbox/models.rs:222:12 [INFO] [stderr] | [INFO] [stderr] 222 | pub struct UpdateDeviceRequest { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `with_config`, `get_site`, and `clear_cache` are never used [INFO] [stderr] --> src/netbox/resilient_client.rs:33:12 [INFO] [stderr] | [INFO] [stderr] 20 | impl ResilientNetBoxClient { [INFO] [stderr] | -------------------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 33 | pub fn with_config( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 49 | pub async fn get_site(&self, id: i32) -> Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 226 | pub fn clear_cache(&self) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TenantAwareNetBoxClient` is never constructed [INFO] [stderr] --> src/netbox/tenant_client.rs:9:12 [INFO] [stderr] | [INFO] [stderr] 9 | pub struct TenantAwareNetBoxClient { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/netbox/tenant_client.rs:16:12 [INFO] [stderr] | [INFO] [stderr] 15 | impl TenantAwareNetBoxClient { [INFO] [stderr] | ---------------------------- associated items in this implementation [INFO] [stderr] 16 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 34 | pub async fn get_site(&self, tenant_id: &TenantId, site_id: i32) -> Result { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 43 | pub async fn list_sites( [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | pub async fn create_site( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 90 | pub async fn update_site( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 109 | pub async fn delete_site(&self, tenant_id: &TenantId, site_id: i32) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 121 | pub async fn get_device(&self, tenant_id: &TenantId, device_id: i32) -> Result { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 130 | pub async fn list_devices( [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 155 | pub async fn create_device( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 178 | pub async fn update_device( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 197 | pub async fn delete_device(&self, tenant_id: &TenantId, device_id: i32) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `RequestTracingMiddleware` is never constructed [INFO] [stderr] --> src/observability/middleware.rs:8:12 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct RequestTracingMiddleware; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `RequestTracingEndpoint` is never constructed [INFO] [stderr] --> src/observability/middleware.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct RequestTracingEndpoint { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `extract_request_id` is never used [INFO] [stderr] --> src/observability/middleware.rs:60:8 [INFO] [stderr] | [INFO] [stderr] 60 | pub fn extract_request_id(req: &Request) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `extract_correlation_id` is never used [INFO] [stderr] --> src/observability/middleware.rs:65:8 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn extract_correlation_id(req: &Request) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `init_structured_logging` is never used [INFO] [stderr] --> src/observability/tracing.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn init_structured_logging() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `window_duration` is never read [INFO] [stderr] --> src/resilience/circuit_breaker.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct CircuitBreakerConfig { [INFO] [stderr] | -------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 27 | pub window_duration: Duration, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CircuitBreakerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `with_config` and `reset` are never used [INFO] [stderr] --> src/resilience/circuit_breaker.rs:103:12 [INFO] [stderr] | [INFO] [stderr] 93 | impl CircuitBreaker { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 103 | pub fn with_config(config: CircuitBreakerConfig) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 208 | pub fn reset(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `record_retry` and `reset` are never used [INFO] [stderr] --> src/resilience/metrics.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 24 | impl ApiMetrics { [INFO] [stderr] | --------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 63 | pub fn record_retry(&self) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 139 | pub fn reset(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/resilience/retry.rs:33:12 [INFO] [stderr] | [INFO] [stderr] 32 | impl RetryConfig { [INFO] [stderr] | ---------------- associated function in this implementation [INFO] [stderr] 33 | pub fn new(max_attempts: u32) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: function `retry` is never used [INFO] [stderr] --> src/resilience/retry.rs:113:14 [INFO] [stderr] | [INFO] [stderr] 113 | pub async fn retry( [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `devices` and `device_lists` are never read [INFO] [stderr] --> src/resilience/degradation.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct DegradationCache { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] 9 | sites: Arc>>, [INFO] [stderr] 10 | devices: Arc>>, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 11 | site_lists: Arc>>, [INFO] [stderr] 12 | device_lists: Arc>>, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `site` and `cached_at` are never read [INFO] [stderr] --> src/resilience/degradation.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 17 | struct CachedSite { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 18 | site: NetBoxSite, [INFO] [stderr] | ^^^^ [INFO] [stderr] 19 | cached_at: std::time::Instant, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CachedSite` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `device` and `cached_at` are never read [INFO] [stderr] --> src/resilience/degradation.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 23 | struct CachedDevice { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 24 | device: NetBoxDevice, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 25 | cached_at: std::time::Instant, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CachedDevice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `devices` and `cached_at` are never read [INFO] [stderr] --> src/resilience/degradation.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 35 | struct CachedDeviceList { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] 36 | devices: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 37 | cached_at: std::time::Instant, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CachedDeviceList` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/resilience/degradation.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 40 | impl DegradationCache { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 56 | pub fn get_site(&self, id: i32) -> Option { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 77 | pub fn get_device(&self, id: i32) -> Option { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 89 | pub fn cache_device(&self, id: i32, device: NetBoxDevice) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 119 | pub fn get_device_list(&self, key: &str) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 131 | pub fn cache_device_list(&self, key: String, devices: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub fn clear_expired(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 169 | pub fn clear_all(&self) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `DegradationStrategy` is never used [INFO] [stderr] --> src/resilience/degradation.rs:178:10 [INFO] [stderr] | [INFO] [stderr] 178 | pub enum DegradationStrategy { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `degrade_site_retrieval` is never used [INFO] [stderr] --> src/resilience/degradation.rs:190:8 [INFO] [stderr] | [INFO] [stderr] 190 | pub fn degrade_site_retrieval( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `degrade_site_list_retrieval` is never used [INFO] [stderr] --> src/resilience/degradation.rs:221:8 [INFO] [stderr] | [INFO] [stderr] 221 | pub fn degrade_site_list_retrieval( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `NetBoxTenantId` is never used [INFO] [stderr] --> src/security/tenant.rs:10:10 [INFO] [stderr] | [INFO] [stderr] 10 | pub type NetBoxTenantId = i32; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TenantMappingService` is never constructed [INFO] [stderr] --> src/security/tenant.rs:13:12 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct TenantMappingService { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `register_mapping`, `get_netbox_tenant_id`, `has_mapping`, `remove_mapping`, and `get_all_tenant_ids` are never used [INFO] [stderr] --> src/security/tenant.rs:19:12 [INFO] [stderr] | [INFO] [stderr] 18 | impl TenantMappingService { [INFO] [stderr] | ------------------------- associated items in this implementation [INFO] [stderr] 19 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 26 | pub fn register_mapping(&self, tenant_id: TenantId, netbox_tenant_id: NetBoxTenantId) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 32 | pub fn get_netbox_tenant_id(&self, tenant_id: &TenantId) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 38 | pub fn has_mapping(&self, tenant_id: &TenantId) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 44 | pub fn remove_mapping(&self, tenant_id: &TenantId) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 50 | pub fn get_all_tenant_ids(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TenantAccessControl` is never constructed [INFO] [stderr] --> src/security/tenant.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 63 | pub struct TenantAccessControl { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/security/tenant.rs:68:12 [INFO] [stderr] | [INFO] [stderr] 67 | impl TenantAccessControl { [INFO] [stderr] | ------------------------ associated items in this implementation [INFO] [stderr] 68 | pub fn new(mapping_service: TenantMappingService) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 75 | pub fn mapping_service(&self) -> &std::sync::Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 80 | pub fn verify_site_access(&self, tenant_id: &TenantId, site: &NetBoxSite) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | pub fn verify_device_access(&self, tenant_id: &TenantId, device: &NetBoxDevice) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 118 | pub fn get_netbox_tenant_id(&self, tenant_id: &TenantId) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 123 | pub fn filter_sites_by_tenant( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 143 | pub fn filter_devices_by_tenant( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 163 | pub fn has_access_to_netbox_tenant(&self, tenant_id: &TenantId, netbox_tenant_id: NetBoxTenantId) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `TenantResourceVisibility` is never constructed [INFO] [stderr] --> src/security/tenant.rs:172:12 [INFO] [stderr] | [INFO] [stderr] 172 | pub struct TenantResourceVisibility { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `ensure_site_visible`, `ensure_device_visible`, `get_tenant_sites`, and `get_tenant_devices` are never used [INFO] [stderr] --> src/security/tenant.rs:177:12 [INFO] [stderr] | [INFO] [stderr] 176 | impl TenantResourceVisibility { [INFO] [stderr] | ----------------------------- associated items in this implementation [INFO] [stderr] 177 | pub fn new(access_control: TenantAccessControl) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 182 | pub fn ensure_site_visible(&self, tenant_id: &TenantId, site: &NetBoxSite) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 187 | pub fn ensure_device_visible(&self, tenant_id: &TenantId, device: &NetBoxDevice) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 192 | pub fn get_tenant_sites( [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 201 | pub fn get_tenant_devices( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `netgate` (bin "netgate") generated 82 warnings [INFO] [stderr] warning: unused import: `poem::EndpointExt` [INFO] [stderr] --> src/observability/middleware.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | use poem::EndpointExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/observability/tracing.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `api` [INFO] [stderr] --> src/api/health.rs:157:13 [INFO] [stderr] | [INFO] [stderr] 157 | let api = HealthApi::new(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `api` [INFO] [stderr] --> src/api/health.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | let api = HealthApi::with_netbox_client(resilient_client); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `api` [INFO] [stderr] --> src/api/metrics.rs:103:13 [INFO] [stderr] | [INFO] [stderr] 103 | let api = MetricsApi::new(); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `api` [INFO] [stderr] --> src/api/metrics.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | let api = MetricsApi::with_netbox_client(resilient_client); [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_api` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/business/enrichment.rs:462:13 [INFO] [stderr] | [INFO] [stderr] 462 | let mut site = create_test_site(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/business/enrichment.rs:486:13 [INFO] [stderr] | [INFO] [stderr] 486 | let mut site = create_test_site(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/business/enrichment.rs:508:13 [INFO] [stderr] | [INFO] [stderr] 508 | let mut site = create_test_site(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/business/enrichment.rs:571:13 [INFO] [stderr] | [INFO] [stderr] 571 | let mut device = create_test_device(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/business/enrichment.rs:743:13 [INFO] [stderr] | [INFO] [stderr] 743 | let mut site = create_test_site(); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `service` [INFO] [stderr] --> src/business/order_service.rs:192:13 [INFO] [stderr] | [INFO] [stderr] 192 | let service = OrderService::new(workflow_manager, netbox_client); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_service` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/business/transformation.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut request = transformer.transform_site_order(order, None); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: associated function `with_config` is never used [INFO] [stderr] --> src/business/enrichment.rs:75:12 [INFO] [stderr] | [INFO] [stderr] 60 | impl ObjectEnricher { [INFO] [stderr] | ------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 75 | pub fn with_config( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `registry` and `netbox_client` are never read [INFO] [stderr] --> src/business/extensible_order_service.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct ExtensibleOrderService { [INFO] [stderr] | ---------------------- fields in this struct [INFO] [stderr] 11 | registry: Arc, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 12 | workflow_manager: Arc, [INFO] [stderr] 13 | netbox_client: Arc, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `process_order` and `registry` are never used [INFO] [stderr] --> src/business/extensible_order_service.rs:31:18 [INFO] [stderr] | [INFO] [stderr] 16 | impl ExtensibleOrderService { [INFO] [stderr] | --------------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 31 | pub async fn process_order( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 138 | pub fn registry(&self) -> &Arc { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `order_id`, `state`, `netbox_resource_id`, `created_at`, and `updated_at` are never read [INFO] [stderr] --> src/business/extensible_order_service.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 154 | pub struct OrderStatus { [INFO] [stderr] | ----------- fields in this struct [INFO] [stderr] 155 | pub order_id: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 156 | pub state: OrderState, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 157 | pub netbox_resource_id: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 158 | pub created_at: chrono::DateTime, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 159 | pub updated_at: chrono::DateTime, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `OrderStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `with_processor` is never used [INFO] [stderr] --> src/business/extensible_order_service.rs:176:12 [INFO] [stderr] | [INFO] [stderr] 167 | impl ExtensibleOrderServiceBuilder { [INFO] [stderr] | ---------------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 176 | pub fn with_processor(mut self, processor: Arc) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/business/plugin.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | Site(CreateSiteRequest), [INFO] [stderr] | ---- ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `NetBoxResourceRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 33 - Site(CreateSiteRequest), [INFO] [stderr] 33 + Site(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods `enrich_request`, `create_resource`, and `enrich_resource` are never used [INFO] [stderr] --> src/business/plugin.rs:83:8 [INFO] [stderr] | [INFO] [stderr] 68 | pub trait OrderProcessor: Send + Sync { [INFO] [stderr] | -------------- methods in this trait [INFO] [stderr] ... [INFO] [stderr] 83 | fn enrich_request( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 90 | async fn create_resource( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 97 | fn enrich_resource( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `load_from_map` is never used [INFO] [stderr] --> src/business/plugin.rs:169:12 [INFO] [stderr] | [INFO] [stderr] 167 | impl OrderTypeConfigLoader { [INFO] [stderr] | -------------------------- associated function in this implementation [INFO] [stderr] 168 | /// Load order type configurations from a map [INFO] [stderr] 169 | pub fn load_from_map( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `enricher` is never read [INFO] [stderr] --> src/business/processors.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct SiteOrderProcessor { [INFO] [stderr] | ------------------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 13 | enricher: ObjectEnricher, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `miss_rate` is never read [INFO] [stderr] --> src/cache/metrics.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 83 | pub struct CacheMetricsSnapshot { [INFO] [stderr] | -------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 87 | pub miss_rate: f64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CacheMetricsSnapshot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `clear` is never used [INFO] [stderr] --> src/cache/store.rs:140:18 [INFO] [stderr] | [INFO] [stderr] 45 | / impl Cache [INFO] [stderr] 46 | | where [INFO] [stderr] 47 | | K: Hash + Eq + Clone + Send + Sync + std::fmt::Debug + 'static, [INFO] [stderr] 48 | | V: Clone + Send + Sync + 'static, [INFO] [stderr] | |_____________________________________- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 140 | pub async fn clear(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `expired_entries` is never read [INFO] [stderr] --> src/cache/store.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 184 | pub struct CacheStats { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 187 | pub expired_entries: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CacheStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Device` is never constructed [INFO] [stderr] --> src/cache/store.rs:200:5 [INFO] [stderr] | [INFO] [stderr] 198 | pub enum CacheKey { [INFO] [stderr] | -------- variant in this enum [INFO] [stderr] 199 | Site(i32), [INFO] [stderr] 200 | Device(i32), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CacheKey` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated functions `device` and `device_list` are never used [INFO] [stderr] --> src/cache/store.rs:210:12 [INFO] [stderr] | [INFO] [stderr] 205 | impl CacheKey { [INFO] [stderr] | ------------- associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 210 | pub fn device(id: i32) -> Self { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 218 | pub fn device_list>(query: S) -> Self { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `TypeBased` is never constructed [INFO] [stderr] --> src/cache/strategy.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 6 | pub enum InvalidationStrategy { [INFO] [stderr] | -------------------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 14 | TypeBased, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `InvalidationStrategy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `clear_all_caches` is never used [INFO] [stderr] --> src/netbox/cached_client.rs:181:18 [INFO] [stderr] | [INFO] [stderr] 17 | impl CachedNetBoxClient { [INFO] [stderr] | ----------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 181 | pub async fn clear_all_caches(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `site_list_cache` is never read [INFO] [stderr] --> src/netbox/cached_client.rs:200:9 [INFO] [stderr] | [INFO] [stderr] 198 | pub struct CacheClientStats { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] 199 | pub site_cache: crate::cache::CacheStats, [INFO] [stderr] 200 | pub site_list_cache: crate::cache::CacheStats, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CacheClientStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `clear_cache` is never used [INFO] [stderr] --> src/netbox/resilient_client.rs:226:12 [INFO] [stderr] | [INFO] [stderr] 20 | impl ResilientNetBoxClient { [INFO] [stderr] | -------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 226 | pub fn clear_cache(&self) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `update_device` and `delete_device` are never used [INFO] [stderr] --> src/netbox/tenant_client.rs:178:18 [INFO] [stderr] | [INFO] [stderr] 15 | impl TenantAwareNetBoxClient { [INFO] [stderr] | ---------------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 178 | pub async fn update_device( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 197 | pub async fn delete_device(&self, tenant_id: &TenantId, device_id: i32) -> Result<(), AppError> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `devices` is never read [INFO] [stderr] --> src/resilience/degradation.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 35 | struct CachedDeviceList { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] 36 | devices: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CachedDeviceList` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `get_device_list` and `cache_device_list` are never used [INFO] [stderr] --> src/resilience/degradation.rs:119:12 [INFO] [stderr] | [INFO] [stderr] 40 | impl DegradationCache { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 119 | pub fn get_device_list(&self, key: &str) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 131 | pub fn cache_device_list(&self, key: String, devices: Vec) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `ReturnError` and `ReturnPartial` are never constructed [INFO] [stderr] --> src/resilience/degradation.rs:184:5 [INFO] [stderr] | [INFO] [stderr] 178 | pub enum DegradationStrategy { [INFO] [stderr] | ------------------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 184 | ReturnError, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 185 | /// Return partial data if available [INFO] [stderr] 186 | ReturnPartial, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `netgate` (bin "netgate" test) generated 48 warnings (13 duplicates) (run `cargo fix --bin "netgate" -p netgate --tests` to apply 13 suggestions) [INFO] [stderr] warning: `netgate` (lib test) generated 13 warnings (13 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.52s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/netgate-8a0d14b580093589) [INFO] [stdout] [INFO] [stdout] running 265 tests [INFO] [stdout] test api::health::tests::test_health_api_creation ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_device_computed_name ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_status_based_tags ... ok [INFO] [stdout] test business::enrichment::tests::test_compute_status_from_environment ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_preserves_existing_data ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_custom_tags ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_geographic_data ... ok [INFO] [stdout] test api::metrics::tests::test_metrics_api_creation ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_computed_description ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_device_with_business_metadata ... ok [INFO] [stdout] test business::enrichment::tests::test_enrichment_with_empty_data ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_contact_data ... ok [INFO] [stdout] test business::enrichment::tests::test_merge_enrichment_sources ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_business_metadata ... ok [INFO] [stdout] test business::order_service::tests::test_get_order_status_success ... ok [INFO] [stdout] test business::order_service::tests::test_get_order_status_not_found ... ok [INFO] [stdout] test api::health::tests::test_health_api_with_client ... ok [INFO] [stdout] test business::plugin::tests::test_netbox_resource_id ... ok [INFO] [stdout] test api::metrics::tests::test_get_metrics ... ok [INFO] [stdout] test business::extensible_order_service::tests::test_get_order_status_not_found ... ok [INFO] [stdout] test business::plugin::tests::test_netbox_resource_request_type ... ok [INFO] [stdout] test business::plugin::tests::test_order_payload_order_type ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_creation ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_get_nonexistent ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_config_loader_default ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_default ... ok [INFO] [stdout] test business::order_service::tests::test_order_service_creation ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_get_processor ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_register ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_validate ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_validate_failure ... ok [INFO] [stdout] test business::transformation::tests::test_enrich_site_request ... ok [INFO] [stdout] test business::transformation::tests::test_generate_slug ... ok [INFO] [stdout] test business::transformation::tests::test_transform_site_order_basic ... ok [INFO] [stdout] test business::validation::tests::test_validate_address_too_long ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_creation ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_empty ... ok [INFO] [stdout] test business::validation::tests::test_validate_description_too_long ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_invalid_characters ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_too_long ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_valid ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_whitespace_only ... ok [INFO] [stdout] test business::validation::tests::test_validate_site_order_invalid_name ... ok [INFO] [stdout] test business::validation::tests::test_validate_site_order_success ... ok [INFO] [stdout] test business::workflow::tests::test_order_state_transitions ... ok [INFO] [stdout] test business::transformation::tests::test_transform_with_custom_status ... ok [INFO] [stdout] test business::workflow::tests::test_terminal_states ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_manager_create_order ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_transform ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_manager_get_orders_by_state ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_manager_get_tenant_orders ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_mark_failed ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_mark_completed ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_transition ... ok [INFO] [stdout] test cache::metrics::tests::test_cache_metrics_reset ... ok [INFO] [stdout] test business::validation::tests::test_validate_site_order_with_optional_fields ... ok [INFO] [stdout] test cache::metrics::tests::test_cache_metrics ... ok [INFO] [stdout] test api::metrics::tests::test_metrics_api_with_client ... ok [INFO] [stdout] test api::health::tests::test_health_check_with_netbox_connected ... ok [INFO] [stdout] test cache::store::tests::test_cache_put_and_get ... ok [INFO] [stdout] test cache::store::tests::test_cache_evict_expired ... ok [INFO] [stdout] test cache::store::tests::test_cache_stats ... ok [INFO] [stdout] test cache::strategy::tests::test_invalidation_strategy_never ... ok [INFO] [stdout] test cache::store::tests::test_cache_expiration ... ok [INFO] [stdout] test cache::strategy::tests::test_invalidation_strategy_write_back ... ok [INFO] [stdout] test cache::strategy::tests::test_cache_config_builder ... ok [INFO] [stdout] test cache::strategy::tests::test_invalidation_strategy_write_through ... ok [INFO] [stdout] test config::tests::test_config_defaults ... ok [INFO] [stdout] test config::tests::test_config_invalid_port ... ok [INFO] [stdout] test domain::order::tests::test_site_from_order ... ok [INFO] [stdout] test domain::order::tests::test_site_from_order_with_optional_fields ... ok [INFO] [stdout] test cache::strategy::tests::test_cache_config_default ... ok [INFO] [stdout] test domain::order::tests::test_site_id_is_unique ... ok [INFO] [stdout] test config::tests::test_config_from_env ... ok [INFO] [stdout] test domain::tenant::tests::test_add_and_get_sites ... ok [INFO] [stdout] test cache::store::tests::test_cache_max_size ... ok [INFO] [stdout] test domain::tenant::tests::test_get_sites_for_nonexistent_tenant ... ok [INFO] [stdout] test domain::tenant::tests::test_tenant_store_new ... ok [INFO] [stdout] test business::order_service::tests::test_get_order_status_unauthorized ... ok [INFO] [stdout] test domain::tenant::tests::test_tenant_isolation ... ok [INFO] [stdout] test business::order_service::tests::test_order_service_full_flow_with_mock ... ok [INFO] [stdout] test cache::store::tests::test_cache_invalidation ... ok [INFO] [stdout] test netbox::client::tests::test_client_creation_no_token ... ok [INFO] [stdout] test business::extensible_order_service::tests::test_extensible_order_service_builder ... ok [INFO] [stdout] test business::order_service::tests::test_process_site_order_validation_failure ... ok [INFO] [stdout] test business::order_service::tests::test_order_service_netbox_failure_handling ... ok [INFO] [stdout] test api::metrics::tests::test_get_metrics_with_failures ... ok [INFO] [stdout] test api::health::tests::test_health_check_with_netbox_disconnected ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_create_site_invalidation ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_client_creation ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_list_sites ... ok [INFO] [stdout] test netbox::client::tests::test_create_site_success ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_client_with_config ... ok [INFO] [stdout] test netbox::client::tests::test_create_device_success ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cache_stats ... ok [INFO] [stdout] test netbox::client::tests::test_create_site_authentication_error ... ok [INFO] [stdout] test netbox::client::tests::test_delete_device_success ... ok [INFO] [stdout] test netbox::client::tests::test_client_creation_success ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_get_site_hit ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_400 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_401 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_403 ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cache_evict_expired ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_404 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_422 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_500 ... ok [INFO] [stdout] test business::order_service::tests::test_process_site_order_workflow_states ... ok [INFO] [stdout] test netbox::client::tests::test_get_site_not_found ... ok [INFO] [stdout] test netbox::client::tests::test_get_site_success ... ok [INFO] [stdout] test netbox::client::tests::test_list_sites_success ... ok [INFO] [stdout] test netbox::client::tests::test_list_devices_with_filters ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_retries_on_failure ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_get_site_success ... ok [INFO] [stdout] test netbox::client::tests::test_update_device_success ... ok [INFO] [stdout] test netbox::client::tests::test_delete_site_not_found ... ok [INFO] [stdout] test api::health::tests::test_health_check_circuit_breaker_state ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_uses_cache_on_failure ... ok [INFO] [stdout] test netbox::client::tests::test_delete_site_success ... ok [INFO] [stdout] test netbox::client::tests::test_get_device_success ... ok [INFO] [stdout] test netbox::client::tests::test_update_site_success ... ok [INFO] [stdout] test netbox::client::tests::test_validation_error ... ok [INFO] [stdout] test netbox::client::tests::test_list_sites_with_tenant_filter ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_create_device_assigns_tenant ... ok [INFO] [stdout] test observability::middleware::tests::test_correlation_id_extraction ... ok [INFO] [stdout] test observability::middleware::tests::test_missing_request_id ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_get_device_with_tenant_access_control ... ok [INFO] [stdout] test observability::tracing::tests::test_structured_logging_initialization ... ok [INFO] [stdout] test observability::middleware::tests::test_request_id_extraction ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_create_one_to_one_mapping ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_mapping_count ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_physical_resources ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_physical_resources_nonexistent ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_tenant_mappings ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_virtual_resources_nonexistent ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_virtual_resources ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_has_physical_mapping ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_get_tenant_mappings_nonexistent ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_many_to_many_mapping ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_many_to_one_mapping ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_mapping_error_display ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_mapping_manager_default ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_has_physical_mapping_empty_list ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_mapping_type_variants ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_one_to_many_mapping ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_remove_mapping ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_remove_mapping_multiple_physical ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_resource_mapping_clone ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_has_virtual_mapping_nonexistent ... ok [INFO] [stdout] test r#virtual::models::tests::test_netbox_device_adapter ... ok [INFO] [stdout] test r#virtual::models::tests::test_netbox_device_adapter_no_id ... ok [INFO] [stdout] test r#virtual::models::tests::test_netbox_device_adapter_no_name ... ok [INFO] [stdout] test r#virtual::models::tests::test_netbox_site_adapter ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_device_creation ... ok [INFO] [stdout] test r#virtual::models::tests::test_netbox_site_adapter_no_id ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_device_resource_trait ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_network_creation ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_network_resource_trait ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_resource_type_variants ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_site_creation ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_site_with_metadata ... ok [INFO] [stdout] test r#virtual::models::tests::test_virtual_site_resource_trait ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_device ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_device_multiple_physical ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_device_no_physical_mappings ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_device_one_physical ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_site_no_physical_mappings ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_site ... ok [INFO] [stdout] test r#virtual::service::tests::test_create_virtual_site_one_physical ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_all_resources_for_tenant ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_physical_sites_for_virtual ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_tenant_virtual_devices_empty ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_tenant_virtual_networks_empty ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_all_resources_includes_networks ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_tenant_virtual_sites_empty ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_device_nonexistent ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_site_nonexistent ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_site_with_mappings ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_site_with_mappings_nonexistent ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_network_nonexistent ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_sites_for_physical ... ok [INFO] [stdout] test r#virtual::service::tests::test_map_virtual_to_physical_multiple_times ... ok [INFO] [stdout] test r#virtual::service::tests::test_map_virtual_to_physical_site ... ok [INFO] [stdout] test r#virtual::service::tests::test_mapping_manager_access ... ok [INFO] [stdout] test r#virtual::service::tests::test_netbox_device_to_resource ... ok [INFO] [stdout] test r#virtual::service::tests::test_netbox_site_to_resource ... ok [INFO] [stdout] test r#virtual::service::tests::test_virtual_resource_service_default ... ok [INFO] [stdout] test r#virtual::service::tests::test_virtual_resource_store_create_and_get ... ok [INFO] [stdout] test r#virtual::mapping::tests::test_remove_mapping_nonexistent ... ok [INFO] [stdout] test r#virtual::service::tests::test_virtual_resource_store_tenant_isolation ... ok [INFO] [stdout] test r#virtual::service::tests::test_get_virtual_sites_for_physical_nonexistent ... ok [INFO] [stdout] test r#virtual::service::tests::test_virtual_resource_store_default ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_opens_after_threshold ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_reset ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_resets_on_success ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_starts_closed ... ok [INFO] [stdout] test api::metrics::tests::test_get_metrics_circuit_breaker_rejections ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_update_site_verifies_access ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_device_and_retrieve ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_site_and_retrieve ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_site_list ... ok [INFO] [stdout] test resilience::degradation::tests::test_clear_all ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_delete_site_verifies_access ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_expires ... ok [INFO] [stdout] test resilience::degradation::tests::test_degrade_site_list_retrieval_use_cache ... ok [INFO] [stdout] test resilience::degradation::tests::test_degrade_site_retrieval_return_empty ... ok [INFO] [stdout] test resilience::degradation::tests::test_degrade_site_retrieval_use_cache ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_circuit_breaker_rejections ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_initial_state ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_record_failure ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_reset ... ok [INFO] [stdout] test resilience::degradation::tests::test_clear_expired ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_snapshot ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_success_rate ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_retries ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_config_respects_max_delay ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_sites_with_tenant_filter ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_config_calculate_delay ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_record_success ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_stops_on_non_retryable_error ... ok [INFO] [stdout] test security::auth::tests::test_extract_tenant_id_missing ... ok [INFO] [stdout] test security::auth::tests::test_extract_tenant_id_success ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_device_visible_failure ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_device_visible_success ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_site_visible_failure ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_site_visible_success ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_success_on_first_attempt ... ok [INFO] [stdout] test security::tenant::tests::test_filter_devices_by_tenant ... ok [INFO] [stdout] test security::tenant::tests::test_filter_devices_by_tenant_empty_result ... ok [INFO] [stdout] test security::tenant::tests::test_filter_sites_by_tenant_empty_result ... ok [INFO] [stdout] test security::tenant::tests::test_filter_sites_by_tenant_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_filter_sites_by_tenant ... ok [INFO] [stdout] test security::tenant::tests::test_get_tenant_devices ... ok [INFO] [stdout] test security::tenant::tests::test_get_tenant_sites ... ok [INFO] [stdout] test security::tenant::tests::test_get_netbox_tenant_id ... ok [INFO] [stdout] test security::tenant::tests::test_has_access_to_netbox_tenant ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_isolation_multiple_tenants ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_default ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_get_all_tenant_ids ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_get_nonexistent ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_multiple_tenants ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_register ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_remove ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_update_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_get_tenant_sites_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_verify_device_access_no_tenant_on_device ... ok [INFO] [stdout] test security::tenant::tests::test_verify_device_access_success ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_no_tenant_on_site ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_success ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_wrong_tenant ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_devices_with_tenant_filter ... ok [INFO] [stdout] test security::tenant::tests::test_verify_device_access_wrong_tenant ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_get_site_with_tenant_access_control_unauthorized ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_create_site_assigns_tenant ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_closes_after_success_threshold ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_success_after_failures ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_fails_after_max_attempts ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_failure_in_half_open_opens_again ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_transitions_to_half_open ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_get_site_with_tenant_access_control_success ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_sites_no_mapping ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_sites_filters_out_wrong_tenant ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_tenant_isolation_between_tenants ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_update_site_unauthorized ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_circuit_breaker_opens ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 265 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.86s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/netgate-f70b6d0c491a3e0a) [INFO] [stdout] [INFO] [stdout] running 202 tests [INFO] [stdout] test api::health::tests::test_health_api_creation ... ok [INFO] [stdout] test api::metrics::tests::test_metrics_api_creation ... ok [INFO] [stdout] test business::enrichment::tests::test_compute_status_from_environment ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_device_with_business_metadata ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_computed_description ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_preserves_existing_data ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_status_based_tags ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_contact_data ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_custom_tags ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_geographic_data ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_site_with_business_metadata ... ok [INFO] [stdout] test business::enrichment::tests::test_enrichment_with_empty_data ... ok [INFO] [stdout] test business::enrichment::tests::test_enrich_device_computed_name ... ok [INFO] [stdout] test business::enrichment::tests::test_merge_enrichment_sources ... ok [INFO] [stdout] test business::order_service::tests::test_get_order_status_not_found ... ok [INFO] [stdout] test business::order_service::tests::test_get_order_status_unauthorized ... ok [INFO] [stdout] test business::extensible_order_service::tests::test_get_order_status_not_found ... ok [INFO] [stdout] test business::plugin::tests::test_netbox_resource_id ... ok [INFO] [stdout] test business::plugin::tests::test_netbox_resource_request_type ... ok [INFO] [stdout] test business::plugin::tests::test_order_payload_order_type ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_config_loader_default ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_creation ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_default ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_get_nonexistent ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_get_processor ... ok [INFO] [stdout] test business::plugin::tests::test_order_type_registry_register ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_creation ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_transform ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_validate ... ok [INFO] [stdout] test business::processors::tests::test_site_order_processor_validate_failure ... ok [INFO] [stdout] test business::transformation::tests::test_enrich_site_request ... ok [INFO] [stdout] test business::transformation::tests::test_generate_slug ... ok [INFO] [stdout] test business::transformation::tests::test_transform_site_order_basic ... ok [INFO] [stdout] test business::transformation::tests::test_transform_with_custom_status ... ok [INFO] [stdout] test business::validation::tests::test_validate_address_too_long ... ok [INFO] [stdout] test business::validation::tests::test_validate_description_too_long ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_empty ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_invalid_characters ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_too_long ... ok [INFO] [stdout] test api::health::tests::test_health_api_with_client ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_valid ... ok [INFO] [stdout] test business::validation::tests::test_validate_site_order_invalid_name ... ok [INFO] [stdout] test business::validation::tests::test_validate_site_order_success ... ok [INFO] [stdout] test business::validation::tests::test_validate_name_whitespace_only ... ok [INFO] [stdout] test business::validation::tests::test_validate_site_order_with_optional_fields ... ok [INFO] [stdout] test business::workflow::tests::test_order_state_transitions ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_manager_create_order ... ok [INFO] [stdout] test business::workflow::tests::test_terminal_states ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_manager_get_tenant_orders ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_mark_completed ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_mark_failed ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_transition ... ok [INFO] [stdout] test cache::metrics::tests::test_cache_metrics ... ok [INFO] [stdout] test business::workflow::tests::test_workflow_manager_get_orders_by_state ... ok [INFO] [stdout] test cache::metrics::tests::test_cache_metrics_reset ... ok [INFO] [stdout] test cache::store::tests::test_cache_evict_expired ... ok [INFO] [stdout] test cache::store::tests::test_cache_expiration ... ok [INFO] [stdout] test cache::store::tests::test_cache_invalidation ... ok [INFO] [stdout] test cache::store::tests::test_cache_put_and_get ... ok [INFO] [stdout] test cache::store::tests::test_cache_stats ... ok [INFO] [stdout] test cache::strategy::tests::test_cache_config_builder ... ok [INFO] [stdout] test cache::strategy::tests::test_cache_config_default ... ok [INFO] [stdout] test api::health::tests::test_health_check_with_netbox_connected ... ok [INFO] [stdout] test cache::store::tests::test_cache_max_size ... ok [INFO] [stdout] test api::metrics::tests::test_metrics_api_with_client ... ok [INFO] [stdout] test api::metrics::tests::test_get_metrics ... ok [INFO] [stdout] test cache::strategy::tests::test_invalidation_strategy_write_back ... ok [INFO] [stdout] test cache::strategy::tests::test_invalidation_strategy_never ... ok [INFO] [stdout] test config::tests::test_config_defaults ... ok [INFO] [stdout] test cache::strategy::tests::test_invalidation_strategy_write_through ... ok [INFO] [stdout] test config::tests::test_config_from_env ... ok [INFO] [stdout] test domain::order::tests::test_site_from_order ... ok [INFO] [stdout] test config::tests::test_config_invalid_port ... ok [INFO] [stdout] test domain::order::tests::test_site_from_order_with_optional_fields ... ok [INFO] [stdout] test domain::order::tests::test_site_id_is_unique ... ok [INFO] [stdout] test domain::tenant::tests::test_add_and_get_sites ... ok [INFO] [stdout] test domain::tenant::tests::test_get_sites_for_nonexistent_tenant ... ok [INFO] [stdout] test domain::tenant::tests::test_tenant_isolation ... ok [INFO] [stdout] test domain::tenant::tests::test_tenant_store_new ... ok [INFO] [stdout] test business::order_service::tests::test_order_service_full_flow_with_mock ... ok [INFO] [stdout] test business::order_service::tests::test_get_order_status_success ... ok [INFO] [stdout] test business::extensible_order_service::tests::test_extensible_order_service_builder ... ok [INFO] [stdout] test netbox::client::tests::test_client_creation_no_token ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cache_evict_expired ... ok [INFO] [stdout] test business::order_service::tests::test_process_site_order_validation_failure ... ok [INFO] [stdout] test business::order_service::tests::test_order_service_creation ... ok [INFO] [stdout] test api::health::tests::test_health_check_with_netbox_disconnected ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_list_sites ... ok [INFO] [stdout] test netbox::client::tests::test_client_creation_success ... ok [INFO] [stdout] test api::metrics::tests::test_get_metrics_with_failures ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_get_site_hit ... ok [INFO] [stdout] test business::order_service::tests::test_order_service_netbox_failure_handling ... ok [INFO] [stdout] test business::order_service::tests::test_process_site_order_workflow_states ... ok [INFO] [stdout] test netbox::client::tests::test_create_device_success ... ok [INFO] [stdout] test netbox::client::tests::test_delete_site_not_found ... ok [INFO] [stdout] test netbox::client::tests::test_create_site_authentication_error ... ok [INFO] [stdout] test netbox::client::tests::test_list_devices_with_filters ... ok [INFO] [stdout] test netbox::client::tests::test_delete_site_success ... ok [INFO] [stdout] test netbox::client::tests::test_create_site_success ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_400 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_401 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_403 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_404 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_422 ... ok [INFO] [stdout] test netbox::error::tests::test_from_status_code_500 ... ok [INFO] [stdout] test netbox::client::tests::test_list_sites_success ... ok [INFO] [stdout] test netbox::client::tests::test_get_site_not_found ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_client_creation ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_create_site_invalidation ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cached_client_with_config ... ok [INFO] [stdout] test netbox::client::tests::test_get_site_success ... ok [INFO] [stdout] test netbox::client::tests::test_get_device_success ... ok [INFO] [stdout] test netbox::cached_client::tests::test_cache_stats ... ok [INFO] [stdout] test netbox::client::tests::test_update_device_success ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_uses_cache_on_failure ... ok [INFO] [stdout] test netbox::client::tests::test_validation_error ... ok [INFO] [stdout] test netbox::client::tests::test_delete_device_success ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_retries_on_failure ... ok [INFO] [stdout] test api::metrics::tests::test_get_metrics_circuit_breaker_rejections ... ok [INFO] [stdout] test netbox::client::tests::test_list_sites_with_tenant_filter ... ok [INFO] [stdout] test api::health::tests::test_health_check_circuit_breaker_state ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_devices_with_tenant_filter ... ok [INFO] [stdout] test observability::middleware::tests::test_correlation_id_extraction ... ok [INFO] [stdout] test observability::middleware::tests::test_missing_request_id ... ok [INFO] [stdout] test netbox::client::tests::test_update_site_success ... ok [INFO] [stdout] test observability::tracing::tests::test_structured_logging_initialization ... ok [INFO] [stdout] test observability::middleware::tests::test_request_id_extraction ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_get_site_with_tenant_access_control_unauthorized ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_opens_after_threshold ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_reset ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_resets_on_success ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_starts_closed ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_get_site_success ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_create_device_assigns_tenant ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_device_and_retrieve ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_site_and_retrieve ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_sites_with_tenant_filter ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_expires ... ok [INFO] [stdout] test resilience::degradation::tests::test_clear_all ... ok [INFO] [stdout] test resilience::degradation::tests::test_cache_site_list ... ok [INFO] [stdout] test resilience::degradation::tests::test_degrade_site_list_retrieval_use_cache ... ok [INFO] [stdout] test resilience::degradation::tests::test_degrade_site_retrieval_return_empty ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_circuit_breaker_rejections ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_initial_state ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_create_site_assigns_tenant ... ok [INFO] [stdout] test resilience::degradation::tests::test_degrade_site_retrieval_use_cache ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_record_failure ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_retries ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_snapshot ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_success_rate ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_config_calculate_delay ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_config_respects_max_delay ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_reset ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_stops_on_non_retryable_error ... ok [INFO] [stdout] test resilience::metrics::tests::test_metrics_record_success ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_success_on_first_attempt ... ok [INFO] [stdout] test security::auth::tests::test_extract_tenant_id_missing ... ok [INFO] [stdout] test security::auth::tests::test_extract_tenant_id_success ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_device_visible_failure ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_device_visible_success ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_site_visible_failure ... ok [INFO] [stdout] test security::tenant::tests::test_ensure_site_visible_success ... ok [INFO] [stdout] test security::tenant::tests::test_filter_devices_by_tenant ... ok [INFO] [stdout] test resilience::degradation::tests::test_clear_expired ... ok [INFO] [stdout] test security::tenant::tests::test_filter_devices_by_tenant_empty_result ... ok [INFO] [stdout] test security::tenant::tests::test_filter_sites_by_tenant ... ok [INFO] [stdout] test security::tenant::tests::test_filter_sites_by_tenant_empty_result ... ok [INFO] [stdout] test security::tenant::tests::test_filter_sites_by_tenant_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_get_netbox_tenant_id ... ok [INFO] [stdout] test security::tenant::tests::test_get_tenant_sites ... ok [INFO] [stdout] test security::tenant::tests::test_get_tenant_sites_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_has_access_to_netbox_tenant ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_isolation_multiple_tenants ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_default ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_sites_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_get_all_tenant_ids ... ok [INFO] [stdout] test security::tenant::tests::test_get_tenant_devices ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_multiple_tenants ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_register ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_get_nonexistent ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_remove ... ok [INFO] [stdout] test security::tenant::tests::test_verify_device_access_no_tenant_on_device ... ok [INFO] [stdout] test security::tenant::tests::test_verify_device_access_success ... ok [INFO] [stdout] test security::tenant::tests::test_verify_device_access_wrong_tenant ... ok [INFO] [stdout] test security::tenant::tests::test_tenant_mapping_service_update_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_no_mapping ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_no_tenant_on_site ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_success ... ok [INFO] [stdout] test security::tenant::tests::test_verify_site_access_wrong_tenant ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_fails_after_max_attempts ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_delete_site_verifies_access ... ok [INFO] [stdout] test resilience::retry::tests::test_retry_success_after_failures ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_list_sites_filters_out_wrong_tenant ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_failure_in_half_open_opens_again ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_closes_after_success_threshold ... ok [INFO] [stdout] test resilience::circuit_breaker::tests::test_circuit_breaker_transitions_to_half_open ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_get_device_with_tenant_access_control ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_get_site_with_tenant_access_control_success ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_tenant_isolation_between_tenants ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_update_site_verifies_access ... ok [INFO] [stdout] test netbox::tenant_client::tests::test_update_site_unauthorized ... ok [INFO] [stdout] test netbox::resilient_client::tests::test_resilient_client_circuit_breaker_opens ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 202 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.04s [INFO] [stdout] [INFO] [stderr] Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-563c2912f89fef0c) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test test_create_site_missing_header ... ignored [INFO] [stdout] test test_create_site_order_end_to_end ... ignored [INFO] [stdout] test test_create_site_success ... ignored [INFO] [stdout] test test_create_site_validation_error ... ignored [INFO] [stdout] test test_get_sites_empty ... ignored [INFO] [stdout] test test_get_sites_header_mismatch ... ignored [INFO] [stdout] test test_get_sites_missing_header ... ignored [INFO] [stdout] test test_get_sites_success ... ignored [INFO] [stdout] test test_health_endpoint ... ignored [INFO] [stdout] test test_metrics_endpoint ... ignored [INFO] [stdout] test test_order_status_not_found ... ignored [INFO] [stdout] test test_order_status_unauthorized ... ignored [INFO] [stdout] test test_tenant_isolation ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 13 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests netgate [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "8ba6ed27c8da52f5dad74f1c9a5eb9142ee4b843d74701f36b7bbf050e85d0ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8ba6ed27c8da52f5dad74f1c9a5eb9142ee4b843d74701f36b7bbf050e85d0ce", kill_on_drop: false }` [INFO] [stdout] 8ba6ed27c8da52f5dad74f1c9a5eb9142ee4b843d74701f36b7bbf050e85d0ce