[INFO] cloning repository https://github.com/burbokop/dudes_in_space [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/burbokop/dudes_in_space" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fburbokop%2Fdudes_in_space", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fburbokop%2Fdudes_in_space'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5dee675d3bdc6902a661a1a310ffd2c8b9197910 [INFO] checking burbokop/dudes_in_space against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fburbokop%2Fdudes_in_space" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/burbokop/dudes_in_space [INFO] finished tweaking git repo https://github.com/burbokop/dudes_in_space [INFO] tweaked toml for git repo https://github.com/burbokop/dudes_in_space written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/burbokop/dudes_in_space on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/burbokop/dudes_in_space 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded darling_macro v0.21.0 [INFO] [stderr] Downloaded deluxe-core v0.5.0 [INFO] [stderr] Downloaded serde-intermediate-derive v1.6.1 [INFO] [stderr] Downloaded darling_core v0.21.0 [INFO] [stderr] Downloaded deluxe v0.5.0 [INFO] [stderr] Downloaded darling v0.21.0 [INFO] [stderr] Downloaded deluxe-macros v0.5.0 [INFO] [stderr] Downloaded serde-intermediate v1.6.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 518d7f649a4592acbdbafa2c018bdc9ee4d7db173f9b022ea20577a30092ebfc [INFO] running `Command { std: "docker" "start" "-a" "518d7f649a4592acbdbafa2c018bdc9ee4d7db173f9b022ea20577a30092ebfc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "518d7f649a4592acbdbafa2c018bdc9ee4d7db173f9b022ea20577a30092ebfc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "518d7f649a4592acbdbafa2c018bdc9ee4d7db173f9b022ea20577a30092ebfc", kill_on_drop: false }` [INFO] [stdout] 518d7f649a4592acbdbafa2c018bdc9ee4d7db173f9b022ea20577a30092ebfc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 321c7c1f77a46e258f7a0a76f3053ba8b44632e9cb379cc296dcad51b7de352b [INFO] running `Command { std: "docker" "start" "-a" "321c7c1f77a46e258f7a0a76f3053ba8b44632e9cb379cc296dcad51b7de352b", kill_on_drop: false }` [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling if_chain v1.0.2 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling convert_case v0.8.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking ident_case v1.0.1 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking proc-macro2 v1.0.95 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling serde-intermediate-derive v1.6.1 [INFO] [stderr] Checking darling_core v0.21.0 [INFO] [stderr] Checking deluxe-core v0.5.0 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling pest v2.8.1 [INFO] [stderr] Compiling darling_macro v0.21.0 [INFO] [stderr] Compiling deluxe-macros v0.5.0 [INFO] [stderr] Compiling darling v0.21.0 [INFO] [stderr] Compiling pest_meta v2.8.1 [INFO] [stderr] Compiling deluxe v0.5.0 [INFO] [stderr] Checking dyn_serde_macro v0.0.1 (/opt/rustwide/workdir/dyn_serde_macro) [INFO] [stdout] warning: unused import: `darling::util::PathList` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use darling::util::PathList; [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 imports: `FromDeriveInput` and `FromVariant` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use darling::{FromDeriveInput, FromField, FromMeta, FromVariant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::ext::IdentExt` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use syn::ext::IdentExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::punctuated::Punctuated` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use syn::punctuated::Punctuated; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::token::Trait` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use syn::token::Trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Attribute`, `ExprPath`, `PatIdent`, `TypeGroup`, and `parse::Parse` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | self, Attribute, Data, DeriveInput, Expr, ExprPath, Fields, GenericArgument, PatIdent, Path, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 16 | PathArguments, Type, TypeGroup, TypePath, Variant, parse::Parse, parse_macro_input, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExprGroup`, `LitInt`, and `Token` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | use syn::{ExprGroup, Ident, LitInt, Token}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ToTokens` and `format_ident` [INFO] [stdout] --> dyn_serde_macro/src/dyn_serde_trait.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use quote::{ToTokens, format_ident, quote}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `parse::Parse` and `parse_macro_input` [INFO] [stdout] --> dyn_serde_macro/src/dyn_serde_trait.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use syn::{self, parse::Parse, parse_macro_input}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `darling::util::PathList` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use darling::util::PathList; [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 imports: `FromDeriveInput` and `FromVariant` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use darling::{FromDeriveInput, FromField, FromMeta, FromVariant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::ext::IdentExt` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use syn::ext::IdentExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::punctuated::Punctuated` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use syn::punctuated::Punctuated; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::token::Trait` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use syn::token::Trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Attribute`, `ExprPath`, `PatIdent`, `TypeGroup`, and `parse::Parse` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | self, Attribute, Data, DeriveInput, Expr, ExprPath, Fields, GenericArgument, PatIdent, Path, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 16 | PathArguments, Type, TypeGroup, TypePath, Variant, parse::Parse, parse_macro_input, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExprGroup`, `LitInt`, and `Token` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | use syn::{ExprGroup, Ident, LitInt, Token}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ToTokens` and `format_ident` [INFO] [stdout] --> dyn_serde_macro/src/dyn_serde_trait.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use quote::{ToTokens, format_ident, quote}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `parse::Parse` and `parse_macro_input` [INFO] [stdout] --> dyn_serde_macro/src/dyn_serde_trait.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use syn::{self, parse::Parse, parse_macro_input}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pest_generator v2.8.1 [INFO] [stdout] warning: unused import: `darling::util::PathList` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use darling::util::PathList; [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 imports: `FromDeriveInput` and `FromVariant` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use darling::{FromDeriveInput, FromField, FromMeta, FromVariant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::format` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::ext::IdentExt` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use syn::ext::IdentExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::punctuated::Punctuated` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use syn::punctuated::Punctuated; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `syn::token::Trait` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use syn::token::Trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Attribute`, `ExprPath`, `PatIdent`, `TypeGroup`, and `parse::Parse` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | self, Attribute, Data, DeriveInput, Expr, ExprPath, Fields, GenericArgument, PatIdent, Path, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 16 | PathArguments, Type, TypeGroup, TypePath, Variant, parse::Parse, parse_macro_input, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ExprGroup`, `LitInt`, and `Token` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | use syn::{ExprGroup, Ident, LitInt, Token}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ToTokens` and `format_ident` [INFO] [stdout] --> dyn_serde_macro/src/dyn_serde_trait.rs:2:13 [INFO] [stdout] | [INFO] [stdout] 2 | use quote::{ToTokens, format_ident, quote}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `parse::Parse` and `parse_macro_input` [INFO] [stdout] --> dyn_serde_macro/src/dyn_serde_trait.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use syn::{self, parse::Parse, parse_macro_input}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToTokens` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use quote::{ToTokens, format_ident, quote}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_root` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | let expected_root: String = format!("struct {}", ident); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_root` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_key` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | let expected_key: String = fields [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field_assignments` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | let field_assignments: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_assignments` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variant_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | let variant_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variant_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `locale_variable_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | let locale_variable_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale_variable_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field_names` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | let field_names: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_names` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_decls` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | let var_decls: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_decls` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_arms` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let key_arms: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value_arms` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | let value_arms: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check_missings` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 296 | let check_missings: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_check_missings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToTokens` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use quote::{ToTokens, format_ident, quote}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_root` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | let expected_root: String = format!("struct {}", ident); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_root` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_key` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | let expected_key: String = fields [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field_assignments` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | let field_assignments: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_assignments` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variant_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | let variant_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variant_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `locale_variable_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | let locale_variable_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale_variable_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field_names` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | let field_names: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_names` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_decls` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | let var_decls: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_decls` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_arms` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let key_arms: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value_arms` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | let value_arms: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check_missings` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 296 | let check_missings: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_check_missings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:329:5 [INFO] [stdout] | [INFO] [stdout] 329 | name: String, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `locale_variable_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:454:9 [INFO] [stdout] | [INFO] [stdout] 454 | let locale_variable_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale_variable_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:329:5 [INFO] [stdout] | [INFO] [stdout] 329 | name: String, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `locale_variable_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:454:9 [INFO] [stdout] | [INFO] [stdout] 454 | let locale_variable_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale_variable_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `struct_ident` is never read [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:594:9 [INFO] [stdout] | [INFO] [stdout] 591 | struct VariantRecipe { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 594 | struct_ident: Ident, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `struct_ident` is never read [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:735:9 [INFO] [stdout] | [INFO] [stdout] 732 | struct VariantRecipe { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 735 | struct_ident: Ident, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ToTokens` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use quote::{ToTokens, format_ident, quote}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `struct_ident` is never read [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:594:9 [INFO] [stdout] | [INFO] [stdout] 591 | struct VariantRecipe { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 594 | struct_ident: Ident, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `struct_ident` is never read [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:735:9 [INFO] [stdout] | [INFO] [stdout] 732 | struct VariantRecipe { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 735 | struct_ident: Ident, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_root` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:205:9 [INFO] [stdout] | [INFO] [stdout] 205 | let expected_root: String = format!("struct {}", ident); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_root` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_key` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | let expected_key: String = fields [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field_assignments` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | let field_assignments: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_assignments` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variant_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | let variant_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variant_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `locale_variable_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:241:9 [INFO] [stdout] | [INFO] [stdout] 241 | let locale_variable_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale_variable_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `field_names` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | let field_names: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_names` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_decls` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:263:9 [INFO] [stdout] | [INFO] [stdout] 263 | let var_decls: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_decls` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_arms` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let key_arms: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value_arms` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | let value_arms: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_value_arms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `check_missings` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 296 | let check_missings: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_check_missings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:329:5 [INFO] [stdout] | [INFO] [stdout] 329 | name: String, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `locale_variable_idents` [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:454:9 [INFO] [stdout] | [INFO] [stdout] 454 | let locale_variable_idents: Vec<_> = fields [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_locale_variable_idents` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `struct_ident` is never read [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:594:9 [INFO] [stdout] | [INFO] [stdout] 591 | struct VariantRecipe { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 594 | struct_ident: Ident, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `struct_ident` is never read [INFO] [stdout] --> dyn_serde_macro/src/deserialize_seed.rs:735:9 [INFO] [stdout] | [INFO] [stdout] 732 | struct VariantRecipe { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 735 | struct_ident: Ident, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pest_derive v2.8.1 [INFO] [stderr] Checking serde-intermediate v1.6.1 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking dyn_serde v0.0.1 (/opt/rustwide/workdir/dyn_serde) [INFO] [stdout] warning: unused import: `Unexpected` [INFO] [stdout] --> dyn_serde/src/lib.rs:1:57 [INFO] [stdout] | [INFO] [stdout] 1 | use serde::de::{DeserializeSeed, Error as _, SeqAccess, Unexpected, Visitor}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> dyn_serde/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::__private::de::missing_field` [INFO] [stdout] --> dyn_serde/src/lib.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | use serde::__private::de::missing_field; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Foo_Discriminant` should have an upper camel case name [INFO] [stdout] --> dyn_serde/src/lib.rs:246:18 [INFO] [stdout] | [INFO] [stdout] 246 | enum Foo_Discriminant { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FooDiscriminant` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Foo_Bar` should have an upper camel case name [INFO] [stdout] --> dyn_serde/src/lib.rs:251:20 [INFO] [stdout] | [INFO] [stdout] 251 | struct Foo_Bar { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `FooBar` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Foo_Baz` should have an upper camel case name [INFO] [stdout] --> dyn_serde/src/lib.rs:256:20 [INFO] [stdout] | [INFO] [stdout] 256 | struct Foo_Baz { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `FooBaz` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Unexpected` [INFO] [stdout] --> dyn_serde/src/lib.rs:1:57 [INFO] [stdout] | [INFO] [stdout] 1 | use serde::de::{DeserializeSeed, Error as _, SeqAccess, Unexpected, Visitor}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> dyn_serde/src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::__private::de::missing_field` [INFO] [stdout] --> dyn_serde/src/lib.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 230 | use serde::__private::de::missing_field; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Foo_Discriminant` should have an upper camel case name [INFO] [stdout] --> dyn_serde/src/lib.rs:246:18 [INFO] [stdout] | [INFO] [stdout] 246 | enum Foo_Discriminant { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FooDiscriminant` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Foo_Bar` should have an upper camel case name [INFO] [stdout] --> dyn_serde/src/lib.rs:251:20 [INFO] [stdout] | [INFO] [stdout] 251 | struct Foo_Bar { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `FooBar` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Foo_Baz` should have an upper camel case name [INFO] [stdout] --> dyn_serde/src/lib.rs:256:20 [INFO] [stdout] | [INFO] [stdout] 256 | struct Foo_Baz { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `FooBaz` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> dyn_serde/src/lib.rs:286:33 [INFO] [stdout] | [INFO] [stdout] 286 | ... let v = variant.struct_variant(&[], V {})?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variant` [INFO] [stdout] --> dyn_serde/src/lib.rs:291:49 [INFO] [stdout] | [INFO] [stdout] 291 | (Foo_Discriminant::Baz, variant) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variant` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `formatter` [INFO] [stdout] --> dyn_serde/src/lib.rs:281:53 [INFO] [stdout] | [INFO] [stdout] 281 | ... fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_formatter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Foo` is never used [INFO] [stdout] --> dyn_serde/src/lib.rs:234:14 [INFO] [stdout] | [INFO] [stdout] 234 | pub enum Foo { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> dyn_serde/src/lib.rs:286:33 [INFO] [stdout] | [INFO] [stdout] 286 | ... let v = variant.struct_variant(&[], V {})?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `variant` [INFO] [stdout] --> dyn_serde/src/lib.rs:291:49 [INFO] [stdout] | [INFO] [stdout] 291 | (Foo_Discriminant::Baz, variant) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_variant` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `formatter` [INFO] [stdout] --> dyn_serde/src/lib.rs:281:53 [INFO] [stdout] | [INFO] [stdout] 281 | ... fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_formatter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Foo` is never used [INFO] [stdout] --> dyn_serde/src/lib.rs:234:14 [INFO] [stdout] | [INFO] [stdout] 234 | pub enum Foo { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking dudes_in_space_api v0.0.1 (/opt/rustwide/workdir/api) [INFO] [stdout] xxx_field: vessels -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(848..852) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(853..857) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "vessel_seed", span: #0 bytes(858..869) }) }) | None [INFO] [stdout] xxx_field: nebulae -> None | None [INFO] [stdout] xxx_field: vessels -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(848..852) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(853..857) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "vessel_seed", span: #0 bytes(858..869) }) }) | None [INFO] [stdout] xxx_field: nebulae -> None | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: [INFO] [stdout] environment :: EnvironmentSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Environment; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["vessels", "nebulae"]; enum Field [INFO] [stdout] { Vessels, Nebulae } impl < '__de > serde :: de :: Deserialize < '__de [INFO] [stdout] > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`vessels`, `nebulae`") } fn visit_str [INFO] [stdout] < E > (self, value : & str) -> Result < Field, E > where E : [INFO] [stdout] serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "vessels" => Ok(Field :: Vessels), "nebulae" => [INFO] [stdout] Ok(Field :: Nebulae), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: environment :: EnvironmentSeed < 'v > } impl < 'v, [INFO] [stdout] '__de > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Environment; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Environment") } [INFO] [stdout] fn visit_map < V > (self, mut map : V) -> Result < Self :: Value, [INFO] [stdout] V :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut vessels : Option < Vec < Vessel > > = None; let mut [INFO] [stdout] nebulae : Option < Vec < Nebula > > = None; while let [INFO] [stdout] Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Vessels => [INFO] [stdout] { [INFO] [stdout] if vessels.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("vessels")); [INFO] [stdout] } vessels = [INFO] [stdout] Some(map.next_value_seed(self.seed.vessel_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: Nebulae => [INFO] [stdout] { [INFO] [stdout] if nebulae.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("nebulae")); [INFO] [stdout] } nebulae = Some(map.next_value() ?); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let vessels : Vec < Vessel > = [INFO] [stdout] vessels.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("vessels")) ? ; let nebulae : Vec < Nebula > = [INFO] [stdout] nebulae.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("nebulae")) ? ; [INFO] [stdout] Ok(Environment { vessels, nebulae, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Environment", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: [INFO] [stdout] environment :: EnvironmentSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Environment; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["vessels", "nebulae"]; enum Field [INFO] [stdout] { Vessels, Nebulae } impl < '__de > serde :: de :: Deserialize < '__de [INFO] [stdout] > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`vessels`, `nebulae`") } fn visit_str [INFO] [stdout] < E > (self, value : & str) -> Result < Field, E > where E : [INFO] [stdout] serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "vessels" => Ok(Field :: Vessels), "nebulae" => [INFO] [stdout] Ok(Field :: Nebulae), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: environment :: EnvironmentSeed < 'v > } impl < 'v, [INFO] [stdout] '__de > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Environment; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Environment") } [INFO] [stdout] fn visit_map < V > (self, mut map : V) -> Result < Self :: Value, [INFO] [stdout] V :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut vessels : Option < Vec < Vessel > > = None; let mut [INFO] [stdout] nebulae : Option < Vec < Nebula > > = None; while let [INFO] [stdout] Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Vessels => [INFO] [stdout] { [INFO] [stdout] if vessels.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("vessels")); [INFO] [stdout] } vessels = [INFO] [stdout] Some(map.next_value_seed(self.seed.vessel_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: Nebulae => [INFO] [stdout] { [INFO] [stdout] if nebulae.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("nebulae")); [INFO] [stdout] } nebulae = Some(map.next_value() ?); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let vessels : Vec < Vessel > = [INFO] [stdout] vessels.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("vessels")) ? ; let nebulae : Vec < Nebula > = [INFO] [stdout] nebulae.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("nebulae")) ? ; [INFO] [stdout] Ok(Environment { vessels, nebulae, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Environment", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: content -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(16267..16271) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(16272..16276) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "content_seed", span: #0 bytes(16277..16289) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: module :: [INFO] [stdout] ModuleStorageSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = ModuleStorage; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["content"]; enum Field { Content } impl < [INFO] [stdout] '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result { formatter.write_str("`content`") } [INFO] [stdout] fn visit_str < E > (self, value : & str) -> Result < Field, [INFO] [stdout] E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "content" => Ok(Field :: Content), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: module :: ModuleStorageSeed < 'v > } impl < 'v, [INFO] [stdout] '__de > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = ModuleStorage; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct ModuleStorage") } fn visit_map < V > [INFO] [stdout] (self, mut map : V) -> Result < Self :: Value, V :: Error > where [INFO] [stdout] V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut content : Option < Vec < Box < dyn Module > > > = [INFO] [stdout] None; while let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Content => [INFO] [stdout] { [INFO] [stdout] if content.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("content")); [INFO] [stdout] } content = [INFO] [stdout] Some(map.next_value_seed(self.seed.content_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let content : Vec < Box < dyn Module > > = [INFO] [stdout] content.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("content")) ? ; Ok(ModuleStorage { content, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("ModuleStorage", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: content -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(16267..16271) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(16272..16276) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "content_seed", span: #0 bytes(16277..16289) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: module :: [INFO] [stdout] ModuleStorageSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = ModuleStorage; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["content"]; enum Field { Content } impl < [INFO] [stdout] '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result { formatter.write_str("`content`") } [INFO] [stdout] fn visit_str < E > (self, value : & str) -> Result < Field, [INFO] [stdout] E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "content" => Ok(Field :: Content), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: module :: ModuleStorageSeed < 'v > } impl < 'v, [INFO] [stdout] '__de > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = ModuleStorage; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct ModuleStorage") } fn visit_map < V > [INFO] [stdout] (self, mut map : V) -> Result < Self :: Value, V :: Error > where [INFO] [stdout] V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut content : Option < Vec < Box < dyn Module > > > = [INFO] [stdout] None; while let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Content => [INFO] [stdout] { [INFO] [stdout] if content.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("content")); [INFO] [stdout] } content = [INFO] [stdout] Some(map.next_value_seed(self.seed.content_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let content : Vec < Box < dyn Module > > = [INFO] [stdout] content.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("content")) ? ; Ok(ModuleStorage { content, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("ModuleStorage", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: name -> None | None [INFO] [stdout] xxx_field: age -> None | None [INFO] [stdout] xxx_field: gender -> None | None [INFO] [stdout] xxx_field: passions -> None | None [INFO] [stdout] xxx_field: morale -> None | None [INFO] [stdout] xxx_field: boldness -> None | None [INFO] [stdout] xxx_field: awareness -> None | None [INFO] [stdout] xxx_field: objective -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(27572..27576) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(27577..27581) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "objective_seed", span: #0 bytes(27582..27596) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: person :: [INFO] [stdout] PersonSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Person; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["id", "name", "age", "gender", "passions", "morale", "boldness", [INFO] [stdout] "awareness", "objective"]; enum Field [INFO] [stdout] { [INFO] [stdout] Id, Name, Age, Gender, Passions, Morale, Boldness, Awareness, [INFO] [stdout] Objective [INFO] [stdout] } impl < '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`id`, `name`, `age`, `gender`, `passions`, `morale`, `boldness`, `awareness`, `objective`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "name" => Ok(Field :: Name), "age" [INFO] [stdout] => Ok(Field :: Age), "gender" => Ok(Field :: Gender), [INFO] [stdout] "passions" => Ok(Field :: Passions), "morale" => [INFO] [stdout] Ok(Field :: Morale), "boldness" => Ok(Field :: Boldness), [INFO] [stdout] "awareness" => Ok(Field :: Awareness), "objective" => [INFO] [stdout] Ok(Field :: Objective), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: person :: PersonSeed < 'v > } impl < 'v, '__de > [INFO] [stdout] serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Person; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Person") } fn [INFO] [stdout] visit_map < V > (self, mut map : V) -> Result < Self :: Value, V [INFO] [stdout] :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < PersonId > = None; let mut name : Option [INFO] [stdout] < String > = None; let mut age : Option < u8 > = None; let mut [INFO] [stdout] gender : Option < Gender > = None; let mut passions : Option < [INFO] [stdout] Vec < Passion > > = None; let mut morale : Option < Morale > = [INFO] [stdout] None; let mut boldness : Option < Boldness > = None; let mut [INFO] [stdout] awareness : Option < Awareness > = None; let mut objective : [INFO] [stdout] Option < Option < Box < dyn DynObjective > > > = None; while [INFO] [stdout] let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Name => [INFO] [stdout] { [INFO] [stdout] if name.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("name")); [INFO] [stdout] } name = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Age => [INFO] [stdout] { [INFO] [stdout] if age.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("age")); [INFO] [stdout] } age = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Gender => [INFO] [stdout] { [INFO] [stdout] if gender.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("gender")); [INFO] [stdout] } gender = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Passions => [INFO] [stdout] { [INFO] [stdout] if passions.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("passions")); [INFO] [stdout] } passions = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Morale => [INFO] [stdout] { [INFO] [stdout] if morale.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("morale")); [INFO] [stdout] } morale = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Boldness => [INFO] [stdout] { [INFO] [stdout] if boldness.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("boldness")); [INFO] [stdout] } boldness = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Awareness => [INFO] [stdout] { [INFO] [stdout] if awareness.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("awareness")); [INFO] [stdout] } awareness = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Objective => [INFO] [stdout] { [INFO] [stdout] if objective.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("objective")); [INFO] [stdout] } objective = [INFO] [stdout] Some(map.next_value_seed(self.seed.objective_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : PersonId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let name : String = [INFO] [stdout] name.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("name")) ? ; let age : u8 = [INFO] [stdout] age.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("age")) ? ; let gender : Gender = [INFO] [stdout] gender.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("gender")) ? ; let passions : Vec < Passion > = [INFO] [stdout] passions.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("passions")) ? ; let morale : Morale = [INFO] [stdout] morale.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("morale")) ? ; let boldness : Boldness = [INFO] [stdout] boldness.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("boldness")) ? ; let awareness : Awareness = [INFO] [stdout] awareness.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("awareness")) ? ; let objective : Option < Box < [INFO] [stdout] dyn DynObjective > > = [INFO] [stdout] objective.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("objective")) ? ; [INFO] [stdout] Ok(Person [INFO] [stdout] { [INFO] [stdout] id, name, age, gender, passions, morale, boldness, [INFO] [stdout] awareness, objective, [INFO] [stdout] }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Person", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: input -> None | None [INFO] [stdout] xxx_field: output -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(37342..37346) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(37347..37351) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "module_factory_seed", span: #0 bytes(37352..37371) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: recipe :: [INFO] [stdout] AssemblyRecipeSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblyRecipe; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["input", "output"]; enum Field [INFO] [stdout] { Input, Output } impl < '__de > serde :: de :: Deserialize < '__de > [INFO] [stdout] for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`input`, `output`") } fn visit_str < [INFO] [stdout] E > (self, value : & str) -> Result < Field, E > where E : [INFO] [stdout] serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "input" => Ok(Field :: Input), "output" => [INFO] [stdout] Ok(Field :: Output), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: recipe :: AssemblyRecipeSeed < 'v > } impl < 'v, [INFO] [stdout] '__de > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblyRecipe; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct AssemblyRecipe") } fn visit_map < V [INFO] [stdout] > (self, mut map : V) -> Result < Self :: Value, V :: Error > [INFO] [stdout] where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut input : Option < InputRecipe > = None; let mut output [INFO] [stdout] : Option < Rc < dyn ModuleFactory > > = None; while let [INFO] [stdout] Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Input => [INFO] [stdout] { [INFO] [stdout] if input.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("input")); [INFO] [stdout] } input = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Output => [INFO] [stdout] { [INFO] [stdout] if output.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("output")); [INFO] [stdout] } output = [INFO] [stdout] Some(map.next_value_seed(self.seed.module_factory_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let input : InputRecipe = [INFO] [stdout] input.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("input")) ? ; let output : Rc < dyn [INFO] [stdout] ModuleFactory > = [INFO] [stdout] output.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("output")) ? ; [INFO] [stdout] Ok(AssemblyRecipe { input, output, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("AssemblyRecipe", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: name -> None | None [INFO] [stdout] xxx_field: age -> None | None [INFO] [stdout] xxx_field: gender -> None | None [INFO] [stdout] xxx_field: passions -> None | None [INFO] [stdout] xxx_field: morale -> None | None [INFO] [stdout] xxx_field: boldness -> None | None [INFO] [stdout] xxx_field: awareness -> None | None [INFO] [stdout] xxx_field: objective -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(27572..27576) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(27577..27581) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "objective_seed", span: #0 bytes(27582..27596) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: person :: [INFO] [stdout] PersonSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Person; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["id", "name", "age", "gender", "passions", "morale", "boldness", [INFO] [stdout] "awareness", "objective"]; enum Field [INFO] [stdout] { [INFO] [stdout] Id, Name, Age, Gender, Passions, Morale, Boldness, Awareness, [INFO] [stdout] Objective [INFO] [stdout] } impl < '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`id`, `name`, `age`, `gender`, `passions`, `morale`, `boldness`, `awareness`, `objective`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "name" => Ok(Field :: Name), "age" [INFO] [stdout] => Ok(Field :: Age), "gender" => Ok(Field :: Gender), [INFO] [stdout] "passions" => Ok(Field :: Passions), "morale" => [INFO] [stdout] Ok(Field :: Morale), "boldness" => Ok(Field :: Boldness), [INFO] [stdout] "awareness" => Ok(Field :: Awareness), "objective" => [INFO] [stdout] Ok(Field :: Objective), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: person :: PersonSeed < 'v > } impl < 'v, '__de > [INFO] [stdout] serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Person; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Person") } fn [INFO] [stdout] visit_map < V > (self, mut map : V) -> Result < Self :: Value, V [INFO] [stdout] :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < PersonId > = None; let mut name : Option [INFO] [stdout] < String > = None; let mut age : Option < u8 > = None; let mut [INFO] [stdout] gender : Option < Gender > = None; let mut passions : Option < [INFO] [stdout] Vec < Passion > > = None; let mut morale : Option < Morale > = [INFO] [stdout] None; let mut boldness : Option < Boldness > = None; let mut [INFO] [stdout] awareness : Option < Awareness > = None; let mut objective : [INFO] [stdout] Option < Option < Box < dyn DynObjective > > > = None; while [INFO] [stdout] let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Name => [INFO] [stdout] { [INFO] [stdout] if name.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("name")); [INFO] [stdout] } name = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Age => [INFO] [stdout] { [INFO] [stdout] if age.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("age")); [INFO] [stdout] } age = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Gender => [INFO] [stdout] { [INFO] [stdout] if gender.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("gender")); [INFO] [stdout] } gender = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Passions => [INFO] [stdout] { [INFO] [stdout] if passions.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("passions")); [INFO] [stdout] } passions = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Morale => [INFO] [stdout] { [INFO] [stdout] if morale.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("morale")); [INFO] [stdout] } morale = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Boldness => [INFO] [stdout] { [INFO] [stdout] if boldness.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("boldness")); [INFO] [stdout] } boldness = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Awareness => [INFO] [stdout] { [INFO] [stdout] if awareness.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("awareness")); [INFO] [stdout] } awareness = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Objective => [INFO] [stdout] { [INFO] [stdout] if objective.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("objective")); [INFO] [stdout] } objective = [INFO] [stdout] Some(map.next_value_seed(self.seed.objective_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : PersonId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let name : String = [INFO] [stdout] name.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("name")) ? ; let age : u8 = [INFO] [stdout] age.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("age")) ? ; let gender : Gender = [INFO] [stdout] gender.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("gender")) ? ; let passions : Vec < Passion > = [INFO] [stdout] passions.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("passions")) ? ; let morale : Morale = [INFO] [stdout] morale.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("morale")) ? ; let boldness : Boldness = [INFO] [stdout] boldness.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("boldness")) ? ; let awareness : Awareness = [INFO] [stdout] awareness.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("awareness")) ? ; let objective : Option < Box < [INFO] [stdout] dyn DynObjective > > = [INFO] [stdout] objective.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("objective")) ? ; [INFO] [stdout] Ok(Person [INFO] [stdout] { [INFO] [stdout] id, name, age, gender, passions, morale, boldness, [INFO] [stdout] awareness, objective, [INFO] [stdout] }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Person", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: input -> None | None [INFO] [stdout] xxx_field: output -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(37342..37346) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(37347..37351) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "module_factory_seed", span: #0 bytes(37352..37371) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: recipe :: [INFO] [stdout] AssemblyRecipeSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblyRecipe; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["input", "output"]; enum Field [INFO] [stdout] { Input, Output } impl < '__de > serde :: de :: Deserialize < '__de > [INFO] [stdout] for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`input`, `output`") } fn visit_str < [INFO] [stdout] E > (self, value : & str) -> Result < Field, E > where E : [INFO] [stdout] serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "input" => Ok(Field :: Input), "output" => [INFO] [stdout] Ok(Field :: Output), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: recipe :: AssemblyRecipeSeed < 'v > } impl < 'v, [INFO] [stdout] '__de > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblyRecipe; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct AssemblyRecipe") } fn visit_map < V [INFO] [stdout] > (self, mut map : V) -> Result < Self :: Value, V :: Error > [INFO] [stdout] where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut input : Option < InputRecipe > = None; let mut output [INFO] [stdout] : Option < Rc < dyn ModuleFactory > > = None; while let [INFO] [stdout] Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Input => [INFO] [stdout] { [INFO] [stdout] if input.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("input")); [INFO] [stdout] } input = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Output => [INFO] [stdout] { [INFO] [stdout] if output.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("output")); [INFO] [stdout] } output = [INFO] [stdout] Some(map.next_value_seed(self.seed.module_factory_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let input : InputRecipe = [INFO] [stdout] input.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("input")) ? ; let output : Rc < dyn [INFO] [stdout] ModuleFactory > = [INFO] [stdout] output.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("output")) ? ; [INFO] [stdout] Ok(AssemblyRecipe { input, output, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("AssemblyRecipe", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: owner -> None | None [INFO] [stdout] xxx_field: pos -> None | None [INFO] [stdout] xxx_field: modules -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(108332..108336) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(108337..108341) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "module_seq_seed", span: #0 bytes(108342..108357) }) }) | None [INFO] [stdout] xxx_field: requests -> None | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: vessel :: [INFO] [stdout] VesselSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Vessel; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["id", "owner", "pos", "modules"]; enum [INFO] [stdout] Field { Id, Owner, Pos, Modules } impl < '__de > serde :: de :: [INFO] [stdout] Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`id`, `owner`, `pos`, `modules`") } [INFO] [stdout] fn visit_str < E > (self, value : & str) -> Result < Field, [INFO] [stdout] E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "owner" => Ok(Field :: Owner), [INFO] [stdout] "pos" => Ok(Field :: Pos), "modules" => [INFO] [stdout] Ok(Field :: Modules), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: vessel :: VesselSeed < 'v > } impl < 'v, '__de > [INFO] [stdout] serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Vessel; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Vessel") } fn [INFO] [stdout] visit_map < V > (self, mut map : V) -> Result < Self :: Value, V [INFO] [stdout] :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < VesselId > = None; let mut owner : [INFO] [stdout] Option < PersonId > = None; let mut pos : Option < Point < [INFO] [stdout] Float > > = None; let mut modules : Option < Vec < RefCell < [INFO] [stdout] Box < dyn Module > > > > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Owner => [INFO] [stdout] { [INFO] [stdout] if owner.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("owner")); [INFO] [stdout] } owner = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Pos => [INFO] [stdout] { [INFO] [stdout] if pos.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("pos")); [INFO] [stdout] } pos = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Modules => [INFO] [stdout] { [INFO] [stdout] if modules.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("modules")); [INFO] [stdout] } modules = [INFO] [stdout] Some(map.next_value_seed(self.seed.module_seq_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : VesselId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let owner : PersonId = [INFO] [stdout] owner.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("owner")) ? ; let pos : Point < Float > = [INFO] [stdout] pos.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("pos")) ? ; let modules : Vec < RefCell < Box < [INFO] [stdout] dyn Module > > > = [INFO] [stdout] modules.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("modules")) ? ; [INFO] [stdout] Ok(Vessel [INFO] [stdout] { id, owner, pos, modules, requests : Default :: default(), }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Vessel", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: vessel -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(114642..114646) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(114647..114651) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "vessel_seed", span: #0 bytes(114652..114663) }) }) | None [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: owner -> None | None [INFO] [stdout] xxx_field: pos -> None | None [INFO] [stdout] xxx_field: modules -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(108332..108336) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(108337..108341) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "module_seq_seed", span: #0 bytes(108342..108357) }) }) | None [INFO] [stdout] xxx_field: requests -> None | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: vessel :: [INFO] [stdout] DockingClampSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = DockingClamp; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["vessel"]; enum Field { Vessel } impl < [INFO] [stdout] '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result { formatter.write_str("`vessel`") } [INFO] [stdout] fn visit_str < E > (self, value : & str) -> Result < Field, [INFO] [stdout] E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "vessel" => Ok(Field :: Vessel), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: vessel :: DockingClampSeed < 'v > } impl < 'v, '__de [INFO] [stdout] > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = DockingClamp; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct DockingClamp") } fn visit_map < V > [INFO] [stdout] (self, mut map : V) -> Result < Self :: Value, V :: Error > where [INFO] [stdout] V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut vessel : Option < Option < Vessel > > = None; while [INFO] [stdout] let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Vessel => [INFO] [stdout] { [INFO] [stdout] if vessel.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("vessel")); [INFO] [stdout] } vessel = [INFO] [stdout] Some(map.next_value_seed(self.seed.vessel_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let vessel : Option < Vessel > = [INFO] [stdout] vessel.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("vessel")) ? ; Ok(DockingClamp { vessel, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("DockingClamp", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: vessel :: [INFO] [stdout] VesselSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Vessel; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["id", "owner", "pos", "modules"]; enum [INFO] [stdout] Field { Id, Owner, Pos, Modules } impl < '__de > serde :: de :: [INFO] [stdout] Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`id`, `owner`, `pos`, `modules`") } [INFO] [stdout] fn visit_str < E > (self, value : & str) -> Result < Field, [INFO] [stdout] E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "owner" => Ok(Field :: Owner), [INFO] [stdout] "pos" => Ok(Field :: Pos), "modules" => [INFO] [stdout] Ok(Field :: Modules), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: vessel :: VesselSeed < 'v > } impl < 'v, '__de > [INFO] [stdout] serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = Vessel; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Vessel") } fn [INFO] [stdout] visit_map < V > (self, mut map : V) -> Result < Self :: Value, V [INFO] [stdout] :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < VesselId > = None; let mut owner : [INFO] [stdout] Option < PersonId > = None; let mut pos : Option < Point < [INFO] [stdout] Float > > = None; let mut modules : Option < Vec < RefCell < [INFO] [stdout] Box < dyn Module > > > > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Owner => [INFO] [stdout] { [INFO] [stdout] if owner.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("owner")); [INFO] [stdout] } owner = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Pos => [INFO] [stdout] { [INFO] [stdout] if pos.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("pos")); [INFO] [stdout] } pos = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Modules => [INFO] [stdout] { [INFO] [stdout] if modules.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("modules")); [INFO] [stdout] } modules = [INFO] [stdout] Some(map.next_value_seed(self.seed.module_seq_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : VesselId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let owner : PersonId = [INFO] [stdout] owner.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("owner")) ? ; let pos : Point < Float > = [INFO] [stdout] pos.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("pos")) ? ; let modules : Vec < RefCell < Box < [INFO] [stdout] dyn Module > > > = [INFO] [stdout] modules.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("modules")) ? ; [INFO] [stdout] Ok(Vessel [INFO] [stdout] { id, owner, pos, modules, requests : Default :: default(), }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Vessel", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: vessel -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(114642..114646) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(114647..114651) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "vessel_seed", span: #0 bytes(114652..114663) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: vessel :: [INFO] [stdout] DockingClampSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = DockingClamp; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["vessel"]; enum Field { Vessel } impl < [INFO] [stdout] '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result { formatter.write_str("`vessel`") } [INFO] [stdout] fn visit_str < E > (self, value : & str) -> Result < Field, [INFO] [stdout] E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "vessel" => Ok(Field :: Vessel), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { seed : crate :: vessel :: DockingClampSeed < 'v > } impl < 'v, '__de [INFO] [stdout] > serde :: de :: Visitor < '__de > for Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = DockingClamp; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct DockingClamp") } fn visit_map < V > [INFO] [stdout] (self, mut map : V) -> Result < Self :: Value, V :: Error > where [INFO] [stdout] V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut vessel : Option < Option < Vessel > > = None; while [INFO] [stdout] let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Vessel => [INFO] [stdout] { [INFO] [stdout] if vessel.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("vessel")); [INFO] [stdout] } vessel = [INFO] [stdout] Some(map.next_value_seed(self.seed.vessel_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let vessel : Option < Vessel > = [INFO] [stdout] vessel.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("vessel")) ? ; Ok(DockingClamp { vessel, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("DockingClamp", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] warning: unused imports: `DeserializeSeed`, `SeqAccess`, and `Visitor` [INFO] [stdout] --> api/src/environment/environment.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::de::{DeserializeSeed, MapAccess, SeqAccess, Visitor}; [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 imports: `DeserializeSeed`, `SeqAccess`, and `Visitor` [INFO] [stdout] --> api/src/environment/environment.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::de::{DeserializeSeed, MapAccess, SeqAccess, Visitor}; [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 imports: `Deserialize`, `Serializer`, and `de` [INFO] [stdout] --> api/src/environment/environment.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Deserializer, Serialize, Serializer, de}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> api/src/environment/environment.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Formatter` [INFO] [stdout] --> api/src/environment/environment.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::Formatter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize`, `Serializer`, and `de` [INFO] [stdout] --> api/src/environment/environment.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Deserializer, Serialize, Serializer, de}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> api/src/environment/environment.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Formatter` [INFO] [stdout] --> api/src/environment/environment.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::Formatter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> api/src/item/item_storage.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | if (!ok) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 67 - if (!ok) { [INFO] [stdout] 67 + if !ok { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> api/src/item/item_storage.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | if (!ok) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 67 - if (!ok) { [INFO] [stdout] 67 + if !ok { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> api/src/module/console.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> api/src/module/module_capability.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::math::Complex` [INFO] [stdout] --> api/src/module/process_token.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::utils::math::Complex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> api/src/module/console.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowError` and `Ref` [INFO] [stdout] --> api/src/module/process_token.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::{BorrowError, Ref, RefCell}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> api/src/module/process_token.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Add` [INFO] [stdout] --> api/src/module/module_capability.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::Add; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ConcatModuleCapabilities` and `ModuleCapability` [INFO] [stdout] --> api/src/person/person.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | ConcatModuleCapabilities, Module, ModuleCapability, ModuleConsole, ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SliceRandom` [INFO] [stdout] --> api/src/person/person.rs:12:66 [INFO] [stdout] | [INFO] [stdout] 12 | use rand::prelude::{Distribution, IndexedRandom, IteratorRandom, SliceRandom}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::math::Complex` [INFO] [stdout] --> api/src/module/process_token.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::utils::math::Complex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BorrowError` and `Ref` [INFO] [stdout] --> api/src/module/process_token.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::{BorrowError, Ref, RefCell}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> api/src/module/process_token.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ConcatModuleCapabilities` and `ModuleCapability` [INFO] [stdout] --> api/src/person/person.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | ConcatModuleCapabilities, Module, ModuleCapability, ModuleConsole, ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SliceRandom` [INFO] [stdout] --> api/src/person/person.rs:12:66 [INFO] [stdout] | [INFO] [stdout] 12 | use rand::prelude::{Distribution, IndexedRandom, IteratorRandom, SliceRandom}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::DeserializeSeed` [INFO] [stdout] --> api/src/person/person.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use serde::de::DeserializeSeed; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> api/src/person/person.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::DeserializeSeed` [INFO] [stdout] --> api/src/person/person.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use serde::de::DeserializeSeed; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> api/src/person/person.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> api/src/person/objective.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> api/src/person/objective.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> api/src/person/logger.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefMut` and `Ref` [INFO] [stdout] --> api/src/person/utils.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::cell::{Ref, RefMut}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Person` [INFO] [stdout] --> api/src/vessel/vessel.rs:2:52 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::person::{Logger, ObjectiveDeciderVault, Person, PersonId}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `de` [INFO] [stdout] --> api/src/vessel/vessel.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | use serde::{Deserialize, Deserializer, Serialize, de}; [INFO] [stdout] | ^^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> api/src/person/objective.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Display` [INFO] [stdout] --> api/src/person/objective.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt::{Debug, Display}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> api/src/person/logger.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VesselId` [INFO] [stdout] --> api/src/vessel/docking_clamp.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::vessel::{Vessel, VesselId, VesselSeed}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RefMut` and `Ref` [INFO] [stdout] --> api/src/person/utils.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::cell::{Ref, RefMut}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoxSeed` and `OptionSeed` [INFO] [stdout] --> api/src/vessel/docking_clamp.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use dyn_serde::{BoxSeed, DynDeserializeSeedVault, OptionSeed}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Person` [INFO] [stdout] --> api/src/vessel/vessel.rs:2:52 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::person::{Logger, ObjectiveDeciderVault, Person, PersonId}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `de` [INFO] [stdout] --> api/src/vessel/vessel.rs:9:13 [INFO] [stdout] | [INFO] [stdout] 9 | use serde::{Deserialize, Deserializer, Serialize, de}; [INFO] [stdout] | ^^^^^^^^^^^ ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VesselId` [INFO] [stdout] --> api/src/vessel/docking_clamp.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::vessel::{Vessel, VesselId, VesselSeed}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BoxSeed` and `OptionSeed` [INFO] [stdout] --> api/src/vessel/docking_clamp.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use dyn_serde::{BoxSeed, DynDeserializeSeedVault, OptionSeed}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserializer` [INFO] [stdout] --> api/src/environment/environment.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Deserializer, Serialize, Serializer, de}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MapAccess` [INFO] [stdout] --> api/src/environment/environment.rs:7:34 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::de::{DeserializeSeed, MapAccess, SeqAccess, Visitor}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MapAccess` [INFO] [stdout] --> api/src/vessel/vessel.rs:8:34 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::de::{DeserializeSeed, MapAccess, SeqAccess, Visitor}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Module` [INFO] [stdout] --> api/src/person/person.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | ConcatModuleCapabilities, Module, ModuleCapability, ModuleConsole, ProcessTokenContext, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Objective` [INFO] [stdout] --> api/src/person/person.rs:4:32 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::person::objective::{Objective, ObjectiveSeed, ObjectiveStatus}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/item/item.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 30 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter` [INFO] [stdout] --> api/src/item/item_storage.rs:12:48 [INFO] [stdout] | [INFO] [stdout] 12 | fn from_iter>(iter: T) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> api/src/item/item_storage.rs:20:17 [INFO] [stdout] | [INFO] [stdout] 20 | fn try_from(value: Vec) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> api/src/item/item_storage.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn add_item(&mut self, item: Item) -> Item { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> api/src/item/item_storage.rs:36:36 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn try_add_item(&mut self, item: Item) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item_id` [INFO] [stdout] --> api/src/item/item_storage.rs:41:35 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn remove_item(&mut self, item_id: ItemId, count: ItemCount) -> Item { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `count` [INFO] [stdout] --> api/src/item/item_storage.rs:41:52 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn remove_item(&mut self, item_id: ItemId, count: ItemCount) -> Item { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> api/src/item/item_storage.rs:46:39 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn try_remove_item(&mut self, item: Item) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item_id` [INFO] [stdout] --> api/src/item/item_storage.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn count(&self, item_id: ItemId) -> ItemCount { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserializer` [INFO] [stdout] --> api/src/environment/environment.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Deserializer, Serialize, Serializer, de}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MapAccess` [INFO] [stdout] --> api/src/environment/environment.rs:7:34 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::de::{DeserializeSeed, MapAccess, SeqAccess, Visitor}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MapAccess` [INFO] [stdout] --> api/src/vessel/vessel.rs:8:34 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::de::{DeserializeSeed, MapAccess, SeqAccess, Visitor}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Module` [INFO] [stdout] --> api/src/person/person.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | ConcatModuleCapabilities, Module, ModuleCapability, ModuleConsole, ProcessTokenContext, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Objective` [INFO] [stdout] --> api/src/person/person.rs:4:32 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::person::objective::{Objective, ObjectiveSeed, ObjectiveStatus}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/item/item.rs:30:19 [INFO] [stdout] | [INFO] [stdout] 30 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `role` [INFO] [stdout] --> api/src/module/console.rs:183:28 [INFO] [stdout] | [INFO] [stdout] 183 | fn give_command(&self, role: Role) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_role` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vessel_id` [INFO] [stdout] --> api/src/module/console.rs:197:23 [INFO] [stdout] | [INFO] [stdout] 197 | fn fire_at(&self, vessel_id: u32) { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vessel_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `iter` [INFO] [stdout] --> api/src/item/item_storage.rs:12:48 [INFO] [stdout] | [INFO] [stdout] 12 | fn from_iter>(iter: T) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> api/src/item/item_storage.rs:20:17 [INFO] [stdout] | [INFO] [stdout] 20 | fn try_from(value: Vec) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> api/src/item/item_storage.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn add_item(&mut self, item: Item) -> Item { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> api/src/item/item_storage.rs:36:36 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn try_add_item(&mut self, item: Item) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item_id` [INFO] [stdout] --> api/src/item/item_storage.rs:41:35 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn remove_item(&mut self, item_id: ItemId, count: ItemCount) -> Item { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `count` [INFO] [stdout] --> api/src/item/item_storage.rs:41:52 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn remove_item(&mut self, item_id: ItemId, count: ItemCount) -> Item { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item` [INFO] [stdout] --> api/src/item/item_storage.rs:46:39 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn try_remove_item(&mut self, item: Item) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_item` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `item_id` [INFO] [stdout] --> api/src/item/item_storage.rs:50:25 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn count(&self, item_id: ItemId) -> ItemCount { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> api/src/module/module_capability.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | fn concat(self, rhs: &[ModuleCapability]) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> api/src/module/process_token.rs:95:38 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn mark_completed(&mut self, context: &ProcessTokenContext) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/module/process_token.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `role` [INFO] [stdout] --> api/src/module/console.rs:183:28 [INFO] [stdout] | [INFO] [stdout] 183 | fn give_command(&self, role: Role) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_role` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vessel_id` [INFO] [stdout] --> api/src/module/console.rs:197:23 [INFO] [stdout] | [INFO] [stdout] 197 | fn fire_at(&self, vessel_id: u32) { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vessel_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rhs` [INFO] [stdout] --> api/src/module/module_capability.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | fn concat(self, rhs: &[ModuleCapability]) -> Self::Output { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rhs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `context` [INFO] [stdout] --> api/src/module/process_token.rs:95:38 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn mark_completed(&mut self, context: &ProcessTokenContext) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/module/process_token.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> api/src/recipe/recipe.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | fn try_from(value: Vec) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> api/src/recipe/recipe.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | fn try_from(value: Vec) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> api/src/utils/color.rs:22:25 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn with_r(self, r: Float) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `g` [INFO] [stdout] --> api/src/utils/color.rs:26:25 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn with_g(self, g: Float) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> api/src/utils/color.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn with_b(self, b: Float) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/color.rs:43:51 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn map_r Float>(self, f: F) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/color.rs:47:51 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn map_g Float>(self, f: F) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/color.rs:51:51 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn map_b Float>(self, f: F) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> api/src/recipe/recipe.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | fn try_from(value: Vec) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> api/src/recipe/recipe.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | fn try_from(value: Vec) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> api/src/utils/math/rect.rs:227:34 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn contains_point(&self, other: &Point) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r` [INFO] [stdout] --> api/src/utils/color.rs:22:25 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn with_r(self, r: Float) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_r` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `g` [INFO] [stdout] --> api/src/utils/color.rs:26:25 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn with_g(self, g: Float) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_g` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> api/src/utils/color.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn with_b(self, b: Float) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/color.rs:43:51 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn map_r Float>(self, f: F) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/color.rs:47:51 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn map_g Float>(self, f: F) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/color.rs:51:51 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn map_b Float>(self, f: F) -> Self { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/utils.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 91 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `other` [INFO] [stdout] --> api/src/utils/math/rect.rs:227:34 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn contains_point(&self, other: &Point) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_other` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `vessel_by_id` is never used [INFO] [stdout] --> api/src/environment/environment.rs:37:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl Environment { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub(crate) fn vessel_by_id(&self, id: VesselId) -> Option<&Vessel> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderHolder` is never constructed [INFO] [stdout] --> api/src/item/order.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | struct OrderHolder { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CaptainControlPanel` is never used [INFO] [stdout] --> api/src/module/console.rs:182:18 [INFO] [stdout] | [INFO] [stdout] 182 | pub(crate) trait CaptainControlPanel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `NavigatorControlPanel` is never used [INFO] [stdout] --> api/src/module/console.rs:186:18 [INFO] [stdout] | [INFO] [stdout] 186 | pub(crate) trait NavigatorControlPanel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `GunnerControlPanel` is never used [INFO] [stdout] --> api/src/module/console.rs:192:18 [INFO] [stdout] | [INFO] [stdout] 192 | pub(crate) trait GunnerControlPanel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `modules_with_cap` are never used [INFO] [stdout] --> api/src/module/module_storage.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 14 | impl ModuleStorage { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 15 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec<&Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Role` is never used [INFO] [stdout] --> api/src/person/person.rs:173:17 [INFO] [stdout] | [INFO] [stdout] 173 | pub(crate) enum Role { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_this_vessel_fly` is never used [INFO] [stdout] --> api/src/person/utils.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn can_this_vessel_fly( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `for_each_docking_clamps_with_vessels_which_can_fly` is never used [INFO] [stdout] --> api/src/person/utils.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn for_each_docking_clamps_with_vessels_which_can_fly( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `input` and `output` are never read [INFO] [stdout] --> api/src/recipe/recipe.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Recipe { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 6 | input: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | output: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OutputRecipe` is never constructed [INFO] [stdout] --> api/src/recipe/recipe.rs:50:19 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) struct OutputRecipe { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_degrees` is never used [INFO] [stdout] --> api/src/utils/math/angle.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 13 | impl Angle { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub(crate) fn from_degrees(value: U) -> Self [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from_degrees` and `radians` are never used [INFO] [stdout] --> api/src/utils/math/angle.rs:121:19 [INFO] [stdout] | [INFO] [stdout] 116 | impl DeltaAngle { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub(crate) fn from_degrees(value: U) -> Self [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub(crate) fn radians(self) -> T [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `rotation` and `apply_affine_without_translation` are never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Matrix { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 160 | fn rotation(&self) -> Complex [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | fn apply_affine_without_translation<'a>(&'a self, rhs: &Point) -> Point [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SKEW_X` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub const SKEW_X: usize = 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SKEW_Y` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | pub const SKEW_Y: usize = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PERSP0` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:25:15 [INFO] [stdout] | [INFO] [stdout] 25 | pub const PERSP0: usize = 6; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PERSP1` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | pub const PERSP1: usize = 7; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PERSP2` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | pub const PERSP2: usize = 8; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FitIntoRangeError` is never constructed [INFO] [stdout] --> api/src/utils/math/misc.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) struct FitIntoRangeError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fit_into_range` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | pub(crate) fn fit_into_range(x: T, input: I, output: O) -> Result> [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_into_range_inclusive` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | pub(crate) fn map_into_range_inclusive(x: T, input: I, output: O) -> T [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FitIntoRangeInclusiveError` is never constructed [INFO] [stdout] --> api/src/utils/math/misc.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) struct FitIntoRangeInclusiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fit_into_range_inclusive` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:81:15 [INFO] [stdout] | [INFO] [stdout] 81 | pub(crate) fn fit_into_range_inclusive( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clamp_into_range` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:103:15 [INFO] [stdout] | [INFO] [stdout] 103 | pub(crate) fn clamp_into_range(x: T, input: I, output: O) -> T [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sign` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:121:15 [INFO] [stdout] | [INFO] [stdout] 121 | pub(crate) fn sign(v: T) -> T [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NegError` is never constructed [INFO] [stdout] --> api/src/utils/math/noneg.rs:50:19 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) struct NegError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `original_value` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 54 | impl NegError { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 55 | pub(crate) fn original_value(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `wrap`, `sqrt`, `floor`, and `limited_sub` are never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 76 | impl NoNeg { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 77 | pub(crate) fn wrap(value: T) -> Result> [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub(crate) fn sqrt(self) -> NoNeg<::Output> [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub(crate) fn floor(self) -> NoNeg<::Output> [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub(crate) fn limited_sub(self, rhs: NoNeg) -> NoNeg<>::Output> [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AbsAsNoNeg` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:208:18 [INFO] [stdout] | [INFO] [stdout] 208 | pub(crate) trait AbsAsNoNeg [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `noneg_f32` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:241:21 [INFO] [stdout] | [INFO] [stdout] 241 | pub(crate) const fn noneg_f32(value: f32) -> NoNeg { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `noneg_f64` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:246:21 [INFO] [stdout] | [INFO] [stdout] 246 | pub(crate) const fn noneg_f64(value: f64) -> NoNeg { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `x_range`, `y_range`, and `instersects_circle` are never used [INFO] [stdout] --> api/src/utils/math/rect.rs:197:19 [INFO] [stdout] | [INFO] [stdout] 13 | impl Rect { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 197 | pub(crate) fn x_range(&self) -> Range [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub(crate) fn y_range(&self) -> Range [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub(crate) fn instersects_circle(&self, center: Point, radius: NoNeg) -> bool [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Floor` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:148:18 [INFO] [stdout] | [INFO] [stdout] 148 | pub(crate) trait Floor { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Clamp` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:169:18 [INFO] [stdout] | [INFO] [stdout] 169 | pub(crate) trait Clamp: Sized { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `MinusOne` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:224:18 [INFO] [stdout] | [INFO] [stdout] 224 | pub(crate) trait MinusOne { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `DegToRad` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:309:18 [INFO] [stdout] | [INFO] [stdout] 309 | pub(crate) trait DegToRad { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize` is never used [INFO] [stdout] --> api/src/utils/utils.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) fn normalize(v: [Float; SIZE]) -> [Float; SIZE] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize_opt` is never used [INFO] [stdout] --> api/src/utils/utils.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) fn normalize_opt(v: [Option; SIZE]) -> [Option; SIZE] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transfer_energy` is never used [INFO] [stdout] --> api/src/utils/utils.rs:28:15 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) fn transfer_energy( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drain_energy` is never used [INFO] [stdout] --> api/src/utils/utils.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) fn drain_energy(source: &mut NoNeg, mut delta_energy: NoNeg) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_range_from_range` is never used [INFO] [stdout] --> api/src/utils/utils.rs:60:15 [INFO] [stdout] | [INFO] [stdout] 60 | pub(crate) fn sample_range_from_range( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequiredToBeInRangeError` is never constructed [INFO] [stdout] --> api/src/utils/utils.rs:85:19 [INFO] [stdout] | [INFO] [stdout] 85 | pub(crate) struct RequiredToBeInRangeError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `RequiredToBeInRange` is never used [INFO] [stdout] --> api/src/utils/utils.rs:98:18 [INFO] [stdout] | [INFO] [stdout] 98 | pub(crate) trait RequiredToBeInRange: Sized { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `owner` and `add_module` are never used [INFO] [stdout] --> api/src/vessel/vessel.rs:98:19 [INFO] [stdout] | [INFO] [stdout] 94 | impl Vessel { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub(crate) fn owner(&self) -> PersonId { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub(crate) fn add_module(&mut self, module: Box) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> api/src/vessel/console.rs:15:25 [INFO] [stdout] | [INFO] [stdout] 15 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>>; [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 15 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> api/src/vessel/vessel.rs:184:25 [INFO] [stdout] | [INFO] [stdout] 184 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>> { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 184 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> api/src/utils/utils.rs:91:19 [INFO] [stdout] | [INFO] [stdout] 91 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `vessel_by_id` is never used [INFO] [stdout] --> api/src/environment/environment.rs:37:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl Environment { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub(crate) fn vessel_by_id(&self, id: VesselId) -> Option<&Vessel> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OrderHolder` is never constructed [INFO] [stdout] --> api/src/item/order.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | struct OrderHolder { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CaptainControlPanel` is never used [INFO] [stdout] --> api/src/module/console.rs:182:18 [INFO] [stdout] | [INFO] [stdout] 182 | pub(crate) trait CaptainControlPanel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `NavigatorControlPanel` is never used [INFO] [stdout] --> api/src/module/console.rs:186:18 [INFO] [stdout] | [INFO] [stdout] 186 | pub(crate) trait NavigatorControlPanel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `GunnerControlPanel` is never used [INFO] [stdout] --> api/src/module/console.rs:192:18 [INFO] [stdout] | [INFO] [stdout] 192 | pub(crate) trait GunnerControlPanel { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `modules_with_cap` are never used [INFO] [stdout] --> api/src/module/module_storage.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 14 | impl ModuleStorage { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 15 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec<&Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Role` is never used [INFO] [stdout] --> api/src/person/person.rs:173:17 [INFO] [stdout] | [INFO] [stdout] 173 | pub(crate) enum Role { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `can_this_vessel_fly` is never used [INFO] [stdout] --> api/src/person/utils.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn can_this_vessel_fly( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `for_each_docking_clamps_with_vessels_which_can_fly` is never used [INFO] [stdout] --> api/src/person/utils.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn for_each_docking_clamps_with_vessels_which_can_fly( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `input` and `output` are never read [INFO] [stdout] --> api/src/recipe/recipe.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Recipe { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 6 | input: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 7 | output: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OutputRecipe` is never constructed [INFO] [stdout] --> api/src/recipe/recipe.rs:50:19 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) struct OutputRecipe { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `radians` is never used [INFO] [stdout] --> api/src/utils/math/angle.rs:131:19 [INFO] [stdout] | [INFO] [stdout] 116 | impl DeltaAngle { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | pub(crate) fn radians(self) -> T [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `rotation` and `apply_affine_without_translation` are never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 32 | impl Matrix { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 160 | fn rotation(&self) -> Complex [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | fn apply_affine_without_translation<'a>(&'a self, rhs: &Point) -> Point [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SKEW_X` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub const SKEW_X: usize = 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SKEW_Y` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | pub const SKEW_Y: usize = 3; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PERSP0` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:25:15 [INFO] [stdout] | [INFO] [stdout] 25 | pub const PERSP0: usize = 6; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PERSP1` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:27:15 [INFO] [stdout] | [INFO] [stdout] 27 | pub const PERSP1: usize = 7; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PERSP2` is never used [INFO] [stdout] --> api/src/utils/math/matrix.rs:29:15 [INFO] [stdout] | [INFO] [stdout] 29 | pub const PERSP2: usize = 8; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FitIntoRangeError` is never constructed [INFO] [stdout] --> api/src/utils/math/misc.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) struct FitIntoRangeError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fit_into_range` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:36:15 [INFO] [stdout] | [INFO] [stdout] 36 | pub(crate) fn fit_into_range(x: T, input: I, output: O) -> Result> [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_into_range_inclusive` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:54:15 [INFO] [stdout] | [INFO] [stdout] 54 | pub(crate) fn map_into_range_inclusive(x: T, input: I, output: O) -> T [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FitIntoRangeInclusiveError` is never constructed [INFO] [stdout] --> api/src/utils/math/misc.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | pub(crate) struct FitIntoRangeInclusiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fit_into_range_inclusive` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:81:15 [INFO] [stdout] | [INFO] [stdout] 81 | pub(crate) fn fit_into_range_inclusive( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clamp_into_range` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:103:15 [INFO] [stdout] | [INFO] [stdout] 103 | pub(crate) fn clamp_into_range(x: T, input: I, output: O) -> T [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sign` is never used [INFO] [stdout] --> api/src/utils/math/misc.rs:121:15 [INFO] [stdout] | [INFO] [stdout] 121 | pub(crate) fn sign(v: T) -> T [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `original_value` is never read [INFO] [stdout] --> api/src/utils/math/noneg.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 50 | pub(crate) struct NegError { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 51 | original_value: T, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NegError` 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 `original_value` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 54 | impl NegError { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] 55 | pub(crate) fn original_value(self) -> T { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `sqrt` and `floor` are never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:94:19 [INFO] [stdout] | [INFO] [stdout] 76 | impl NoNeg { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub(crate) fn sqrt(self) -> NoNeg<::Output> [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub(crate) fn floor(self) -> NoNeg<::Output> [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AbsAsNoNeg` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:208:18 [INFO] [stdout] | [INFO] [stdout] 208 | pub(crate) trait AbsAsNoNeg [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `noneg_f32` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:241:21 [INFO] [stdout] | [INFO] [stdout] 241 | pub(crate) const fn noneg_f32(value: f32) -> NoNeg { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `noneg_f64` is never used [INFO] [stdout] --> api/src/utils/math/noneg.rs:246:21 [INFO] [stdout] | [INFO] [stdout] 246 | pub(crate) const fn noneg_f64(value: f64) -> NoNeg { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `x_range`, `y_range`, and `instersects_circle` are never used [INFO] [stdout] --> api/src/utils/math/rect.rs:197:19 [INFO] [stdout] | [INFO] [stdout] 13 | impl Rect { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 197 | pub(crate) fn x_range(&self) -> Range [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub(crate) fn y_range(&self) -> Range [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | pub(crate) fn instersects_circle(&self, center: Point, radius: NoNeg) -> bool [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Floor` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:148:18 [INFO] [stdout] | [INFO] [stdout] 148 | pub(crate) trait Floor { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Clamp` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:169:18 [INFO] [stdout] | [INFO] [stdout] 169 | pub(crate) trait Clamp: Sized { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `MinusOne` is never used [INFO] [stdout] --> api/src/utils/math/traits.rs:224:18 [INFO] [stdout] | [INFO] [stdout] 224 | pub(crate) trait MinusOne { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize` is never used [INFO] [stdout] --> api/src/utils/utils.rs:13:15 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) fn normalize(v: [Float; SIZE]) -> [Float; SIZE] { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `normalize_opt` is never used [INFO] [stdout] --> api/src/utils/utils.rs:18:15 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) fn normalize_opt(v: [Option; SIZE]) -> [Option; SIZE] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transfer_energy` is never used [INFO] [stdout] --> api/src/utils/utils.rs:28:15 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) fn transfer_energy( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drain_energy` is never used [INFO] [stdout] --> api/src/utils/utils.rs:49:15 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) fn drain_energy(source: &mut NoNeg, mut delta_energy: NoNeg) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sample_range_from_range` is never used [INFO] [stdout] --> api/src/utils/utils.rs:60:15 [INFO] [stdout] | [INFO] [stdout] 60 | pub(crate) fn sample_range_from_range( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RequiredToBeInRangeError` is never constructed [INFO] [stdout] --> api/src/utils/utils.rs:85:19 [INFO] [stdout] | [INFO] [stdout] 85 | pub(crate) struct RequiredToBeInRangeError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `RequiredToBeInRange` is never used [INFO] [stdout] --> api/src/utils/utils.rs:98:18 [INFO] [stdout] | [INFO] [stdout] 98 | pub(crate) trait RequiredToBeInRange: Sized { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `owner` and `add_module` are never used [INFO] [stdout] --> api/src/vessel/vessel.rs:98:19 [INFO] [stdout] | [INFO] [stdout] 94 | impl Vessel { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub(crate) fn owner(&self) -> PersonId { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub(crate) fn add_module(&mut self, module: Box) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> api/src/vessel/console.rs:15:25 [INFO] [stdout] | [INFO] [stdout] 15 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>>; [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 15 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> api/src/vessel/vessel.rs:184:25 [INFO] [stdout] | [INFO] [stdout] 184 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>> { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 184 | fn modules_with_cap(&self, cap: ModuleCapability) -> Vec>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking dudes_in_space_core v0.0.1 (/opt/rustwide/workdir/core) [INFO] [stdout] deserialize_seed_tagged_enum: [ [INFO] [stdout] Variant { [INFO] [stdout] attrs: [], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Idle", [INFO] [stdout] span: #0 bytes(3002..3006), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Unit, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] Variant { [INFO] [stdout] attrs: [ [INFO] [stdout] Attribute { [INFO] [stdout] pound_token: Pound, [INFO] [stdout] style: AttrStyle::Outer, [INFO] [stdout] bracket_token: Bracket, [INFO] [stdout] meta: Meta::List { [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "deserialize_seed_xxx", [INFO] [stdout] span: #0 bytes(3014..3034), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] delimiter: MacroDelimiter::Paren( [INFO] [stdout] Paren, [INFO] [stdout] ), [INFO] [stdout] tokens: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "seeds", [INFO] [stdout] span: #0 bytes(3035..3040), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '=', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3041..3042), [INFO] [stdout] }, [INFO] [stdout] Group { [INFO] [stdout] delimiter: Bracket, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Group { [INFO] [stdout] delimiter: Parenthesis, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(3045..3058), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: ',', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3058..3059), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(3060..3064), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3064..3065), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3065..3069), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3069..3070), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3070..3074), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3074..3075), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(3075..3093), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(3044..3094), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(3043..3095), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Assembling", [INFO] [stdout] span: #0 bytes(3102..3112), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Named { [INFO] [stdout] brace_token: Brace, [INFO] [stdout] named: [ [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "recipe_index", [INFO] [stdout] span: #0 bytes(3123..3135), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "usize", [INFO] [stdout] span: #0 bytes(3137..3142), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "deploy", [INFO] [stdout] span: #0 bytes(3152..3158), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "bool", [INFO] [stdout] span: #0 bytes(3160..3164), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(3174..3187), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "ProcessTokenMut", [INFO] [stdout] span: #0 bytes(3189..3204), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] ] [INFO] [stdout] variant_attr: DeserializeSeedXXXVariantAttributes { [INFO] [stdout] seeds: [ [INFO] [stdout] ( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(3045..3058), [INFO] [stdout] }, [INFO] [stdout] Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Path { [INFO] [stdout] attrs: [], [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(3060..3064), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3065..3069), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3070..3074), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(3075..3093), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] } [INFO] [stdout] xxx_field: recipe_index -> None | None [INFO] [stdout] xxx_field: deploy -> None | None [INFO] [stdout] xxx_field: process_token -> None | Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(3060..3064) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3065..3069) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3070..3074) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "process_token_seed", span: #0 bytes(3075..3093) }) }) [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < '__de, 'context > serde :: de :: DeserializeSeed < '__de > for crate :: [INFO] [stdout] modules :: assembler :: AssemblerStateSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblerState; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] #[derive(Deserialize)] struct __AssemblerState_Idle; struct [INFO] [stdout] __AssemblerState_Assembling [INFO] [stdout] { [INFO] [stdout] recipe_index : usize, deploy : bool, process_token : [INFO] [stdout] ProcessTokenMut, [INFO] [stdout] }; impl __AssemblerState_Assembling [INFO] [stdout] { [INFO] [stdout] fn into_dst(self) -> AssemblerState [INFO] [stdout] { [INFO] [stdout] AssemblerState :: Assembling [INFO] [stdout] { [INFO] [stdout] recipe_index : self.recipe_index, deploy : self.deploy, [INFO] [stdout] process_token : self.process_token, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: assembler :: AssemblerStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblerState; fn [INFO] [stdout] expecting(& self, f : & mut std :: fmt :: Formatter) -> std :: fmt [INFO] [stdout] :: Result { write! (f, "map") } fn visit_map < A : serde :: de :: [INFO] [stdout] MapAccess < '__de >> (self, mut map : A) -> Result < Self :: [INFO] [stdout] Value, A :: Error > [INFO] [stdout] { [INFO] [stdout] let key = map.next_key :: < String > () ? ; if key.as_deref() [INFO] [stdout] != Some("tp") [INFO] [stdout] { return Err(serde :: de :: Error :: missing_field("tp")); } [INFO] [stdout] #[derive(Deserialize)] enum Tag { Idle, Assembling, } match [INFO] [stdout] map.next_value :: < Tag > () ? [INFO] [stdout] { [INFO] [stdout] Tag :: Idle => Ok(Self :: Value :: Idle), Tag :: Assembling [INFO] [stdout] => [INFO] [stdout] { [INFO] [stdout] struct __AssemblerState_AssemblingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: assembler :: AssemblerStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'de, 'context > serde :: de :: DeserializeSeed < [INFO] [stdout] 'de > for __AssemblerState_AssemblingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __AssemblerState_Assembling; fn deserialize < D [INFO] [stdout] > (self, deserializer : D) -> Result < Self :: Value, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["recipe_index", "deploy", "process_token"]; enum Field [INFO] [stdout] { RecipeIndex, Deploy, ProcessToken } impl < '__de > serde [INFO] [stdout] :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D [INFO] [stdout] :: Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`recipe_index`, `deploy`, `process_token`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "recipe_index" => Ok(Field :: RecipeIndex), "deploy" => [INFO] [stdout] Ok(Field :: Deploy), "process_token" => [INFO] [stdout] Ok(Field :: ProcessToken), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { seed : __AssemblerState_AssemblingSeed < 'context > } impl [INFO] [stdout] < 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __AssemblerState_Assembling; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("struct __AssemblerState_Assembling") [INFO] [stdout] } fn visit_map < V > (self, mut map : V) -> Result < Self :: [INFO] [stdout] Value, V :: Error > where V : serde :: de :: MapAccess < [INFO] [stdout] '__de > , [INFO] [stdout] { [INFO] [stdout] let mut recipe_index : Option < usize > = None; let mut [INFO] [stdout] deploy : Option < bool > = None; let mut process_token : [INFO] [stdout] Option < ProcessTokenMut > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: RecipeIndex => [INFO] [stdout] { [INFO] [stdout] if recipe_index.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("recipe_index")); [INFO] [stdout] } recipe_index = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Deploy => [INFO] [stdout] { [INFO] [stdout] if deploy.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("deploy")); [INFO] [stdout] } deploy = Some(map.next_value() ?); [INFO] [stdout] }, Field :: ProcessToken => [INFO] [stdout] { [INFO] [stdout] if process_token.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("process_token")); [INFO] [stdout] } process_token = [INFO] [stdout] Some(map.next_value_seed(self.seed.seed.process_token_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let recipe_index : usize = [INFO] [stdout] recipe_index.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("recipe_index")) ? ; let deploy : bool = [INFO] [stdout] deploy.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("deploy")) ? ; let process_token : [INFO] [stdout] ProcessTokenMut = [INFO] [stdout] process_token.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("process_token")) ? ; [INFO] [stdout] Ok(__AssemblerState_Assembling [INFO] [stdout] { recipe_index, deploy, process_token, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("__AssemblerState_Assembling", [INFO] [stdout] NAMES, Visitor { seed : self },) [INFO] [stdout] } [INFO] [stdout] } use serde :: de :: DeserializeSeed as _; let value : [INFO] [stdout] __AssemblerState_Assembling = [INFO] [stdout] __AssemblerState_AssemblingSeed [INFO] [stdout] { [INFO] [stdout] seed : self.seed [INFO] [stdout] }.deserialize(serde :: de :: value :: MapAccessDeserializer [INFO] [stdout] :: new(map)) ? ; Ok(value.into_dst()) [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_enum("AssemblerState", & [INFO] [stdout] ["Idle", "Assembling",], Visitor { seed : self }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: recipes -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(3753..3757) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3758..3762) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "recipe_seq_seed", span: #0 bytes(3763..3778) }) }) | None [INFO] [stdout] xxx_field: state -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(3849..3853) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3854..3858) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "state_seed", span: #0 bytes(3859..3869) }) }) | None [INFO] [stdout] xxx_field: storage -> None | None [INFO] [stdout] xxx_field: operator -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(4023..4027) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(4028..4032) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "person_seed", span: #0 bytes(4033..4044) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v, 'context > serde :: de :: DeserializeSeed < 'de > for crate :: [INFO] [stdout] modules :: assembler :: AssemblerSeed < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Assembler; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["id", "recipes", "state", "storage", "operator"]; enum Field [INFO] [stdout] { Id, Recipes, State, Storage, Operator } impl < '__de > serde :: de [INFO] [stdout] :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`id`, `recipes`, `state`, `storage`, `operator`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "recipes" => Ok(Field :: Recipes), [INFO] [stdout] "state" => Ok(Field :: State), "storage" => [INFO] [stdout] Ok(Field :: Storage), "operator" => Ok(Field :: Operator), _ [INFO] [stdout] => Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: assembler :: AssemblerSeed < 'v, [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'v, 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Assembler; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Assembler") } [INFO] [stdout] fn visit_map < V > (self, mut map : V) -> Result < Self :: Value, [INFO] [stdout] V :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < ModuleId > = None; let mut recipes : [INFO] [stdout] Option < Vec < AssemblyRecipe > > = None; let mut state : [INFO] [stdout] Option < AssemblerState > = None; let mut storage : Option < [INFO] [stdout] ItemStorage > = None; let mut operator : Option < Option < [INFO] [stdout] Person > > = None; while let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Recipes => [INFO] [stdout] { [INFO] [stdout] if recipes.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("recipes")); [INFO] [stdout] } recipes = [INFO] [stdout] Some(map.next_value_seed(self.seed.recipe_seq_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, Field :: State => [INFO] [stdout] { [INFO] [stdout] if state.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("state")); [INFO] [stdout] } state = [INFO] [stdout] Some(map.next_value_seed(self.seed.state_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: Storage => [INFO] [stdout] { [INFO] [stdout] if storage.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("storage")); [INFO] [stdout] } storage = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Operator => [INFO] [stdout] { [INFO] [stdout] if operator.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("operator")); [INFO] [stdout] } operator = [INFO] [stdout] Some(map.next_value_seed(self.seed.person_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : ModuleId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let recipes : Vec < AssemblyRecipe > = [INFO] [stdout] recipes.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("recipes")) ? ; let state : AssemblerState = [INFO] [stdout] state.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("state")) ? ; let storage : ItemStorage = [INFO] [stdout] storage.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("storage")) ? ; let operator : Option < Person > [INFO] [stdout] = [INFO] [stdout] operator.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("operator")) ? ; [INFO] [stdout] Ok(Assembler { id, recipes, state, storage, operator, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Assembler", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserialize_seed_tagged_enum: [ [INFO] [stdout] Variant { [INFO] [stdout] attrs: [], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Idle", [INFO] [stdout] span: #0 bytes(19889..19893), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Unit, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] Variant { [INFO] [stdout] attrs: [ [INFO] [stdout] Attribute { [INFO] [stdout] pound_token: Pound, [INFO] [stdout] style: AttrStyle::Outer, [INFO] [stdout] bracket_token: Bracket, [INFO] [stdout] meta: Meta::List { [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "deserialize_seed_xxx", [INFO] [stdout] span: #0 bytes(19901..19921), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] delimiter: MacroDelimiter::Paren( [INFO] [stdout] Paren, [INFO] [stdout] ), [INFO] [stdout] tokens: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "seeds", [INFO] [stdout] span: #0 bytes(19922..19927), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '=', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19928..19929), [INFO] [stdout] }, [INFO] [stdout] Group { [INFO] [stdout] delimiter: Bracket, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Group { [INFO] [stdout] delimiter: Parenthesis, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(19932..19945), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: ',', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19945..19946), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(19947..19951), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19951..19952), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19952..19956), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19956..19957), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19957..19961), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19961..19962), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(19962..19980), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(19931..19981), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(19930..19982), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Building", [INFO] [stdout] span: #0 bytes(19989..19997), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Named { [INFO] [stdout] brace_token: Brace, [INFO] [stdout] named: [ [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "modules", [INFO] [stdout] span: #0 bytes(20008..20015), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "BTreeSet", [INFO] [stdout] span: #0 bytes(20017..20025), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::AngleBracketed { [INFO] [stdout] colon2_token: None, [INFO] [stdout] lt_token: Lt, [INFO] [stdout] args: [ [INFO] [stdout] GenericArgument::Type( [INFO] [stdout] Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "ModuleId", [INFO] [stdout] span: #0 bytes(20026..20034), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] gt_token: Gt, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(20045..20058), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "ProcessTokenMut", [INFO] [stdout] span: #0 bytes(20060..20075), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] ] [INFO] [stdout] variant_attr: DeserializeSeedXXXVariantAttributes { [INFO] [stdout] seeds: [ [INFO] [stdout] ( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(19932..19945), [INFO] [stdout] }, [INFO] [stdout] Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Path { [INFO] [stdout] attrs: [], [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(19947..19951), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19952..19956), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19957..19961), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(19962..19980), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] } [INFO] [stdout] xxx_field: modules -> None | None [INFO] [stdout] xxx_field: process_token -> None | Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(19947..19951) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(19952..19956) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(19957..19961) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "process_token_seed", span: #0 bytes(19962..19980) }) }) [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < '__de, 'context > serde :: de :: DeserializeSeed < '__de > for crate :: [INFO] [stdout] modules :: dockyard :: DockyardStateSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = DockyardState; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] #[derive(Deserialize)] struct __DockyardState_Idle; struct [INFO] [stdout] __DockyardState_Building [INFO] [stdout] { [INFO] [stdout] modules : BTreeSet < ModuleId > , process_token : ProcessTokenMut, [INFO] [stdout] }; impl __DockyardState_Building [INFO] [stdout] { [INFO] [stdout] fn into_dst(self) -> DockyardState [INFO] [stdout] { [INFO] [stdout] DockyardState :: Building [INFO] [stdout] { [INFO] [stdout] modules : self.modules, process_token : self.process_token, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: dockyard :: DockyardStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = DockyardState; fn [INFO] [stdout] expecting(& self, f : & mut std :: fmt :: Formatter) -> std :: fmt [INFO] [stdout] :: Result { write! (f, "map") } fn visit_map < A : serde :: de :: [INFO] [stdout] MapAccess < '__de >> (self, mut map : A) -> Result < Self :: [INFO] [stdout] Value, A :: Error > [INFO] [stdout] { [INFO] [stdout] let key = map.next_key :: < String > () ? ; if key.as_deref() [INFO] [stdout] != Some("tp") [INFO] [stdout] { return Err(serde :: de :: Error :: missing_field("tp")); } [INFO] [stdout] #[derive(Deserialize)] enum Tag { Idle, Building, } match [INFO] [stdout] map.next_value :: < Tag > () ? [INFO] [stdout] { [INFO] [stdout] Tag :: Idle => Ok(Self :: Value :: Idle), Tag :: Building => [INFO] [stdout] { [INFO] [stdout] struct __DockyardState_BuildingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: dockyard :: DockyardStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'de, 'context > serde :: de :: DeserializeSeed < [INFO] [stdout] 'de > for __DockyardState_BuildingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __DockyardState_Building; fn deserialize < D > [INFO] [stdout] (self, deserializer : D) -> Result < Self :: Value, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["modules", "process_token"]; [INFO] [stdout] enum Field { Modules, ProcessToken } impl < '__de > serde :: [INFO] [stdout] de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D [INFO] [stdout] :: Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`modules`, `process_token`") } fn [INFO] [stdout] visit_str < E > (self, value : & str) -> Result < Field, E > [INFO] [stdout] where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "modules" => Ok(Field :: Modules), "process_token" => [INFO] [stdout] Ok(Field :: ProcessToken), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { seed : __DockyardState_BuildingSeed < 'context > } impl < [INFO] [stdout] 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __DockyardState_Building; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct __DockyardState_Building") } [INFO] [stdout] fn visit_map < V > (self, mut map : V) -> Result < Self :: [INFO] [stdout] Value, V :: Error > where V : serde :: de :: MapAccess < [INFO] [stdout] '__de > , [INFO] [stdout] { [INFO] [stdout] let mut modules : Option < BTreeSet < ModuleId > > = None; [INFO] [stdout] let mut process_token : Option < ProcessTokenMut > = None; [INFO] [stdout] while let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Modules => [INFO] [stdout] { [INFO] [stdout] if modules.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("modules")); [INFO] [stdout] } modules = Some(map.next_value() ?); [INFO] [stdout] }, Field :: ProcessToken => [INFO] [stdout] { [INFO] [stdout] if process_token.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("process_token")); [INFO] [stdout] } process_token = [INFO] [stdout] Some(map.next_value_seed(self.seed.seed.process_token_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let modules : BTreeSet < ModuleId > = [INFO] [stdout] modules.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("modules")) ? ; let process_token : [INFO] [stdout] ProcessTokenMut = [INFO] [stdout] process_token.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("process_token")) ? ; [INFO] [stdout] Ok(__DockyardState_Building { modules, process_token, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("__DockyardState_Building", [INFO] [stdout] NAMES, Visitor { seed : self },) [INFO] [stdout] } [INFO] [stdout] } use serde :: de :: DeserializeSeed as _; let value : [INFO] [stdout] __DockyardState_Building = __DockyardState_BuildingSeed [INFO] [stdout] { [INFO] [stdout] seed : self.seed [INFO] [stdout] }.deserialize(serde :: de :: value :: MapAccessDeserializer [INFO] [stdout] :: new(map)) ? ; Ok(value.into_dst()) [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_enum("DockyardState", & [INFO] [stdout] ["Idle", "Building",], Visitor { seed : self }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: state -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20619..20623) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20624..20628) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "state_seed", span: #0 bytes(20629..20639) }) }) | None [INFO] [stdout] xxx_field: module_storage -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20702..20706) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20707..20711) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "module_storage_seed", span: #0 bytes(20712..20731) }) }) | None [INFO] [stdout] xxx_field: docking_clamp -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20803..20807) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20808..20812) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "docking_clamp_seed", span: #0 bytes(20813..20831) }) }) | None [INFO] [stdout] xxx_field: operator -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20965..20969) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20970..20974) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "person_seed", span: #0 bytes(20975..20986) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v, 'context > serde :: de :: DeserializeSeed < 'de > for crate :: [INFO] [stdout] modules :: dockyard :: DockyardSeed < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Dockyard; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["id", "state", "module_storage", "docking_clamp", "operator"]; enum [INFO] [stdout] Field { Id, State, ModuleStorage, DockingClamp, Operator } impl < [INFO] [stdout] '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`id`, `state`, `module_storage`, `docking_clamp`, `operator`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "state" => Ok(Field :: State), [INFO] [stdout] "module_storage" => Ok(Field :: ModuleStorage), [INFO] [stdout] "docking_clamp" => Ok(Field :: DockingClamp), "operator" => [INFO] [stdout] Ok(Field :: Operator), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: dockyard :: DockyardSeed < 'v, 'context [INFO] [stdout] > [INFO] [stdout] } impl < 'v, 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Dockyard; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Dockyard") } fn [INFO] [stdout] visit_map < V > (self, mut map : V) -> Result < Self :: Value, V [INFO] [stdout] :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < ModuleId > = None; let mut state : [INFO] [stdout] Option < DockyardState > = None; let mut module_storage : [INFO] [stdout] Option < ModuleStorage > = None; let mut docking_clamp : [INFO] [stdout] Option < DockingClamp > = None; let mut operator : Option < [INFO] [stdout] Option < Person > > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: State => [INFO] [stdout] { [INFO] [stdout] if state.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("state")); [INFO] [stdout] } state = [INFO] [stdout] Some(map.next_value_seed(self.seed.state_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: ModuleStorage => [INFO] [stdout] { [INFO] [stdout] if module_storage.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("module_storage")); [INFO] [stdout] } module_storage = [INFO] [stdout] Some(map.next_value_seed(self.seed.module_storage_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, Field :: DockingClamp => [INFO] [stdout] { [INFO] [stdout] if docking_clamp.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("docking_clamp")); [INFO] [stdout] } docking_clamp = [INFO] [stdout] Some(map.next_value_seed(self.seed.docking_clamp_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, Field :: Operator => [INFO] [stdout] { [INFO] [stdout] if operator.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("operator")); [INFO] [stdout] } operator = [INFO] [stdout] Some(map.next_value_seed(self.seed.person_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : ModuleId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let state : DockyardState = [INFO] [stdout] state.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("state")) ? ; let module_storage : ModuleStorage [INFO] [stdout] = [INFO] [stdout] module_storage.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("module_storage")) ? ; let docking_clamp : [INFO] [stdout] DockingClamp = [INFO] [stdout] docking_clamp.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("docking_clamp")) ? ; let operator : Option < [INFO] [stdout] Person > = [INFO] [stdout] operator.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("operator")) ? ; [INFO] [stdout] Ok(Dockyard [INFO] [stdout] { id, state, module_storage, docking_clamp, operator, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Dockyard", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: personnel -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(32313..32317) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(32318..32322) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "person_seed", span: #0 bytes(32323..32334) }) }) | None [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: modules [INFO] [stdout] :: personnel_area :: PersonnelAreaSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = PersonnelArea; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["personnel", "id"]; enum Field [INFO] [stdout] { Personnel, Id } impl < '__de > serde :: de :: Deserialize < '__de > [INFO] [stdout] for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`personnel`, `id`") } fn visit_str < [INFO] [stdout] E > (self, value : & str) -> Result < Field, E > where E : [INFO] [stdout] serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "personnel" => Ok(Field :: Personnel), "id" => [INFO] [stdout] Ok(Field :: Id), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: personnel_area :: PersonnelAreaSeed < [INFO] [stdout] 'v > [INFO] [stdout] } impl < 'v, '__de > serde :: de :: Visitor < '__de > for Visitor < 'v [INFO] [stdout] > [INFO] [stdout] { [INFO] [stdout] type Value = PersonnelArea; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct PersonnelArea") } fn visit_map < V > [INFO] [stdout] (self, mut map : V) -> Result < Self :: Value, V :: Error > where [INFO] [stdout] V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut personnel : Option < Vec < Person > > = None; let mut [INFO] [stdout] id : Option < ModuleId > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Personnel => [INFO] [stdout] { [INFO] [stdout] if personnel.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("personnel")); [INFO] [stdout] } personnel = [INFO] [stdout] Some(map.next_value_seed(self.seed.person_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let personnel : Vec < Person > = [INFO] [stdout] personnel.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("personnel")) ? ; let id : ModuleId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; Ok(PersonnelArea { personnel, id, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("PersonnelArea", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] warning: type `__AssemblerState_Idle` should have an upper camel case name [INFO] [stdout] --> core/src/modules/assembler.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum AssemblerState { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssemblerStateIdle` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__AssemblerState_Assembling` should have an upper camel case name [INFO] [stdout] --> core/src/modules/assembler.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum AssemblerState { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssemblerStateAssembling` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__AssemblerState_AssemblingSeed` should have an upper camel case name [INFO] [stdout] --> core/src/modules/assembler.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum AssemblerState { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssemblerStateAssemblingSeed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__DockyardState_Idle` should have an upper camel case name [INFO] [stdout] --> core/src/modules/dockyard.rs:31:6 [INFO] [stdout] | [INFO] [stdout] 31 | enum DockyardState { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DockyardStateIdle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__DockyardState_Building` should have an upper camel case name [INFO] [stdout] --> core/src/modules/dockyard.rs:31:6 [INFO] [stdout] | [INFO] [stdout] 31 | enum DockyardState { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DockyardStateBuilding` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__DockyardState_BuildingSeed` should have an upper camel case name [INFO] [stdout] --> core/src/modules/dockyard.rs:31:6 [INFO] [stdout] | [INFO] [stdout] 31 | enum DockyardState { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DockyardStateBuildingSeed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::CORE_PACKAGE_ID` [INFO] [stdout] --> core/src/modules/personnel_area.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::CORE_PACKAGE_ID; [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: `DockyardDynSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::modules::{CoreModule, DockyardDynSeed, ModuleVisitor, ModuleVisitorMut}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModuleStorageSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:4:122 [INFO] [stdout] | [INFO] [stdout] 4 | ...ModuleCapability, ModuleConsole, ModuleId, ModuleStorage, ModuleStorageSeed, PackageId, ProcessTokenContext, TradingConsole}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dudes_in_space_api::utils::tagged_option::TaggedOptionSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use dudes_in_space_api::utils::tagged_option::TaggedOptionSeed; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DockingClampSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:8:48 [INFO] [stdout] | [INFO] [stdout] 8 | use dudes_in_space_api::vessel::{DockingClamp, DockingClampSeed, VesselModuleInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserialize` [INFO] [stdout] --> core/src/modules/personnel_area.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `from_intermediate` [INFO] [stdout] --> core/src/modules/personnel_area.rs:15:40 [INFO] [stdout] | [INFO] [stdout] 15 | use serde_intermediate::{Intermediate, from_intermediate, to_intermediate}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `from_intermediate_seed` [INFO] [stdout] --> core/src/modules/shuttle.rs:7:72 [INFO] [stdout] | [INFO] [stdout] 7 | DynDeserializeSeed, DynDeserializeSeedVault, DynSerialize, TypeId, from_intermediate_seed, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/modules/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use personnel_area::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/modules/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use personnel_area::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/modules/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use shuttle::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/modules/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use shuttle::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use build_vessel_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use build_vessel_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:8:34 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::{BTreeSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use craft_modules_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use craft_modules_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefMut` [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use craft_vessel_from_scratch_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use craft_vessel_from_scratch_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `craft_vessel_from_scratch_objective::*` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use craft_vessel_from_scratch_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use mine_asteroids_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use mine_asteroids_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use scavenge_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use scavenge_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use gather_research_data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use gather_research_data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PersonId` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use dudes_in_space_api::person::{Objective, ObjectiveStatus, PersonId, PersonLogger}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/trading/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use buy_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use buy_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `buy_goods_objective::*` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use buy_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PersonId` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use dudes_in_space_api::person::{Objective, ObjectiveStatus, PersonId, PersonLogger}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/trading/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use sell_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use sell_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sell_goods_objective::*` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use sell_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/trading/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use trade_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use trade_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] deserialize_seed_tagged_enum: [ [INFO] [stdout] Variant { [INFO] [stdout] attrs: [], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Idle", [INFO] [stdout] span: #0 bytes(3002..3006), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Unit, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] Variant { [INFO] [stdout] attrs: [ [INFO] [stdout] Attribute { [INFO] [stdout] pound_token: Pound, [INFO] [stdout] style: AttrStyle::Outer, [INFO] [stdout] bracket_token: Bracket, [INFO] [stdout] meta: Meta::List { [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "deserialize_seed_xxx", [INFO] [stdout] span: #0 bytes(3014..3034), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] delimiter: MacroDelimiter::Paren( [INFO] [stdout] Paren, [INFO] [stdout] ), [INFO] [stdout] tokens: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "seeds", [INFO] [stdout] span: #0 bytes(3035..3040), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '=', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3041..3042), [INFO] [stdout] }, [INFO] [stdout] Group { [INFO] [stdout] delimiter: Bracket, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Group { [INFO] [stdout] delimiter: Parenthesis, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(3045..3058), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: ',', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3058..3059), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(3060..3064), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3064..3065), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3065..3069), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3069..3070), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3070..3074), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(3074..3075), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(3075..3093), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(3044..3094), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(3043..3095), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Assembling", [INFO] [stdout] span: #0 bytes(3102..3112), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Named { [INFO] [stdout] brace_token: Brace, [INFO] [stdout] named: [ [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "recipe_index", [INFO] [stdout] span: #0 bytes(3123..3135), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "usize", [INFO] [stdout] span: #0 bytes(3137..3142), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "deploy", [INFO] [stdout] span: #0 bytes(3152..3158), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "bool", [INFO] [stdout] span: #0 bytes(3160..3164), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(3174..3187), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "ProcessTokenMut", [INFO] [stdout] span: #0 bytes(3189..3204), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] ] [INFO] [stdout] variant_attr: DeserializeSeedXXXVariantAttributes { [INFO] [stdout] seeds: [ [INFO] [stdout] ( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(3045..3058), [INFO] [stdout] }, [INFO] [stdout] Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Path { [INFO] [stdout] attrs: [], [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(3060..3064), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3065..3069), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(3070..3074), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(3075..3093), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] } [INFO] [stdout] xxx_field: recipe_index -> None | None [INFO] [stdout] xxx_field: deploy -> None | None [INFO] [stdout] xxx_field: process_token -> None | Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(3060..3064) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3065..3069) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3070..3074) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "process_token_seed", span: #0 bytes(3075..3093) }) }) [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < '__de, 'context > serde :: de :: DeserializeSeed < '__de > for crate :: [INFO] [stdout] modules :: assembler :: AssemblerStateSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblerState; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] #[derive(Deserialize)] struct __AssemblerState_Idle; struct [INFO] [stdout] __AssemblerState_Assembling [INFO] [stdout] { [INFO] [stdout] recipe_index : usize, deploy : bool, process_token : [INFO] [stdout] ProcessTokenMut, [INFO] [stdout] }; impl __AssemblerState_Assembling [INFO] [stdout] { [INFO] [stdout] fn into_dst(self) -> AssemblerState [INFO] [stdout] { [INFO] [stdout] AssemblerState :: Assembling [INFO] [stdout] { [INFO] [stdout] recipe_index : self.recipe_index, deploy : self.deploy, [INFO] [stdout] process_token : self.process_token, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: assembler :: AssemblerStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = AssemblerState; fn [INFO] [stdout] expecting(& self, f : & mut std :: fmt :: Formatter) -> std :: fmt [INFO] [stdout] :: Result { write! (f, "map") } fn visit_map < A : serde :: de :: [INFO] [stdout] MapAccess < '__de >> (self, mut map : A) -> Result < Self :: [INFO] [stdout] Value, A :: Error > [INFO] [stdout] { [INFO] [stdout] let key = map.next_key :: < String > () ? ; if key.as_deref() [INFO] [stdout] != Some("tp") [INFO] [stdout] { return Err(serde :: de :: Error :: missing_field("tp")); } [INFO] [stdout] #[derive(Deserialize)] enum Tag { Idle, Assembling, } match [INFO] [stdout] map.next_value :: < Tag > () ? [INFO] [stdout] { [INFO] [stdout] Tag :: Idle => Ok(Self :: Value :: Idle), Tag :: Assembling [INFO] [stdout] => [INFO] [stdout] { [INFO] [stdout] struct __AssemblerState_AssemblingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: assembler :: AssemblerStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'de, 'context > serde :: de :: DeserializeSeed < [INFO] [stdout] 'de > for __AssemblerState_AssemblingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __AssemblerState_Assembling; fn deserialize < D [INFO] [stdout] > (self, deserializer : D) -> Result < Self :: Value, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["recipe_index", "deploy", "process_token"]; enum Field [INFO] [stdout] { RecipeIndex, Deploy, ProcessToken } impl < '__de > serde [INFO] [stdout] :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D [INFO] [stdout] :: Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`recipe_index`, `deploy`, `process_token`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "recipe_index" => Ok(Field :: RecipeIndex), "deploy" => [INFO] [stdout] Ok(Field :: Deploy), "process_token" => [INFO] [stdout] Ok(Field :: ProcessToken), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { seed : __AssemblerState_AssemblingSeed < 'context > } impl [INFO] [stdout] < 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __AssemblerState_Assembling; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("struct __AssemblerState_Assembling") [INFO] [stdout] } fn visit_map < V > (self, mut map : V) -> Result < Self :: [INFO] [stdout] Value, V :: Error > where V : serde :: de :: MapAccess < [INFO] [stdout] '__de > , [INFO] [stdout] { [INFO] [stdout] let mut recipe_index : Option < usize > = None; let mut [INFO] [stdout] deploy : Option < bool > = None; let mut process_token : [INFO] [stdout] Option < ProcessTokenMut > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: RecipeIndex => [INFO] [stdout] { [INFO] [stdout] if recipe_index.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("recipe_index")); [INFO] [stdout] } recipe_index = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Deploy => [INFO] [stdout] { [INFO] [stdout] if deploy.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("deploy")); [INFO] [stdout] } deploy = Some(map.next_value() ?); [INFO] [stdout] }, Field :: ProcessToken => [INFO] [stdout] { [INFO] [stdout] if process_token.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("process_token")); [INFO] [stdout] } process_token = [INFO] [stdout] Some(map.next_value_seed(self.seed.seed.process_token_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let recipe_index : usize = [INFO] [stdout] recipe_index.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("recipe_index")) ? ; let deploy : bool = [INFO] [stdout] deploy.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("deploy")) ? ; let process_token : [INFO] [stdout] ProcessTokenMut = [INFO] [stdout] process_token.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("process_token")) ? ; [INFO] [stdout] Ok(__AssemblerState_Assembling [INFO] [stdout] { recipe_index, deploy, process_token, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("__AssemblerState_Assembling", [INFO] [stdout] NAMES, Visitor { seed : self },) [INFO] [stdout] } [INFO] [stdout] } use serde :: de :: DeserializeSeed as _; let value : [INFO] [stdout] __AssemblerState_Assembling = [INFO] [stdout] __AssemblerState_AssemblingSeed [INFO] [stdout] { [INFO] [stdout] seed : self.seed [INFO] [stdout] }.deserialize(serde :: de :: value :: MapAccessDeserializer [INFO] [stdout] :: new(map)) ? ; Ok(value.into_dst()) [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_enum("AssemblerState", & [INFO] [stdout] ["Idle", "Assembling",], Visitor { seed : self }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: recipes -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(3753..3757) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3758..3762) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "recipe_seq_seed", span: #0 bytes(3763..3778) }) }) | None [INFO] [stdout] xxx_field: state -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(3849..3853) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(3854..3858) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "state_seed", span: #0 bytes(3859..3869) }) }) | None [INFO] [stdout] xxx_field: storage -> None | None [INFO] [stdout] xxx_field: operator -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(4023..4027) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(4028..4032) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "person_seed", span: #0 bytes(4033..4044) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v, 'context > serde :: de :: DeserializeSeed < 'de > for crate :: [INFO] [stdout] modules :: assembler :: AssemblerSeed < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Assembler; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["id", "recipes", "state", "storage", "operator"]; enum Field [INFO] [stdout] { Id, Recipes, State, Storage, Operator } impl < '__de > serde :: de [INFO] [stdout] :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`id`, `recipes`, `state`, `storage`, `operator`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "recipes" => Ok(Field :: Recipes), [INFO] [stdout] "state" => Ok(Field :: State), "storage" => [INFO] [stdout] Ok(Field :: Storage), "operator" => Ok(Field :: Operator), _ [INFO] [stdout] => Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: assembler :: AssemblerSeed < 'v, [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'v, 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Assembler; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Assembler") } [INFO] [stdout] fn visit_map < V > (self, mut map : V) -> Result < Self :: Value, [INFO] [stdout] V :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < ModuleId > = None; let mut recipes : [INFO] [stdout] Option < Vec < AssemblyRecipe > > = None; let mut state : [INFO] [stdout] Option < AssemblerState > = None; let mut storage : Option < [INFO] [stdout] ItemStorage > = None; let mut operator : Option < Option < [INFO] [stdout] Person > > = None; while let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Recipes => [INFO] [stdout] { [INFO] [stdout] if recipes.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("recipes")); [INFO] [stdout] } recipes = [INFO] [stdout] Some(map.next_value_seed(self.seed.recipe_seq_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, Field :: State => [INFO] [stdout] { [INFO] [stdout] if state.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("state")); [INFO] [stdout] } state = [INFO] [stdout] Some(map.next_value_seed(self.seed.state_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: Storage => [INFO] [stdout] { [INFO] [stdout] if storage.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("storage")); [INFO] [stdout] } storage = Some(map.next_value() ?); [INFO] [stdout] }, Field :: Operator => [INFO] [stdout] { [INFO] [stdout] if operator.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("operator")); [INFO] [stdout] } operator = [INFO] [stdout] Some(map.next_value_seed(self.seed.person_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : ModuleId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let recipes : Vec < AssemblyRecipe > = [INFO] [stdout] recipes.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("recipes")) ? ; let state : AssemblerState = [INFO] [stdout] state.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("state")) ? ; let storage : ItemStorage = [INFO] [stdout] storage.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("storage")) ? ; let operator : Option < Person > [INFO] [stdout] = [INFO] [stdout] operator.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("operator")) ? ; [INFO] [stdout] Ok(Assembler { id, recipes, state, storage, operator, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Assembler", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserialize_seed_tagged_enum: [ [INFO] [stdout] Variant { [INFO] [stdout] attrs: [], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Idle", [INFO] [stdout] span: #0 bytes(19889..19893), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Unit, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] Variant { [INFO] [stdout] attrs: [ [INFO] [stdout] Attribute { [INFO] [stdout] pound_token: Pound, [INFO] [stdout] style: AttrStyle::Outer, [INFO] [stdout] bracket_token: Bracket, [INFO] [stdout] meta: Meta::List { [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "deserialize_seed_xxx", [INFO] [stdout] span: #0 bytes(19901..19921), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] delimiter: MacroDelimiter::Paren( [INFO] [stdout] Paren, [INFO] [stdout] ), [INFO] [stdout] tokens: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "seeds", [INFO] [stdout] span: #0 bytes(19922..19927), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '=', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19928..19929), [INFO] [stdout] }, [INFO] [stdout] Group { [INFO] [stdout] delimiter: Bracket, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Group { [INFO] [stdout] delimiter: Parenthesis, [INFO] [stdout] stream: TokenStream [ [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(19932..19945), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: ',', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19945..19946), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(19947..19951), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19951..19952), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19952..19956), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19956..19957), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19957..19961), [INFO] [stdout] }, [INFO] [stdout] Punct { [INFO] [stdout] ch: '.', [INFO] [stdout] spacing: Alone, [INFO] [stdout] span: #0 bytes(19961..19962), [INFO] [stdout] }, [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(19962..19980), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(19931..19981), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] span: #0 bytes(19930..19982), [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "Building", [INFO] [stdout] span: #0 bytes(19989..19997), [INFO] [stdout] }, [INFO] [stdout] fields: Fields::Named { [INFO] [stdout] brace_token: Brace, [INFO] [stdout] named: [ [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "modules", [INFO] [stdout] span: #0 bytes(20008..20015), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "BTreeSet", [INFO] [stdout] span: #0 bytes(20017..20025), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::AngleBracketed { [INFO] [stdout] colon2_token: None, [INFO] [stdout] lt_token: Lt, [INFO] [stdout] args: [ [INFO] [stdout] GenericArgument::Type( [INFO] [stdout] Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "ModuleId", [INFO] [stdout] span: #0 bytes(20026..20034), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] gt_token: Gt, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] Field { [INFO] [stdout] attrs: [], [INFO] [stdout] vis: Visibility::Inherited, [INFO] [stdout] mutability: FieldMutability::None, [INFO] [stdout] ident: Some( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(20045..20058), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] colon_token: Some( [INFO] [stdout] Colon, [INFO] [stdout] ), [INFO] [stdout] ty: Type::Path { [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "ProcessTokenMut", [INFO] [stdout] span: #0 bytes(20060..20075), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] Comma, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] discriminant: None, [INFO] [stdout] }, [INFO] [stdout] ] [INFO] [stdout] variant_attr: DeserializeSeedXXXVariantAttributes { [INFO] [stdout] seeds: [ [INFO] [stdout] ( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token", [INFO] [stdout] span: #0 bytes(19932..19945), [INFO] [stdout] }, [INFO] [stdout] Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Field { [INFO] [stdout] attrs: [], [INFO] [stdout] base: Expr::Path { [INFO] [stdout] attrs: [], [INFO] [stdout] qself: None, [INFO] [stdout] path: Path { [INFO] [stdout] leading_colon: None, [INFO] [stdout] segments: [ [INFO] [stdout] PathSegment { [INFO] [stdout] ident: Ident { [INFO] [stdout] ident: "self", [INFO] [stdout] span: #0 bytes(19947..19951), [INFO] [stdout] }, [INFO] [stdout] arguments: PathArguments::None, [INFO] [stdout] }, [INFO] [stdout] ], [INFO] [stdout] }, [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19952..19956), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "seed", [INFO] [stdout] span: #0 bytes(19957..19961), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] dot_token: Dot, [INFO] [stdout] member: Member::Named( [INFO] [stdout] Ident { [INFO] [stdout] ident: "process_token_seed", [INFO] [stdout] span: #0 bytes(19962..19980), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] }, [INFO] [stdout] ), [INFO] [stdout] ], [INFO] [stdout] } [INFO] [stdout] xxx_field: modules -> None | None [INFO] [stdout] xxx_field: process_token -> None | Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(19947..19951) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(19952..19956) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(19957..19961) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "process_token_seed", span: #0 bytes(19962..19980) }) }) [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < '__de, 'context > serde :: de :: DeserializeSeed < '__de > for crate :: [INFO] [stdout] modules :: dockyard :: DockyardStateSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = DockyardState; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] #[derive(Deserialize)] struct __DockyardState_Idle; struct [INFO] [stdout] __DockyardState_Building [INFO] [stdout] { [INFO] [stdout] modules : BTreeSet < ModuleId > , process_token : ProcessTokenMut, [INFO] [stdout] }; impl __DockyardState_Building [INFO] [stdout] { [INFO] [stdout] fn into_dst(self) -> DockyardState [INFO] [stdout] { [INFO] [stdout] DockyardState :: Building [INFO] [stdout] { [INFO] [stdout] modules : self.modules, process_token : self.process_token, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: dockyard :: DockyardStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = DockyardState; fn [INFO] [stdout] expecting(& self, f : & mut std :: fmt :: Formatter) -> std :: fmt [INFO] [stdout] :: Result { write! (f, "map") } fn visit_map < A : serde :: de :: [INFO] [stdout] MapAccess < '__de >> (self, mut map : A) -> Result < Self :: [INFO] [stdout] Value, A :: Error > [INFO] [stdout] { [INFO] [stdout] let key = map.next_key :: < String > () ? ; if key.as_deref() [INFO] [stdout] != Some("tp") [INFO] [stdout] { return Err(serde :: de :: Error :: missing_field("tp")); } [INFO] [stdout] #[derive(Deserialize)] enum Tag { Idle, Building, } match [INFO] [stdout] map.next_value :: < Tag > () ? [INFO] [stdout] { [INFO] [stdout] Tag :: Idle => Ok(Self :: Value :: Idle), Tag :: Building => [INFO] [stdout] { [INFO] [stdout] struct __DockyardState_BuildingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: dockyard :: DockyardStateSeed < [INFO] [stdout] 'context > [INFO] [stdout] } impl < 'de, 'context > serde :: de :: DeserializeSeed < [INFO] [stdout] 'de > for __DockyardState_BuildingSeed < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __DockyardState_Building; fn deserialize < D > [INFO] [stdout] (self, deserializer : D) -> Result < Self :: Value, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["modules", "process_token"]; [INFO] [stdout] enum Field { Modules, ProcessToken } impl < '__de > serde :: [INFO] [stdout] de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D [INFO] [stdout] :: Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`modules`, `process_token`") } fn [INFO] [stdout] visit_str < E > (self, value : & str) -> Result < Field, E > [INFO] [stdout] where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "modules" => Ok(Field :: Modules), "process_token" => [INFO] [stdout] Ok(Field :: ProcessToken), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'context > [INFO] [stdout] { seed : __DockyardState_BuildingSeed < 'context > } impl < [INFO] [stdout] 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'context > [INFO] [stdout] { [INFO] [stdout] type Value = __DockyardState_Building; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct __DockyardState_Building") } [INFO] [stdout] fn visit_map < V > (self, mut map : V) -> Result < Self :: [INFO] [stdout] Value, V :: Error > where V : serde :: de :: MapAccess < [INFO] [stdout] '__de > , [INFO] [stdout] { [INFO] [stdout] let mut modules : Option < BTreeSet < ModuleId > > = None; [INFO] [stdout] let mut process_token : Option < ProcessTokenMut > = None; [INFO] [stdout] while let Some(key) = map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Modules => [INFO] [stdout] { [INFO] [stdout] if modules.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("modules")); [INFO] [stdout] } modules = Some(map.next_value() ?); [INFO] [stdout] }, Field :: ProcessToken => [INFO] [stdout] { [INFO] [stdout] if process_token.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("process_token")); [INFO] [stdout] } process_token = [INFO] [stdout] Some(map.next_value_seed(self.seed.seed.process_token_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let modules : BTreeSet < ModuleId > = [INFO] [stdout] modules.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("modules")) ? ; let process_token : [INFO] [stdout] ProcessTokenMut = [INFO] [stdout] process_token.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("process_token")) ? ; [INFO] [stdout] Ok(__DockyardState_Building { modules, process_token, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("__DockyardState_Building", [INFO] [stdout] NAMES, Visitor { seed : self },) [INFO] [stdout] } [INFO] [stdout] } use serde :: de :: DeserializeSeed as _; let value : [INFO] [stdout] __DockyardState_Building = __DockyardState_BuildingSeed [INFO] [stdout] { [INFO] [stdout] seed : self.seed [INFO] [stdout] }.deserialize(serde :: de :: value :: MapAccessDeserializer [INFO] [stdout] :: new(map)) ? ; Ok(value.into_dst()) [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_enum("DockyardState", & [INFO] [stdout] ["Idle", "Building",], Visitor { seed : self }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] xxx_field: state -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20619..20623) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20624..20628) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "state_seed", span: #0 bytes(20629..20639) }) }) | None [INFO] [stdout] xxx_field: module_storage -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20702..20706) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20707..20711) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "module_storage_seed", span: #0 bytes(20712..20731) }) }) | None [INFO] [stdout] xxx_field: docking_clamp -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20803..20807) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20808..20812) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "docking_clamp_seed", span: #0 bytes(20813..20831) }) }) | None [INFO] [stdout] xxx_field: operator -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(20965..20969) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(20970..20974) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "person_seed", span: #0 bytes(20975..20986) }) }) | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v, 'context > serde :: de :: DeserializeSeed < 'de > for crate :: [INFO] [stdout] modules :: dockyard :: DockyardSeed < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Dockyard; fn deserialize < D > (self, deserializer : D) -> [INFO] [stdout] Result < Self :: Value, D :: Error > where D : serde :: de :: Deserializer [INFO] [stdout] < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & [INFO] [stdout] ["id", "state", "module_storage", "docking_clamp", "operator"]; enum [INFO] [stdout] Field { Id, State, ModuleStorage, DockingClamp, Operator } impl < [INFO] [stdout] '__de > serde :: de :: Deserialize < '__de > for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { [INFO] [stdout] formatter.write_str("`id`, `state`, `module_storage`, `docking_clamp`, `operator`") [INFO] [stdout] } fn visit_str < E > (self, value : & str) -> Result < [INFO] [stdout] Field, E > where E : serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "id" => Ok(Field :: Id), "state" => Ok(Field :: State), [INFO] [stdout] "module_storage" => Ok(Field :: ModuleStorage), [INFO] [stdout] "docking_clamp" => Ok(Field :: DockingClamp), "operator" => [INFO] [stdout] Ok(Field :: Operator), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: dockyard :: DockyardSeed < 'v, 'context [INFO] [stdout] > [INFO] [stdout] } impl < 'v, 'context, '__de > serde :: de :: Visitor < '__de > for [INFO] [stdout] Visitor < 'v, 'context > [INFO] [stdout] { [INFO] [stdout] type Value = Dockyard; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result { formatter.write_str("struct Dockyard") } fn [INFO] [stdout] visit_map < V > (self, mut map : V) -> Result < Self :: Value, V [INFO] [stdout] :: Error > where V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut id : Option < ModuleId > = None; let mut state : [INFO] [stdout] Option < DockyardState > = None; let mut module_storage : [INFO] [stdout] Option < ModuleStorage > = None; let mut docking_clamp : [INFO] [stdout] Option < DockingClamp > = None; let mut operator : Option < [INFO] [stdout] Option < Person > > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, Field :: State => [INFO] [stdout] { [INFO] [stdout] if state.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("state")); [INFO] [stdout] } state = [INFO] [stdout] Some(map.next_value_seed(self.seed.state_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: ModuleStorage => [INFO] [stdout] { [INFO] [stdout] if module_storage.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("module_storage")); [INFO] [stdout] } module_storage = [INFO] [stdout] Some(map.next_value_seed(self.seed.module_storage_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, Field :: DockingClamp => [INFO] [stdout] { [INFO] [stdout] if docking_clamp.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: [INFO] [stdout] duplicate_field("docking_clamp")); [INFO] [stdout] } docking_clamp = [INFO] [stdout] Some(map.next_value_seed(self.seed.docking_clamp_seed.clone()) [INFO] [stdout] ? .into()); [INFO] [stdout] }, Field :: Operator => [INFO] [stdout] { [INFO] [stdout] if operator.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("operator")); [INFO] [stdout] } operator = [INFO] [stdout] Some(map.next_value_seed(self.seed.person_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let id : ModuleId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; let state : DockyardState = [INFO] [stdout] state.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("state")) ? ; let module_storage : ModuleStorage [INFO] [stdout] = [INFO] [stdout] module_storage.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("module_storage")) ? ; let docking_clamp : [INFO] [stdout] DockingClamp = [INFO] [stdout] docking_clamp.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("docking_clamp")) ? ; let operator : Option < [INFO] [stdout] Person > = [INFO] [stdout] operator.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("operator")) ? ; [INFO] [stdout] Ok(Dockyard [INFO] [stdout] { id, state, module_storage, docking_clamp, operator, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("Dockyard", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] xxx_field: personnel -> Some(Expr::Field { attrs: [], base: Expr::Field { attrs: [], base: Expr::Path { attrs: [], qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "self", span: #0 bytes(32313..32317) }, arguments: PathArguments::None }] } }, dot_token: Dot, member: Member::Named(Ident { ident: "seed", span: #0 bytes(32318..32322) }) }, dot_token: Dot, member: Member::Named(Ident { ident: "person_seed", span: #0 bytes(32323..32334) }) }) | None [INFO] [stdout] xxx_field: id -> None | None [INFO] [stdout] `dyn_serde_macro::DeserializeSeedXXX` macro output: impl < 'de, 'v > serde :: de :: DeserializeSeed < 'de > for crate :: modules [INFO] [stdout] :: personnel_area :: PersonnelAreaSeed < 'v > [INFO] [stdout] { [INFO] [stdout] type Value = PersonnelArea; fn deserialize < D > (self, deserializer : D) [INFO] [stdout] -> Result < Self :: Value, D :: Error > where D : serde :: de :: [INFO] [stdout] Deserializer < 'de > , [INFO] [stdout] { [INFO] [stdout] const NAMES : & [& str] = & ["personnel", "id"]; enum Field [INFO] [stdout] { Personnel, Id } impl < '__de > serde :: de :: Deserialize < '__de > [INFO] [stdout] for Field [INFO] [stdout] { [INFO] [stdout] fn deserialize < D > (deserializer : D) -> Result < Self, D :: [INFO] [stdout] Error > where D : serde :: de :: Deserializer < '__de > , [INFO] [stdout] { [INFO] [stdout] struct FieldVisitor; impl < '__de > serde :: de :: Visitor < [INFO] [stdout] '__de > for FieldVisitor [INFO] [stdout] { [INFO] [stdout] type Value = Field; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) [INFO] [stdout] -> std :: fmt :: Result [INFO] [stdout] { formatter.write_str("`personnel`, `id`") } fn visit_str < [INFO] [stdout] E > (self, value : & str) -> Result < Field, E > where E : [INFO] [stdout] serde :: de :: Error, [INFO] [stdout] { [INFO] [stdout] match value [INFO] [stdout] { [INFO] [stdout] "personnel" => Ok(Field :: Personnel), "id" => [INFO] [stdout] Ok(Field :: Id), _ => [INFO] [stdout] Err(serde :: de :: Error :: unknown_field(value, NAMES)), [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } deserializer.deserialize_identifier(FieldVisitor) [INFO] [stdout] } [INFO] [stdout] } struct Visitor < 'v > [INFO] [stdout] { [INFO] [stdout] seed : crate :: modules :: personnel_area :: PersonnelAreaSeed < [INFO] [stdout] 'v > [INFO] [stdout] } impl < 'v, '__de > serde :: de :: Visitor < '__de > for Visitor < 'v [INFO] [stdout] > [INFO] [stdout] { [INFO] [stdout] type Value = PersonnelArea; fn [INFO] [stdout] expecting(& self, formatter : & mut std :: fmt :: Formatter) -> [INFO] [stdout] std :: fmt :: Result [INFO] [stdout] { formatter.write_str("struct PersonnelArea") } fn visit_map < V > [INFO] [stdout] (self, mut map : V) -> Result < Self :: Value, V :: Error > where [INFO] [stdout] V : serde :: de :: MapAccess < '__de > , [INFO] [stdout] { [INFO] [stdout] let mut personnel : Option < Vec < Person > > = None; let mut [INFO] [stdout] id : Option < ModuleId > = None; while let Some(key) = [INFO] [stdout] map.next_key() ? [INFO] [stdout] { [INFO] [stdout] match key [INFO] [stdout] { [INFO] [stdout] Field :: Personnel => [INFO] [stdout] { [INFO] [stdout] if personnel.is_some() [INFO] [stdout] { [INFO] [stdout] return [INFO] [stdout] Err(serde :: de :: Error :: duplicate_field("personnel")); [INFO] [stdout] } personnel = [INFO] [stdout] Some(map.next_value_seed(self.seed.person_seed.clone()) ? [INFO] [stdout] .into()); [INFO] [stdout] }, Field :: Id => [INFO] [stdout] { [INFO] [stdout] if id.is_some() [INFO] [stdout] { [INFO] [stdout] return Err(serde :: de :: Error :: duplicate_field("id")); [INFO] [stdout] } id = Some(map.next_value() ?); [INFO] [stdout] }, [INFO] [stdout] } [INFO] [stdout] } let personnel : Vec < Person > = [INFO] [stdout] personnel.ok_or_else(|| serde :: de :: Error :: [INFO] [stdout] missing_field("personnel")) ? ; let id : ModuleId = [INFO] [stdout] id.ok_or_else(|| serde :: de :: Error :: missing_field("id")) [INFO] [stdout] ? ; Ok(PersonnelArea { personnel, id, }) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] deserializer.deserialize_struct("PersonnelArea", NAMES, Visitor [INFO] [stdout] { seed : self },) [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] warning: type `__AssemblerState_Idle` should have an upper camel case name [INFO] [stdout] --> core/src/modules/assembler.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum AssemblerState { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssemblerStateIdle` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__AssemblerState_Assembling` should have an upper camel case name [INFO] [stdout] --> core/src/modules/assembler.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum AssemblerState { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssemblerStateAssembling` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__AssemblerState_AssemblingSeed` should have an upper camel case name [INFO] [stdout] --> core/src/modules/assembler.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub enum AssemblerState { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssemblerStateAssemblingSeed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__DockyardState_Idle` should have an upper camel case name [INFO] [stdout] --> core/src/modules/dockyard.rs:31:6 [INFO] [stdout] | [INFO] [stdout] 31 | enum DockyardState { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DockyardStateIdle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__DockyardState_Building` should have an upper camel case name [INFO] [stdout] --> core/src/modules/dockyard.rs:31:6 [INFO] [stdout] | [INFO] [stdout] 31 | enum DockyardState { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DockyardStateBuilding` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `__DockyardState_BuildingSeed` should have an upper camel case name [INFO] [stdout] --> core/src/modules/dockyard.rs:31:6 [INFO] [stdout] | [INFO] [stdout] 31 | enum DockyardState { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DockyardStateBuildingSeed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::CORE_PACKAGE_ID` [INFO] [stdout] --> core/src/modules/personnel_area.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::CORE_PACKAGE_ID; [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: `DockyardDynSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::modules::{CoreModule, DockyardDynSeed, ModuleVisitor, ModuleVisitorMut}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModuleStorageSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:4:122 [INFO] [stdout] | [INFO] [stdout] 4 | ...ModuleCapability, ModuleConsole, ModuleId, ModuleStorage, ModuleStorageSeed, PackageId, ProcessTokenContext, TradingConsole}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dudes_in_space_api::utils::tagged_option::TaggedOptionSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use dudes_in_space_api::utils::tagged_option::TaggedOptionSeed; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DockingClampSeed` [INFO] [stdout] --> core/src/modules/personnel_area.rs:8:48 [INFO] [stdout] | [INFO] [stdout] 8 | use dudes_in_space_api::vessel::{DockingClamp, DockingClampSeed, VesselModuleInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Deserialize` [INFO] [stdout] --> core/src/modules/personnel_area.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `from_intermediate` [INFO] [stdout] --> core/src/modules/personnel_area.rs:15:40 [INFO] [stdout] | [INFO] [stdout] 15 | use serde_intermediate::{Intermediate, from_intermediate, to_intermediate}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `from_intermediate_seed` [INFO] [stdout] --> core/src/modules/shuttle.rs:7:72 [INFO] [stdout] | [INFO] [stdout] 7 | DynDeserializeSeed, DynDeserializeSeedVault, DynSerialize, TypeId, from_intermediate_seed, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/modules/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use personnel_area::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/modules/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use personnel_area::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/modules/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use shuttle::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/modules/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use shuttle::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use build_vessel_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use build_vessel_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:8:34 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::{BTreeSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use craft_modules_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use craft_modules_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefMut` [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use craft_vessel_from_scratch_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use craft_vessel_from_scratch_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `craft_vessel_from_scratch_objective::*` [INFO] [stdout] --> core/src/objectives/crafting/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use craft_vessel_from_scratch_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use mine_asteroids_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use mine_asteroids_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use scavenge_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use scavenge_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use gather_research_data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/gathering/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use gather_research_data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PersonId` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use dudes_in_space_api::person::{Objective, ObjectiveStatus, PersonId, PersonLogger}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/trading/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use buy_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use buy_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `buy_goods_objective::*` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use buy_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PersonId` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:3:62 [INFO] [stdout] | [INFO] [stdout] 3 | use dudes_in_space_api::person::{Objective, ObjectiveStatus, PersonId, PersonLogger}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/trading/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use sell_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use sell_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sell_goods_objective::*` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use sell_goods_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> core/src/objectives/trading/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use trade_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(crate)` [INFO] [stdout] --> core/src/objectives/trading/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use trade_objective::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModuleConsole` [INFO] [stdout] --> core/src/modules/shuttle.rs:2:60 [INFO] [stdout] | [INFO] [stdout] 2 | use dudes_in_space_api::module::{Module, ModuleCapability, ModuleConsole, ModuleId, ModuleStorage, ModuleTypeId, PackageId, ProcessTokenC... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModuleConsole` [INFO] [stdout] --> core/src/modules/personnel_area.rs:4:82 [INFO] [stdout] | [INFO] [stdout] 4 | use dudes_in_space_api::module::{DefaultModuleConsole, Module, ModuleCapability, ModuleConsole, ModuleId, ModuleStorage, ModuleStorageSee... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token` [INFO] [stdout] --> core/src/modules/assembler.rs:314:25 [INFO] [stdout] | [INFO] [stdout] 314 | process_token, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `process_token: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token` [INFO] [stdout] --> core/src/modules/dockyard.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | process_token, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `process_token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `recipe` [INFO] [stdout] --> core/src/modules/dockyard.rs:394:22 [INFO] [stdout] | [INFO] [stdout] 394 | fn create(&self, recipe: &InputRecipe) -> Box { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_recipe` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vault` [INFO] [stdout] --> core/src/modules/dockyard.rs:450:9 [INFO] [stdout] | [INFO] [stdout] 450 | this_vault: &DynDeserializeSeedVault, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModuleConsole` [INFO] [stdout] --> core/src/modules/shuttle.rs:2:60 [INFO] [stdout] | [INFO] [stdout] 2 | use dudes_in_space_api::module::{Module, ModuleCapability, ModuleConsole, ModuleId, ModuleStorage, ModuleTypeId, PackageId, ProcessTokenC... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ModuleConsole` [INFO] [stdout] --> core/src/modules/personnel_area.rs:4:82 [INFO] [stdout] | [INFO] [stdout] 4 | use dudes_in_space_api::module::{DefaultModuleConsole, Module, ModuleCapability, ModuleConsole, ModuleId, ModuleStorage, ModuleStorageSee... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person` [INFO] [stdout] --> core/src/modules/personnel_area.rs:114:33 [INFO] [stdout] | [INFO] [stdout] 114 | fn insert_person(&mut self, person: Person) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vault` [INFO] [stdout] --> core/src/modules/personnel_area.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | this_vault: &DynDeserializeSeedVault, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> core/src/modules/shuttle.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | v: &dyn VesselModuleInterface, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/modules/shuttle.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `decider_vault` [INFO] [stdout] --> core/src/modules/shuttle.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | decider_vault: &ObjectiveDeciderVault, [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decider_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/modules/shuttle.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | logger: &mut dyn Logger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> core/src/modules/shuttle.rs:73:34 [INFO] [stdout] | [INFO] [stdout] 73 | fn extract_person(&mut self, id: PersonId) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person` [INFO] [stdout] --> core/src/modules/shuttle.rs:77:33 [INFO] [stdout] | [INFO] [stdout] 77 | fn insert_person(&mut self, person: Person) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> core/src/modules/shuttle.rs:85:31 [INFO] [stdout] | [INFO] [stdout] 85 | fn contains_person(&self, id: PersonId) -> bool { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vault` [INFO] [stdout] --> core/src/modules/shuttle.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | this_vault: &DynDeserializeSeedVault, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | for mut crafting_module in this_vessel.modules_with_cap(ModuleCapability::Dockyard) [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:190:19 [INFO] [stdout] | [INFO] [stdout] 190 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token` [INFO] [stdout] --> core/src/modules/assembler.rs:314:25 [INFO] [stdout] | [INFO] [stdout] 314 | process_token, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `process_token: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parsed_assembler` [INFO] [stdout] --> core/src/modules/assembler.rs:491:13 [INFO] [stdout] | [INFO] [stdout] 491 | let parsed_assembler: Assembler = [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed_assembler` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:183:19 [INFO] [stdout] | [INFO] [stdout] 183 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | for mut dockyard in dockyards { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `needed_capabilities` [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | needed_capabilities, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `needed_capabilities: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:212:19 [INFO] [stdout] | [INFO] [stdout] 212 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `passions` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | passions: &[Passion], [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token` [INFO] [stdout] --> core/src/modules/dockyard.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | process_token, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `process_token: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `passions` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | passions: &[Passion], [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `passions` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | passions: &[Passion], [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `recipe` [INFO] [stdout] --> core/src/modules/dockyard.rs:394:22 [INFO] [stdout] | [INFO] [stdout] 394 | fn create(&self, recipe: &InputRecipe) -> Box { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_recipe` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vault` [INFO] [stdout] --> core/src/modules/dockyard.rs:450:9 [INFO] [stdout] | [INFO] [stdout] 450 | this_vault: &DynDeserializeSeedVault, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking dudes_in_space v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `person` [INFO] [stdout] --> core/src/modules/personnel_area.rs:114:33 [INFO] [stdout] | [INFO] [stdout] 114 | fn insert_person(&mut self, person: Person) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:78:19 [INFO] [stdout] | [INFO] [stdout] 78 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CORE_PACKAGE_ID` is never used [INFO] [stdout] --> core/src/lib.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) const CORE_PACKAGE_ID: &str = "core"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vault` [INFO] [stdout] --> core/src/modules/personnel_area.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | this_vault: &DynDeserializeSeedVault, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `add_recipe` are never used [INFO] [stdout] --> core/src/modules/assembler.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 87 | impl Assembler { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 88 | pub fn new(recipes: Vec) -> Box { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn add_recipe(&mut self, recipe: AssemblyRecipe) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SetRecipe` is never constructed [INFO] [stdout] --> core/src/modules/assembler.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | enum AssemblerRequest { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] 114 | SetRecipe(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CoreModule` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) trait CoreModule: Module { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ModuleVisitor` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) trait ModuleVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ModuleVisitorMut` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub trait ModuleVisitorMut { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `VisitModules` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | pub trait VisitModules { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SetRecipe` is never constructed [INFO] [stdout] --> core/src/modules/dockyard.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | enum DockyardRequest { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 114 | SetRecipe(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/src/modules/personnel_area.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl PersonnelArea { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 44 | pub fn new(personnel: Vec) -> Box { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BuildVesselObjective` is never used [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) enum BuildVesselObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `are_module_storages_suitable`, and `find_modules_with_capabilities` are never used [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:31:19 [INFO] [stdout] | [INFO] [stdout] 30 | impl BuildVesselObjective { [INFO] [stdout] | ------------------------- associated functions in this implementation [INFO] [stdout] 31 | pub(crate) fn new(this_person: PersonId, needed_capabilities: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn are_module_storages_suitable( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn find_modules_with_capabilities( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BuildVesselObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | pub(crate) enum BuildVesselObjectiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftModulesObjective` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) enum CraftModulesObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `is_recipe_set_suitable` are never used [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:34:19 [INFO] [stdout] | [INFO] [stdout] 33 | impl CraftModulesObjective { [INFO] [stdout] | -------------------------- associated functions in this implementation [INFO] [stdout] 34 | pub(crate) fn new(this_person: PersonId, needed_capabilities: Vec, deploy: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn is_recipe_set_suitable( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftModulesObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | pub(crate) enum CraftModulesObjectiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftVesselFromScratchObjective` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) enum CraftVesselFromScratchObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DockyardRef` is never constructed [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | struct DockyardRef<'x> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `find_dockyard_with_suitable_modules_in_storage` are never used [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 43 | impl CraftVesselFromScratchObjective { [INFO] [stdout] | ------------------------------------ associated functions in this implementation [INFO] [stdout] 44 | pub(crate) fn new(this_person: PersonId, needed_capabilities: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | fn find_dockyard_with_suitable_modules_in_storage<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftVesselFromScratchObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | pub(crate) enum CraftVesselFromScratchObjectiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MineAsteroidsObjective` is never constructed [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct MineAsteroidsObjective {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MineAsteroidsObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum MineAsteroidsObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScavengeObjective` is never constructed [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct ScavengeObjective {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScavengeObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum ScavengeObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GatherResearchData` is never constructed [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct GatherResearchData {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `GatherResearchDataError` is never used [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum GatherResearchDataError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BuyGoodsObjective` is never constructed [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) struct BuyGoodsObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 14 | impl BuyGoodsObjective { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 15 | pub(crate) fn new(order: WeakBuyOrder) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BuyGoodsObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub(crate) enum BuyGoodsObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SellGoodsObjective` is never constructed [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) struct SellGoodsObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 14 | impl SellGoodsObjective { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 15 | pub(crate) fn new(order: WeakSellOrder) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SellGoodsObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub(crate) enum SellGoodsObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> core/src/modules/shuttle.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | v: &dyn VesselModuleInterface, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/modules/shuttle.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `decider_vault` [INFO] [stdout] --> core/src/modules/shuttle.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | decider_vault: &ObjectiveDeciderVault, [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decider_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/modules/shuttle.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | logger: &mut dyn Logger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> core/src/modules/shuttle.rs:73:34 [INFO] [stdout] | [INFO] [stdout] 73 | fn extract_person(&mut self, id: PersonId) -> Option { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person` [INFO] [stdout] --> core/src/modules/shuttle.rs:77:33 [INFO] [stdout] | [INFO] [stdout] 77 | fn insert_person(&mut self, person: Person) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> core/src/modules/shuttle.rs:85:31 [INFO] [stdout] | [INFO] [stdout] 85 | fn contains_person(&self, id: PersonId) -> bool { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vault` [INFO] [stdout] --> core/src/modules/shuttle.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | this_vault: &DynDeserializeSeedVault, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vault` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | for mut crafting_module in this_vessel.modules_with_cap(ModuleCapability::Dockyard) [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:190:19 [INFO] [stdout] | [INFO] [stdout] 190 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DynObjective` [INFO] [stdout] --> src/main.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use dudes_in_space_api::person::{DynObjective, Logger, PersonId, Severity}; [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 variable: `person0` [INFO] [stdout] --> src/env_presets/preset0.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let person0 = Person::random(rng); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person1` [INFO] [stdout] --> src/env_presets/preset0.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | let person1 = Person::random(rng); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person2` [INFO] [stdout] --> src/env_presets/preset0.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | let person2 = Person::random(rng); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DynObjective` [INFO] [stdout] --> src/main.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use dudes_in_space_api::person::{DynObjective, Logger, PersonId, Severity}; [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 variable: `person0` [INFO] [stdout] --> src/env_presets/preset0.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let person0 = Person::random(rng); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person1` [INFO] [stdout] --> src/env_presets/preset0.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | let person1 = Person::random(rng); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person2` [INFO] [stdout] --> src/env_presets/preset0.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | let person2 = Person::random(rng); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:183:19 [INFO] [stdout] | [INFO] [stdout] 183 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:55:13 [INFO] [stdout] | [INFO] [stdout] 55 | for mut dockyard in dockyards { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `needed_capabilities` [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | needed_capabilities, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `needed_capabilities: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:212:19 [INFO] [stdout] | [INFO] [stdout] 212 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `passions` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | passions: &[Passion], [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `passions` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | passions: &[Passion], [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `passions` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | passions: &[Passion], [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:46:19 [INFO] [stdout] | [INFO] [stdout] 46 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:38:19 [INFO] [stdout] | [INFO] [stdout] 38 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_module` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | this_module: &mut dyn ModuleConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_module` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `this_vessel` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | this_vessel: &dyn VesselConsole, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_this_vessel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `process_token_context` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | process_token_context: &ProcessTokenContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_token_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `logger` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | logger: PersonLogger, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `person_id` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | person_id: PersonId, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_person_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `age` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | age: u8, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_age` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gender` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | gender: Gender, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_gender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `morale` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | morale: Morale, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_morale` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `boldness` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | boldness: Boldness, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boldness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `awareness` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | awareness: Awareness, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_awareness` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> core/src/objectives/trading/trade_objective.rs:78:19 [INFO] [stdout] | [INFO] [stdout] 78 | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CORE_PACKAGE_ID` is never used [INFO] [stdout] --> core/src/lib.rs:1:18 [INFO] [stdout] | [INFO] [stdout] 1 | pub(crate) const CORE_PACKAGE_ID: &str = "core"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_recipe` is never used [INFO] [stdout] --> core/src/modules/assembler.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 87 | impl Assembler { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn add_recipe(&mut self, recipe: AssemblyRecipe) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SetRecipe` is never constructed [INFO] [stdout] --> core/src/modules/assembler.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | enum AssemblerRequest { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] 114 | SetRecipe(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CoreModule` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) trait CoreModule: Module { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ModuleVisitor` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:9:18 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) trait ModuleVisitor { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ModuleVisitorMut` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub trait ModuleVisitorMut { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `VisitModules` is never used [INFO] [stdout] --> core/src/modules/core_module.rs:33:11 [INFO] [stdout] | [INFO] [stdout] 33 | pub trait VisitModules { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SetRecipe` is never constructed [INFO] [stdout] --> core/src/modules/dockyard.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | enum DockyardRequest { [INFO] [stdout] | --------------- variant in this enum [INFO] [stdout] 114 | SetRecipe(usize), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/src/modules/personnel_area.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl PersonnelArea { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 44 | pub fn new(personnel: Vec) -> Box { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BuildVesselObjective` is never used [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) enum BuildVesselObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `are_module_storages_suitable`, and `find_modules_with_capabilities` are never used [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:31:19 [INFO] [stdout] | [INFO] [stdout] 30 | impl BuildVesselObjective { [INFO] [stdout] | ------------------------- associated functions in this implementation [INFO] [stdout] 31 | pub(crate) fn new(this_person: PersonId, needed_capabilities: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn are_module_storages_suitable( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn find_modules_with_capabilities( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BuildVesselObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/crafting/build_vessel_objective.rs:184:17 [INFO] [stdout] | [INFO] [stdout] 184 | pub(crate) enum BuildVesselObjectiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftModulesObjective` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | pub(crate) enum CraftModulesObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `is_recipe_set_suitable` are never used [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:34:19 [INFO] [stdout] | [INFO] [stdout] 33 | impl CraftModulesObjective { [INFO] [stdout] | -------------------------- associated functions in this implementation [INFO] [stdout] 34 | pub(crate) fn new(this_person: PersonId, needed_capabilities: Vec, deploy: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn is_recipe_set_suitable( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftModulesObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_modules_objective.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | pub(crate) enum CraftModulesObjectiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftVesselFromScratchObjective` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) enum CraftVesselFromScratchObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DockyardRef` is never constructed [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | struct DockyardRef<'x> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `find_dockyard_with_suitable_modules_in_storage` are never used [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 43 | impl CraftVesselFromScratchObjective { [INFO] [stdout] | ------------------------------------ associated functions in this implementation [INFO] [stdout] 44 | pub(crate) fn new(this_person: PersonId, needed_capabilities: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | fn find_dockyard_with_suitable_modules_in_storage<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CraftVesselFromScratchObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/crafting/craft_vessel_from_scratch_objective.rs:205:17 [INFO] [stdout] | [INFO] [stdout] 205 | pub(crate) enum CraftVesselFromScratchObjectiveError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MineAsteroidsObjective` is never constructed [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct MineAsteroidsObjective {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MineAsteroidsObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/gathering/mine_asteroids_objective.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum MineAsteroidsObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScavengeObjective` is never constructed [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct ScavengeObjective {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ScavengeObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/gathering/scavenge_objective.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum ScavengeObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GatherResearchData` is never constructed [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | pub(crate) struct GatherResearchData {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `GatherResearchDataError` is never used [INFO] [stdout] --> core/src/objectives/gathering/gather_research_data.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum GatherResearchDataError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BuyGoodsObjective` is never constructed [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) struct BuyGoodsObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 14 | impl BuyGoodsObjective { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 15 | pub(crate) fn new(order: WeakBuyOrder) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `BuyGoodsObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/trading/buy_goods_objective.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub(crate) enum BuyGoodsObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SellGoodsObjective` is never constructed [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) struct SellGoodsObjective { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 14 | impl SellGoodsObjective { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 15 | pub(crate) fn new(order: WeakSellOrder) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SellGoodsObjectiveError` is never used [INFO] [stdout] --> core/src/objectives/trading/sell_goods_objective.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | pub(crate) enum SellGoodsObjectiveError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.31s [INFO] running `Command { std: "docker" "inspect" "321c7c1f77a46e258f7a0a76f3053ba8b44632e9cb379cc296dcad51b7de352b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "321c7c1f77a46e258f7a0a76f3053ba8b44632e9cb379cc296dcad51b7de352b", kill_on_drop: false }` [INFO] [stdout] 321c7c1f77a46e258f7a0a76f3053ba8b44632e9cb379cc296dcad51b7de352b