[INFO] cloning repository https://github.com/wuzhizhe7273/suibi [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wuzhizhe7273/suibi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwuzhizhe7273%2Fsuibi", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwuzhizhe7273%2Fsuibi'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4965b67f519b53f66b8002cace91883efba991ab [INFO] checking wuzhizhe7273/suibi against master#9e293ae9f8abecb0be5105787d181518c9012a19 for pr-146440-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwuzhizhe7273%2Fsuibi" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/wuzhizhe7273/suibi [INFO] finished tweaking git repo https://github.com/wuzhizhe7273/suibi [INFO] tweaked toml for git repo https://github.com/wuzhizhe7273/suibi written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/wuzhizhe7273/suibi on toolchain 9e293ae9f8abecb0be5105787d181518c9012a19 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9e293ae9f8abecb0be5105787d181518c9012a19" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/wuzhizhe7273/suibi 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" "+9e293ae9f8abecb0be5105787d181518c9012a19" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] | [INFO] [stderr] = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ulid v1.2.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+9e293ae9f8abecb0be5105787d181518c9012a19" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dcf579f1fa257ac6badca302072ac2961eb5229714016f5f9d7e7a667bf3a4c1 [INFO] running `Command { std: "docker" "start" "-a" "dcf579f1fa257ac6badca302072ac2961eb5229714016f5f9d7e7a667bf3a4c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dcf579f1fa257ac6badca302072ac2961eb5229714016f5f9d7e7a667bf3a4c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dcf579f1fa257ac6badca302072ac2961eb5229714016f5f9d7e7a667bf3a4c1", kill_on_drop: false }` [INFO] [stdout] dcf579f1fa257ac6badca302072ac2961eb5229714016f5f9d7e7a667bf3a4c1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+9e293ae9f8abecb0be5105787d181518c9012a19" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a8e74157d2b07be2429899d7b9a3e11e6aa882cbb2e35f3573fb3057dc8525d2 [INFO] running `Command { std: "docker" "start" "-a" "a8e74157d2b07be2429899d7b9a3e11e6aa882cbb2e35f3573fb3057dc8525d2", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] | [INFO] [stderr] = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Checking infra v0.1.0 (/opt/rustwide/workdir/infra) [INFO] [stderr] Checking adapter v0.1.0 (/opt/rustwide/workdir/adapter) [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking ulid v1.2.1 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking domain v0.1.0 (/opt/rustwide/workdir/domain) [INFO] [stdout] warning: the feature `bool_to_result` has been stable since 1.98.0-nightly and no longer requires an attribute to enable [INFO] [stdout] --> domain/src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(bool_to_result)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `bool_to_result` has been stable since 1.98.0-nightly and no longer requires an attribute to enable [INFO] [stdout] --> domain/src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(bool_to_result)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> domain/src/aggregate/role/mod.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | fn apply(mut state: Option, event: &Self::Event) -> Option { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> domain/src/aggregate/tag/mod.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | fn apply(mut state: Option, event: &Self::Event) -> Option { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> domain/src/aggregate/role/mod.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | fn apply(mut state: Option, event: &Self::Event) -> Option { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> domain/src/aggregate/taxonomy/mod.rs:102:14 [INFO] [stdout] | [INFO] [stdout] 102 | fn apply(mut state: Option, event: &Self::Event) -> Option { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> domain/src/aggregate/tag/mod.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | fn apply(mut state: Option, event: &Self::Event) -> Option { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> domain/src/aggregate/taxonomy/mod.rs:102:14 [INFO] [stdout] | [INFO] [stdout] 102 | fn apply(mut state: Option, event: &Self::Event) -> Option { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:27:29 [INFO] [stdout] | [INFO] [stdout] 27 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:64:29 [INFO] [stdout] | [INFO] [stdout] 64 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:83:29 [INFO] [stdout] | [INFO] [stdout] 83 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_aggregate` and `version` are never used [INFO] [stdout] --> domain/src/common/aggregate/mod.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 54 | / impl Context [INFO] [stdout] 55 | | where [INFO] [stdout] 56 | | A: Aggregate, [INFO] [stdout] | |_________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 66 | fn as_aggregate(&self) -> Option<&A> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | fn version(&self) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `version` are never read [INFO] [stdout] --> domain/src/common/aggregate/snapshot.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct SnapShot [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | state: A, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | version: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `id` and `loader` are never used [INFO] [stdout] --> domain/src/common/aggregate/snapshot.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 11 | / impl SnapShot [INFO] [stdout] 12 | | where [INFO] [stdout] 13 | | A: Aggregate, [INFO] [stdout] | |_________________- methods in this implementation [INFO] [stdout] 14 | { [INFO] [stdout] 15 | fn id(&self) -> &A::ID { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 18 | fn loader(self, version: u64) -> SnapShotLoader { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ctx` is never read [INFO] [stdout] --> domain/src/common/executor.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Commiter [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | pub(crate) ctx: Context, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `version` are never read [INFO] [stdout] --> domain/src/common/executor.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Fetcher [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | pub(crate) id: A::ID, [INFO] [stdout] | ^^ [INFO] [stdout] 37 | pub(crate) version: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> domain/src/common/executor.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SnapshotFetcher [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub(crate) id: A::ID, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `snapshot` and `version` are never read [INFO] [stdout] --> domain/src/common/executor.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 69 | pub struct SnapShotLoader [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | pub(crate) snapshot: Option>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 74 | pub(crate) version: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/aggregate/snapshot.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | async fn get_snapshot(&self, id: &A::ID) -> anyhow::Result>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 30 - async fn get_snapshot(&self, id: &A::ID) -> anyhow::Result>; [INFO] [stdout] 30 + fn get_snapshot(&self, id: &A::ID) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/event/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | async fn commit(&self, stream: &ID, version: u64, events: Vec) -> anyhow::Result<()> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 8 - async fn commit(&self, stream: &ID, version: u64, events: Vec) -> anyhow::Result<()> [INFO] [stdout] 8 + fn commit(&self, stream: &ID, version: u64, events: Vec) -> impl std::future::Future> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/event/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn stream( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 15 ~ fn stream( [INFO] [stdout] 16 | &self, [INFO] [stdout] 17 | stream: &ID, [INFO] [stdout] 18 | version: u64, [INFO] [stdout] 19 ~ ) -> impl std::future::Future + Unpin>> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/executor.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn execute(&self, store: &S) -> anyhow::Result; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 11 - async fn execute(&self, store: &S) -> anyhow::Result; [INFO] [stdout] 11 + fn execute(&self, store: &S) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/projection/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn handle(&self, event: &P::Event) -> anyhow::Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 13 - async fn handle(&self, event: &P::Event) -> anyhow::Result<()>; [INFO] [stdout] 13 + fn handle(&self, event: &P::Event) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/projection/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn unique(&self, key: &P::UniqueKey) -> anyhow::Result>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 14 - async fn unique(&self, key: &P::UniqueKey) -> anyhow::Result>; [INFO] [stdout] 14 + fn unique(&self, key: &P::UniqueKey) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/projection/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn get(&self, key: &P::SearchKey) -> anyhow::Result>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 15 - async fn get(&self, key: &P::SearchKey) -> anyhow::Result>; [INFO] [stdout] 15 + fn get(&self, key: &P::SearchKey) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:27:29 [INFO] [stdout] | [INFO] [stdout] 27 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:46:29 [INFO] [stdout] | [INFO] [stdout] 46 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:64:29 [INFO] [stdout] | [INFO] [stdout] 64 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `store` [INFO] [stdout] --> domain/src/common/executor.rs:83:29 [INFO] [stdout] | [INFO] [stdout] 83 | async fn execute(&self, store: &S) -> anyhow::Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_aggregate` and `version` are never used [INFO] [stdout] --> domain/src/common/aggregate/mod.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 54 | / impl Context [INFO] [stdout] 55 | | where [INFO] [stdout] 56 | | A: Aggregate, [INFO] [stdout] | |_________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 66 | fn as_aggregate(&self) -> Option<&A> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | fn version(&self) -> u64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `state` and `version` are never read [INFO] [stdout] --> domain/src/common/aggregate/snapshot.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct SnapShot [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | state: A, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 8 | version: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `id` and `loader` are never used [INFO] [stdout] --> domain/src/common/aggregate/snapshot.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 11 | / impl SnapShot [INFO] [stdout] 12 | | where [INFO] [stdout] 13 | | A: Aggregate, [INFO] [stdout] | |_________________- methods in this implementation [INFO] [stdout] 14 | { [INFO] [stdout] 15 | fn id(&self) -> &A::ID { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 18 | fn loader(self, version: u64) -> SnapShotLoader { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ctx` is never read [INFO] [stdout] --> domain/src/common/executor.rs:18:16 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct Commiter [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | pub(crate) ctx: Context, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `version` are never read [INFO] [stdout] --> domain/src/common/executor.rs:36:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Fetcher [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | pub(crate) id: A::ID, [INFO] [stdout] | ^^ [INFO] [stdout] 37 | pub(crate) version: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> domain/src/common/executor.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SnapshotFetcher [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub(crate) id: A::ID, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `snapshot` and `version` are never read [INFO] [stdout] --> domain/src/common/executor.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 69 | pub struct SnapShotLoader [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | pub(crate) snapshot: Option>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 74 | pub(crate) version: u64, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/aggregate/snapshot.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | async fn get_snapshot(&self, id: &A::ID) -> anyhow::Result>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 30 - async fn get_snapshot(&self, id: &A::ID) -> anyhow::Result>; [INFO] [stdout] 30 + fn get_snapshot(&self, id: &A::ID) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/event/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | async fn commit(&self, stream: &ID, version: u64, events: Vec) -> anyhow::Result<()> [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 8 - async fn commit(&self, stream: &ID, version: u64, events: Vec) -> anyhow::Result<()> [INFO] [stdout] 8 + fn commit(&self, stream: &ID, version: u64, events: Vec) -> impl std::future::Future> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/event/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn stream( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 15 ~ fn stream( [INFO] [stdout] 16 | &self, [INFO] [stdout] 17 | stream: &ID, [INFO] [stdout] 18 | version: u64, [INFO] [stdout] 19 ~ ) -> impl std::future::Future + Unpin>> + Send [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/executor.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn execute(&self, store: &S) -> anyhow::Result; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 11 - async fn execute(&self, store: &S) -> anyhow::Result; [INFO] [stdout] 11 + fn execute(&self, store: &S) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/projection/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn handle(&self, event: &P::Event) -> anyhow::Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 13 - async fn handle(&self, event: &P::Event) -> anyhow::Result<()>; [INFO] [stdout] 13 + fn handle(&self, event: &P::Event) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/projection/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn unique(&self, key: &P::UniqueKey) -> anyhow::Result>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 14 - async fn unique(&self, key: &P::UniqueKey) -> anyhow::Result>; [INFO] [stdout] 14 + fn unique(&self, key: &P::UniqueKey) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> domain/src/common/projection/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn get(&self, key: &P::SearchKey) -> anyhow::Result>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 15 - async fn get(&self, key: &P::SearchKey) -> anyhow::Result>; [INFO] [stdout] 15 + fn get(&self, key: &P::SearchKey) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking app v0.1.0 (/opt/rustwide/workdir/app) [INFO] [stdout] warning: unused import: `anyhow` [INFO] [stdout] --> app/src/usecase/iam/mod.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{Context, anyhow}; [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: `anyhow` [INFO] [stdout] --> app/src/usecase/iam/mod.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{Context, anyhow}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `bool_to_result` has been stable since 1.98.0-nightly and no longer requires an attribute to enable [INFO] [stdout] --> app/src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(bool_to_result)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `bool_to_result` has been stable since 1.98.0-nightly and no longer requires an attribute to enable [INFO] [stdout] --> app/src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(bool_to_result)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserSummary` is never constructed [INFO] [stdout] --> app/src/dto/mod.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UserSummary { [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 `CreateUser` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CreateUser { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateUser` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UpdateUser { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegisterInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct RegisterInput { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoginInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct LoginInput { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GrantRolesInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct GrantRolesInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RevokeRolesInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct RevokeRolesInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateRole` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct CreateRole { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateRole` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct UpdateRole { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GrantPermissionsInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct GrantPermissionsInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RevokePermissionsInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct RevokePermissionsInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreatePermission` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct CreatePermission { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdatePermission` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct UpdatePermission { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreatePost` is never constructed [INFO] [stdout] --> app/src/dto/post.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CreatePost { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdatePost` is never constructed [INFO] [stdout] --> app/src/dto/post.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct UpdatePost { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateTag` is never constructed [INFO] [stdout] --> app/src/dto/tag.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CreateTag { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateTag` is never constructed [INFO] [stdout] --> app/src/dto/tag.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UpdateTag { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateTaxonomy` is never constructed [INFO] [stdout] --> app/src/dto/taxonomy.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CreateTaxonomy { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateTaxonomy` is never constructed [INFO] [stdout] --> app/src/dto/taxonomy.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct UpdateTaxonomy { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `UserQueryService` is never used [INFO] [stdout] --> app/src/interface/service/mod.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait UserQueryService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AuthService` is never used [INFO] [stdout] --> app/src/interface/service/mod.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub trait AuthService: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IAMCase` is never constructed [INFO] [stdout] --> app/src/usecase/iam/mod.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct IAMCase [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> app/src/usecase/iam/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 37 | / impl IAMCase [INFO] [stdout] 38 | | where [INFO] [stdout] 39 | | S: EventReader [INFO] [stdout] 40 | | + EventWriter [INFO] [stdout] ... | [INFO] [stdout] 43 | | + ProjectionStore>, [INFO] [stdout] 44 | | A: AuthService, [INFO] [stdout] | |___________________- associated items in this implementation [INFO] [stdout] 45 | { [INFO] [stdout] 46 | pub fn new(store: S, auth_service: A) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub async fn register(&self, input: RegisterInput) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub async fn login(&self, input: LoginInput) -> anyhow::Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn user_create(&self, input: CreateUser) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub async fn user_update(&self, user_id: Ulid, input: UpdateUser) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub async fn user_delete(&self, user_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub async fn user_grant_roles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn user_revoke_roles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub async fn role_create(&self, input: CreateRole) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub async fn role_update(&self, role_id: Ulid, input: UpdateRole) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | pub async fn role_delete(&self, role_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | pub async fn role_grant_permissions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub async fn role_revoke_permissions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | pub async fn permission_create(&self, input: CreatePermission) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub async fn permission_update( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub async fn permission_delete(&self, permission_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | async fn require_user_exists(&self, user_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 374 | async fn require_role_exists(&self, role_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 381 | async fn require_permission_exists(&self, permission_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub async fn user_has_role(&self, user_id: Ulid, role_id: Ulid) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | pub async fn user_has_permission( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub async fn user_can_do(&self, user_id: Ulid, permission_code: &str) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | pub async fn user_can_do_any( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 448 | pub async fn user_can_do_all( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 461 | pub async fn role_has_permission( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | async fn role_has_permission_impl( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PostCase` is never constructed [INFO] [stdout] --> app/src/usecase/post/mod.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct PostCase [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `user_create_post`, `user_delete_post`, and `user_update_post` are never used [INFO] [stdout] --> app/src/usecase/post/mod.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 27 | / impl PostCase [INFO] [stdout] 28 | | where [INFO] [stdout] 29 | | S: EventReader + EventWriter + ProjectionStore>, [INFO] [stdout] 30 | | U: UserQueryService, [INFO] [stdout] | |________________________- methods in this implementation [INFO] [stdout] 31 | { [INFO] [stdout] 32 | pub async fn user_create_post(&self, uid: Ulid, input: CreatePost) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub async fn user_delete_post(&self, uid: Ulid, post_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub async fn user_update_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TagCase` is never constructed [INFO] [stdout] --> app/src/usecase/tag/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct TagCase [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create`, `update`, `delete`, and `require_exists` are never used [INFO] [stdout] --> app/src/usecase/tag/mod.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 22 | / impl TagCase [INFO] [stdout] 23 | | where [INFO] [stdout] 24 | | S: EventReader + EventWriter + ProjectionStore>, [INFO] [stdout] | |__________________________________________________________________________- associated items in this implementation [INFO] [stdout] 25 | { [INFO] [stdout] 26 | pub fn new(store: S) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn create(&self, input: CreateTag) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub async fn update(&self, tag_id: Ulid, input: UpdateTag) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub async fn delete(&self, tag_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | async fn require_exists(&self, tag_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaxonomyCase` is never constructed [INFO] [stdout] --> app/src/usecase/taxonomy/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct TaxonomyCase [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create`, `update`, `delete`, and `require_exists` are never used [INFO] [stdout] --> app/src/usecase/taxonomy/mod.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 22 | / impl TaxonomyCase [INFO] [stdout] 23 | | where [INFO] [stdout] 24 | | S: EventReader + EventWriter + ProjectionStore>, [INFO] [stdout] | |_______________________________________________________________________________- associated items in this implementation [INFO] [stdout] 25 | { [INFO] [stdout] 26 | pub fn new(store: S) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn create(&self, input: CreateTaxonomy) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn update( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub async fn delete(&self, taxonomy_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | async fn require_exists(&self, taxonomy_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserSummary` is never constructed [INFO] [stdout] --> app/src/dto/mod.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UserSummary { [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 `CreateUser` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CreateUser { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateUser` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UpdateUser { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RegisterInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct RegisterInput { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoginInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct LoginInput { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GrantRolesInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct GrantRolesInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RevokeRolesInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct RevokeRolesInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateRole` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct CreateRole { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateRole` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct UpdateRole { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GrantPermissionsInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct GrantPermissionsInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RevokePermissionsInput` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct RevokePermissionsInput { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreatePermission` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct CreatePermission { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdatePermission` is never constructed [INFO] [stdout] --> app/src/dto/iam.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct UpdatePermission { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreatePost` is never constructed [INFO] [stdout] --> app/src/dto/post.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CreatePost { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdatePost` is never constructed [INFO] [stdout] --> app/src/dto/post.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct UpdatePost { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateTag` is never constructed [INFO] [stdout] --> app/src/dto/tag.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CreateTag { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateTag` is never constructed [INFO] [stdout] --> app/src/dto/tag.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct UpdateTag { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateTaxonomy` is never constructed [INFO] [stdout] --> app/src/dto/taxonomy.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CreateTaxonomy { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UpdateTaxonomy` is never constructed [INFO] [stdout] --> app/src/dto/taxonomy.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct UpdateTaxonomy { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `UserQueryService` is never used [INFO] [stdout] --> app/src/interface/service/mod.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait UserQueryService { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AuthService` is never used [INFO] [stdout] --> app/src/interface/service/mod.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub trait AuthService: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IAMCase` is never constructed [INFO] [stdout] --> app/src/usecase/iam/mod.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct IAMCase [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> app/src/usecase/iam/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 37 | / impl IAMCase [INFO] [stdout] 38 | | where [INFO] [stdout] 39 | | S: EventReader [INFO] [stdout] 40 | | + EventWriter [INFO] [stdout] ... | [INFO] [stdout] 43 | | + ProjectionStore>, [INFO] [stdout] 44 | | A: AuthService, [INFO] [stdout] | |___________________- associated items in this implementation [INFO] [stdout] 45 | { [INFO] [stdout] 46 | pub fn new(store: S, auth_service: A) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub async fn register(&self, input: RegisterInput) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub async fn login(&self, input: LoginInput) -> anyhow::Result> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub async fn user_create(&self, input: CreateUser) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub async fn user_update(&self, user_id: Ulid, input: UpdateUser) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub async fn user_delete(&self, user_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub async fn user_grant_roles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn user_revoke_roles( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub async fn role_create(&self, input: CreateRole) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | pub async fn role_update(&self, role_id: Ulid, input: UpdateRole) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | pub async fn role_delete(&self, role_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | pub async fn role_grant_permissions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub async fn role_revoke_permissions( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | pub async fn permission_create(&self, input: CreatePermission) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub async fn permission_update( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub async fn permission_delete(&self, permission_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | async fn require_user_exists(&self, user_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 374 | async fn require_role_exists(&self, role_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 381 | async fn require_permission_exists(&self, permission_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub async fn user_has_role(&self, user_id: Ulid, role_id: Ulid) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | pub async fn user_has_permission( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 431 | pub async fn user_can_do(&self, user_id: Ulid, permission_code: &str) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | pub async fn user_can_do_any( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 448 | pub async fn user_can_do_all( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 461 | pub async fn role_has_permission( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | async fn role_has_permission_impl( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PostCase` is never constructed [INFO] [stdout] --> app/src/usecase/post/mod.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct PostCase [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `user_create_post`, `user_delete_post`, and `user_update_post` are never used [INFO] [stdout] --> app/src/usecase/post/mod.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 27 | / impl PostCase [INFO] [stdout] 28 | | where [INFO] [stdout] 29 | | S: EventReader + EventWriter + ProjectionStore>, [INFO] [stdout] 30 | | U: UserQueryService, [INFO] [stdout] | |________________________- methods in this implementation [INFO] [stdout] 31 | { [INFO] [stdout] 32 | pub async fn user_create_post(&self, uid: Ulid, input: CreatePost) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub async fn user_delete_post(&self, uid: Ulid, post_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub async fn user_update_post( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TagCase` is never constructed [INFO] [stdout] --> app/src/usecase/tag/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct TagCase [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create`, `update`, `delete`, and `require_exists` are never used [INFO] [stdout] --> app/src/usecase/tag/mod.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 22 | / impl TagCase [INFO] [stdout] 23 | | where [INFO] [stdout] 24 | | S: EventReader + EventWriter + ProjectionStore>, [INFO] [stdout] | |__________________________________________________________________________- associated items in this implementation [INFO] [stdout] 25 | { [INFO] [stdout] 26 | pub fn new(store: S) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn create(&self, input: CreateTag) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub async fn update(&self, tag_id: Ulid, input: UpdateTag) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub async fn delete(&self, tag_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | async fn require_exists(&self, tag_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TaxonomyCase` is never constructed [INFO] [stdout] --> app/src/usecase/taxonomy/mod.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct TaxonomyCase [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `create`, `update`, `delete`, and `require_exists` are never used [INFO] [stdout] --> app/src/usecase/taxonomy/mod.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 22 | / impl TaxonomyCase [INFO] [stdout] 23 | | where [INFO] [stdout] 24 | | S: EventReader + EventWriter + ProjectionStore>, [INFO] [stdout] | |_______________________________________________________________________________- associated items in this implementation [INFO] [stdout] 25 | { [INFO] [stdout] 26 | pub fn new(store: S) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn create(&self, input: CreateTaxonomy) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn update( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub async fn delete(&self, taxonomy_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | async fn require_exists(&self, taxonomy_id: Ulid) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.83s [INFO] running `Command { std: "docker" "inspect" "a8e74157d2b07be2429899d7b9a3e11e6aa882cbb2e35f3573fb3057dc8525d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a8e74157d2b07be2429899d7b9a3e11e6aa882cbb2e35f3573fb3057dc8525d2", kill_on_drop: false }` [INFO] [stdout] a8e74157d2b07be2429899d7b9a3e11e6aa882cbb2e35f3573fb3057dc8525d2