[INFO] cloning repository https://github.com/ir1keren/REST-rust-starter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ir1keren/REST-rust-starter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fir1keren%2FREST-rust-starter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fir1keren%2FREST-rust-starter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7b946d2f282da58e223e833b4d0fa3c3a067c236
[INFO] checking ir1keren/REST-rust-starter against try#e983148bd5f0f0db270bfb72149f5e892e68b67f for pr-150322
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fir1keren%2FREST-rust-starter" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ir1keren/REST-rust-starter
[INFO] finished tweaking git repo https://github.com/ir1keren/REST-rust-starter
[INFO] tweaked toml for git repo https://github.com/ir1keren/REST-rust-starter written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ir1keren/REST-rust-starter on toolchain e983148bd5f0f0db270bfb72149f5e892e68b67f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ir1keren/REST-rust-starter 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" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded oneshot v0.1.11
[INFO] [stderr]   Downloaded ntex-rt v0.4.32
[INFO] [stderr]   Downloaded ntex-router v0.5.3
[INFO] [stderr]   Downloaded ntex-service v3.5.0
[INFO] [stderr]   Downloaded ntex-util v2.15.0
[INFO] [stderr]   Downloaded ntex-codec v0.6.2
[INFO] [stderr]   Downloaded utoipa v4.2.3
[INFO] [stderr]   Downloaded ntex-bytes v0.1.30
[INFO] [stderr]   Downloaded nanorand v0.8.0
[INFO] [stderr]   Downloaded ntex-net v2.8.1
[INFO] [stderr]   Downloaded ntex-http v0.1.15
[INFO] [stderr]   Downloaded ntex-io v2.14.0
[INFO] [stderr]   Downloaded ntex-tls v2.6.1
[INFO] [stderr]   Downloaded utoipa-gen v4.3.1
[INFO] [stderr]   Downloaded ntex-macros v0.1.4
[INFO] [stderr]   Downloaded ntex-server v2.8.1
[INFO] [stderr]   Downloaded ntex-h2 v1.13.0
[INFO] [stderr]   Downloaded ntex v2.16.0
[INFO] [stderr]   Downloaded ntex-tokio v0.5.4
[INFO] [stderr]   Downloaded ntex-remove-trailing-slash v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cfc77bcb037bc94a3a392e25e92c9d5a7216dd440ed9668b5f8d0446ab460b7d
[INFO] running `Command { std: "docker" "start" "-a" "cfc77bcb037bc94a3a392e25e92c9d5a7216dd440ed9668b5f8d0446ab460b7d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cfc77bcb037bc94a3a392e25e92c9d5a7216dd440ed9668b5f8d0446ab460b7d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cfc77bcb037bc94a3a392e25e92c9d5a7216dd440ed9668b5f8d0446ab460b7d", kill_on_drop: false }`
[INFO] [stdout] cfc77bcb037bc94a3a392e25e92c9d5a7216dd440ed9668b5f8d0446ab460b7d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+e983148bd5f0f0db270bfb72149f5e892e68b67f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 54d4667da3379b37e2bb8b0b7da1c674b83e377a4dab532c0c94b2c2c44d9562
[INFO] running `Command { std: "docker" "start" "-a" "54d4667da3379b37e2bb8b0b7da1c674b83e377a4dab532c0c94b2c2c44d9562", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling ntex-service v3.5.0
[INFO] [stderr]    Compiling ntex-rt v0.4.32
[INFO] [stderr]     Checking oneshot v0.1.11
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking mio v1.1.0
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking core_affinity v0.8.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking nanorand v0.8.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking indexmap v2.12.0
[INFO] [stderr]    Compiling ntex-macros v0.1.4
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling variadics_please v1.1.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling utoipa-gen v4.3.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking ntex-bytes v0.1.30
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking utoipa v4.2.3
[INFO] [stderr]     Checking ntex-codec v0.6.2
[INFO] [stderr]     Checking ntex-util v2.15.0
[INFO] [stderr]     Checking ntex-http v0.1.15
[INFO] [stderr]     Checking ntex-router v0.5.3
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking ntex-io v2.14.0
[INFO] [stderr]     Checking ntex-tokio v0.5.4
[INFO] [stderr]     Checking ntex-net v2.8.1
[INFO] [stderr]     Checking ntex-h2 v1.13.0
[INFO] [stderr]     Checking ntex-server v2.8.1
[INFO] [stderr]     Checking ntex-tls v2.6.1
[INFO] [stderr]     Checking ntex v2.16.0
[INFO] [stderr]     Checking ntex-remove-trailing-slash v0.1.0
[INFO] [stderr]     Checking rust-mvc-api v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `project_service`
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let project_service = Arc::new(ProjectService::new(project_repository.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_service`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_service`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let task_service = Arc::new(TaskService::new(task_repository, project_repository));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct ProjectCreate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 22 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ProjectUpdate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 28 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 29 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/project.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Project {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(name: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&mut self, update: ProjectUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_id`, `title`, and `description` are never read
[INFO] [stdout]   --> src/models/task.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TaskCreate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 23 |     pub project_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 25 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `description`, and `done` are never read
[INFO] [stdout]   --> src/models/task.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TaskUpdate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 31 |     pub title: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 32 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 33 |     pub done: Option<bool>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/task.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Task {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 37 |     pub fn new(project_id: Uuid, title: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn update(&mut self, update: TaskUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `projects` is never read
[INFO] [stdout]  --> src/repositories/project_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ProjectRepository {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] 8 |     projects: RwLock<HashMap<Uuid, Project>>,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `find_by_id`, `find_all`, `update`, and `delete` are never used
[INFO] [stdout]   --> src/repositories/project_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ProjectRepository {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, project: Project) -> Result<Project, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&self, id: &Uuid, updated_project: Project) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tasks` is never read
[INFO] [stdout]  --> src/repositories/task_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TaskRepository {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 8 |     tasks: RwLock<HashMap<Uuid, Task>>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TaskRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/repositories/task_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TaskRepository {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, task: Task) -> Result<Task, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn find_by_project_id(&self, project_id: &Uuid) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn update(&self, id: &Uuid, updated_task: Task) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn delete_by_project_id(&self, project_id: &Uuid) -> Result<usize, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repository` is never read
[INFO] [stdout]  --> src/services/project_service.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ProjectService {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 9 |     repository: Arc<ProjectRepository>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_project`, `get_project`, `list_projects`, `update_project`, and `delete_project` are never used
[INFO] [stdout]   --> src/services/project_service.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ProjectService {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn create_project(&self, create_data: ProjectCreate) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn get_project(&self, id: Uuid) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub async fn list_projects(&self) -> Result<Vec<Project>, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub async fn update_project(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub async fn delete_project(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_repository` and `project_repository` are never read
[INFO] [stdout]   --> src/services/task_service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct TaskService {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  9 |     task_repository: Arc<TaskRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     project_repository: Arc<ProjectRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/task_service.rs:24:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl TaskService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn create_task(&self, create_data: TaskCreate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn get_task(&self, id: Uuid) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub async fn list_tasks(&self) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn list_tasks_by_project(&self, project_id: Uuid) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub async fn update_task(&self, id: Uuid, update_data: TaskUpdate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn delete_task(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn delete_tasks_by_project(&self, project_id: Uuid) -> Result<usize, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `success` and `error` are never used
[INFO] [stdout]   --> src/views/api_response.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<T> ApiResponse<T> {
[INFO] [stdout]    | ---------------------- associated functions in this implementation
[INFO] [stdout] 26 |     pub fn success(data: T) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn error(error: ErrorResponse) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound`, `BadRequest`, `ValidationError`, `InternalServerError`, and `Conflict` are never constructed
[INFO] [stdout]   --> src/views/api_response.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum ApiError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 45 |     #[error("Resource not found: {resource}")]
[INFO] [stdout] 46 |     NotFound { resource: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     BadRequest { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     ValidationError { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     InternalServerError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     Conflict { message: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `not_found`, `bad_request`, `validation_error`, `repository_error`, and `conflict` are never used
[INFO] [stdout]   --> src/views/api_response.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl ApiError {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] 65 |     pub fn not_found(resource: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn bad_request(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn validation_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn repository_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn conflict(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `project_service`
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let project_service = Arc::new(ProjectService::new(project_repository.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_service`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_service`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let task_service = Arc::new(TaskService::new(task_repository, project_repository));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct ProjectCreate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 22 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ProjectUpdate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 28 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 29 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/project.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Project {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(name: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&mut self, update: ProjectUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_id`, `title`, and `description` are never read
[INFO] [stdout]   --> src/models/task.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TaskCreate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 23 |     pub project_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 25 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `description`, and `done` are never read
[INFO] [stdout]   --> src/models/task.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TaskUpdate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 31 |     pub title: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 32 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 33 |     pub done: Option<bool>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/task.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Task {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 37 |     pub fn new(project_id: Uuid, title: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn update(&mut self, update: TaskUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `projects` is never read
[INFO] [stdout]  --> src/repositories/project_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ProjectRepository {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] 8 |     projects: RwLock<HashMap<Uuid, Project>>,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `find_by_id`, `find_all`, `update`, and `delete` are never used
[INFO] [stdout]   --> src/repositories/project_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ProjectRepository {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, project: Project) -> Result<Project, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&self, id: &Uuid, updated_project: Project) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tasks` is never read
[INFO] [stdout]  --> src/repositories/task_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TaskRepository {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 8 |     tasks: RwLock<HashMap<Uuid, Task>>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TaskRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/repositories/task_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TaskRepository {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, task: Task) -> Result<Task, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn find_by_project_id(&self, project_id: &Uuid) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn update(&self, id: &Uuid, updated_task: Task) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn delete_by_project_id(&self, project_id: &Uuid) -> Result<usize, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repository` is never read
[INFO] [stdout]  --> src/services/project_service.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ProjectService {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 9 |     repository: Arc<ProjectRepository>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_project`, `get_project`, `list_projects`, `update_project`, and `delete_project` are never used
[INFO] [stdout]   --> src/services/project_service.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ProjectService {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn create_project(&self, create_data: ProjectCreate) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn get_project(&self, id: Uuid) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub async fn list_projects(&self) -> Result<Vec<Project>, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub async fn update_project(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub async fn delete_project(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_repository` and `project_repository` are never read
[INFO] [stdout]   --> src/services/task_service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct TaskService {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  9 |     task_repository: Arc<TaskRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     project_repository: Arc<ProjectRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/task_service.rs:24:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl TaskService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn create_task(&self, create_data: TaskCreate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn get_task(&self, id: Uuid) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub async fn list_tasks(&self) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn list_tasks_by_project(&self, project_id: Uuid) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub async fn update_task(&self, id: Uuid, update_data: TaskUpdate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn delete_task(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn delete_tasks_by_project(&self, project_id: Uuid) -> Result<usize, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `success` and `error` are never used
[INFO] [stdout]   --> src/views/api_response.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<T> ApiResponse<T> {
[INFO] [stdout]    | ---------------------- associated functions in this implementation
[INFO] [stdout] 26 |     pub fn success(data: T) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn error(error: ErrorResponse) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound`, `BadRequest`, `ValidationError`, `InternalServerError`, and `Conflict` are never constructed
[INFO] [stdout]   --> src/views/api_response.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum ApiError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 45 |     #[error("Resource not found: {resource}")]
[INFO] [stdout] 46 |     NotFound { resource: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     BadRequest { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     ValidationError { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     InternalServerError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     Conflict { message: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `not_found`, `bad_request`, `validation_error`, `repository_error`, and `conflict` are never used
[INFO] [stdout]   --> src/views/api_response.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl ApiError {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] 65 |     pub fn not_found(resource: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn bad_request(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn validation_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn repository_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn conflict(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.15s
[INFO] running `Command { std: "docker" "inspect" "54d4667da3379b37e2bb8b0b7da1c674b83e377a4dab532c0c94b2c2c44d9562", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54d4667da3379b37e2bb8b0b7da1c674b83e377a4dab532c0c94b2c2c44d9562", kill_on_drop: false }`
[INFO] [stdout] 54d4667da3379b37e2bb8b0b7da1c674b83e377a4dab532c0c94b2c2c44d9562
