[INFO] cloning repository https://github.com/EmilLindfors/object-store-server
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EmilLindfors/object-store-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEmilLindfors%2Fobject-store-server", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEmilLindfors%2Fobject-store-server'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 55f58be93e653f71541b6480e9e7461be49c314a
[INFO] checking EmilLindfors/object-store-server against master#8f21a5c92ea55c348c275a1bc4fedbdf181e0d64 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEmilLindfors%2Fobject-store-server" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/EmilLindfors/object-store-server
[INFO] finished tweaking git repo https://github.com/EmilLindfors/object-store-server
[INFO] tweaked toml for git repo https://github.com/EmilLindfors/object-store-server written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EmilLindfors/object-store-server on toolchain 8f21a5c92ea55c348c275a1bc4fedbdf181e0d64
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/EmilLindfors/object-store-server 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" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bon v3.6.3
[INFO] [stderr]   Downloaded auto-future v1.0.0
[INFO] [stderr]   Downloaded rust-multipart-rfc7578_2 v0.8.0
[INFO] [stderr]   Downloaded expect-json v1.0.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.2
[INFO] [stderr]   Downloaded axum-test v18.0.0-rc3
[INFO] [stderr]   Downloaded bon-macros v3.6.3
[INFO] [stderr]   Downloaded quinn v0.11.7
[INFO] [stderr]   Downloaded expect-json-macros v1.0.0
[INFO] [stderr]   Downloaded reserve-port v2.3.0
[INFO] [stderr]   Downloaded quinn-proto v0.11.11
[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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 87763b2d74ecba6083ef627514466f087c1686f4c8bd181e66c64c7c30f178f5
[INFO] running `Command { std: "docker" "start" "-a" "87763b2d74ecba6083ef627514466f087c1686f4c8bd181e66c64c7c30f178f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "87763b2d74ecba6083ef627514466f087c1686f4c8bd181e66c64c7c30f178f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "87763b2d74ecba6083ef627514466f087c1686f4c8bd181e66c64c7c30f178f5", kill_on_drop: false }`
[INFO] [stdout] 87763b2d74ecba6083ef627514466f087c1686f4c8bd181e66c64c7c30f178f5
[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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cbf5404d65ad15c93637fe406853c9e8a81689d19efac44f5dbae67b15721a28
[INFO] running `Command { std: "docker" "start" "-a" "cbf5404d65ad15c93637fe406853c9e8a81689d19efac44f5dbae67b15721a28", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling cc v1.2.21
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling rustls v0.23.27
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking rustls-pki-types v1.11.0
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking atomic-waker v1.1.2
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling webpki-roots v1.0.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling rustversion v1.0.20
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling event-listener v5.4.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling tokio v1.45.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling uuid v1.16.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling unicode-properties v0.1.3
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling whoami v1.6.0
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling prettyplease v0.2.32
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking rustls-native-certs v0.8.1
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking clap_builder v4.5.39
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking inventory v0.3.20
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]     Checking diff v0.1.13
[INFO] [stderr]     Checking bytesize v2.0.1
[INFO] [stderr]     Checking auto-future v1.0.0
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking rustls-webpki v0.103.2
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling typetag-impl v0.2.20
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking axum-core v0.5.2
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]    Compiling expect-json-macros v1.0.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking reserve-port v2.3.0
[INFO] [stderr]    Compiling bon-macros v3.6.3
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking clap v4.5.39
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking rust-multipart-rfc7578_2 v0.8.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking quick-xml v0.31.0
[INFO] [stderr]     Checking erased-serde v0.4.6
[INFO] [stderr]     Checking email_address v0.2.9
[INFO] [stderr]     Checking bon v3.6.3
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking typetag v0.2.20
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking expect-json v1.0.0
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-rustls v0.26.2
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking hyper-util v0.1.11
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking hyper-rustls v0.27.5
[INFO] [stderr]     Checking axum v0.8.4
[INFO] [stderr]     Checking reqwest v0.12.15
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking object_store v0.12.0
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]     Checking axum-test v18.0.0-rc3
[INFO] [stderr]     Checking object-store-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved imports `crate::VersionedApacheObjectStoreAdapter`, `crate::adapters::outbound::storage::ApacheObjectStoreAdapter`
[INFO] [stdout]    --> src/adapters/inbound/http/router.rs:190:9
[INFO] [stdout]     |
[INFO] [stdout] 190 |         VersionedApacheObjectStoreAdapter,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `VersionedApacheObjectStoreAdapter` in the root
[INFO] [stdout] ...
[INFO] [stdout] 193 |             storage::ApacheObjectStoreAdapter,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `ApacheObjectStoreAdapter` in `adapters::outbound::storage`
[INFO] [stdout]     |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]     |
[INFO] [stdout] 190 -         VersionedApacheObjectStoreAdapter,
[INFO] [stdout] 190 +         VersionedS3ObjectStoreAdapter,
[INFO] [stdout]     |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]     |
[INFO] [stdout] 193 -             storage::ApacheObjectStoreAdapter,
[INFO] [stdout] 193 +             storage::S3ObjectStoreAdapter,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::adapters::outbound::storage::ApacheObjectStoreAdapter`
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:725:9
[INFO] [stdout]     |
[INFO] [stdout] 725 |     use crate::adapters::outbound::storage::ApacheObjectStoreAdapter;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------
[INFO] [stdout]     |         |                                   |
[INFO] [stdout]     |         |                                   help: a similar name exists in the module: `S3ObjectStoreAdapter`
[INFO] [stdout]     |         no `ApacheObjectStoreAdapter` in `adapters::outbound::storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::VersionedApacheObjectStoreAdapter`
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:726:25
[INFO] [stdout]     |
[INFO] [stdout] 726 |     use crate::{Filter, VersionedApacheObjectStoreAdapter};
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         no `VersionedApacheObjectStoreAdapter` in the root
[INFO] [stdout]     |                         help: a similar name exists in the module: `VersionedS3ObjectStoreAdapter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `list_configurations` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |       async fn list_configurations(&self) -> StorageResult<Vec<(BucketName, LifecycleConfiguration)>> {
[INFO] [stdout]     |       ^        ------------------- help: there is an associated function with a similar name: `get_configuration`
[INFO] [stdout]     |  _____|
[INFO] [stdout]     | |
[INFO] [stdout] 155 | |         let rows = sqlx::query(
[INFO] [stdout] 156 | |             r#"
[INFO] [stdout] 157 | |             SELECT bucket_name, configuration, enabled
[INFO] [stdout] ...   |
[INFO] [stdout] 186 | |         Ok(configs)
[INFO] [stdout] 187 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `add_rule` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 | /     async fn add_rule(
[INFO] [stdout] 190 | |         &self,
[INFO] [stdout] 191 | |         bucket: &BucketName,
[INFO] [stdout] 192 | |         rule: &LifecycleRule,
[INFO] [stdout] ...   |
[INFO] [stdout] 205 | |         self.store_configuration(bucket, &config).await
[INFO] [stdout] 206 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `remove_rule` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 | /     async fn remove_rule(
[INFO] [stdout] 209 | |         &self,
[INFO] [stdout] 210 | |         bucket: &BucketName,
[INFO] [stdout] 211 | |         rule_id: &str,
[INFO] [stdout] ...   |
[INFO] [stdout] 229 | |         Ok(true)
[INFO] [stdout] 230 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_rules_for_bucket` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 | /     async fn get_rules_for_bucket(&self, bucket: &BucketName) -> StorageResult<Vec<LifecycleRule>> {
[INFO] [stdout] 233 | |         match self.get_configuration(bucket).await? {
[INFO] [stdout] 234 | |             Some(config) => Ok(config.rules),
[INFO] [stdout] 235 | |             None => Ok(Vec::new()),
[INFO] [stdout] 236 | |         }
[INFO] [stdout] 237 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `mark_rule_executed` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 | /     async fn mark_rule_executed(
[INFO] [stdout] 240 | |         &self,
[INFO] [stdout] 241 | |         bucket: &BucketName,
[INFO] [stdout] 242 | |         key: &ObjectKey,
[INFO] [stdout] ...   |
[INFO] [stdout] 269 | |         Ok(())
[INFO] [stdout] 270 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `list_configurations` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |       async fn list_configurations(&self) -> StorageResult<Vec<(BucketName, LifecycleConfiguration)>> {
[INFO] [stdout]     |       ^        ------------------- help: there is an associated function with a similar name: `get_configuration`
[INFO] [stdout]     |  _____|
[INFO] [stdout]     | |
[INFO] [stdout] 155 | |         let rows = sqlx::query(
[INFO] [stdout] 156 | |             r#"
[INFO] [stdout] 157 | |             SELECT bucket_name, configuration, enabled
[INFO] [stdout] ...   |
[INFO] [stdout] 186 | |         Ok(configs)
[INFO] [stdout] 187 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `is_rule_executed` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 | /     async fn is_rule_executed(
[INFO] [stdout] 273 | |         &self,
[INFO] [stdout] 274 | |         bucket: &BucketName,
[INFO] [stdout] 275 | |         key: &ObjectKey,
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         Ok(count > 0)
[INFO] [stdout] 296 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `add_rule` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 | /     async fn add_rule(
[INFO] [stdout] 190 | |         &self,
[INFO] [stdout] 191 | |         bucket: &BucketName,
[INFO] [stdout] 192 | |         rule: &LifecycleRule,
[INFO] [stdout] ...   |
[INFO] [stdout] 205 | |         self.store_configuration(bucket, &config).await
[INFO] [stdout] 206 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_execution_history` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 298 | /     async fn get_execution_history(
[INFO] [stdout] 299 | |         &self,
[INFO] [stdout] 300 | |         bucket: &BucketName,
[INFO] [stdout] 301 | |         key: Option<&ObjectKey>,
[INFO] [stdout] ...   |
[INFO] [stdout] 349 | |         Ok(history)
[INFO] [stdout] 350 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `remove_rule` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 | /     async fn remove_rule(
[INFO] [stdout] 209 | |         &self,
[INFO] [stdout] 210 | |         bucket: &BucketName,
[INFO] [stdout] 211 | |         rule_id: &str,
[INFO] [stdout] ...   |
[INFO] [stdout] 229 | |         Ok(true)
[INFO] [stdout] 230 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `cleanup_execution_logs` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 | /     async fn cleanup_execution_logs(&self, days_to_keep: u32) -> StorageResult<u64> {
[INFO] [stdout] 353 | |         let result = sqlx::query(
[INFO] [stdout] 354 | |             r#"
[INFO] [stdout] 355 | |             DELETE FROM lifecycle_execution_log 
[INFO] [stdout] ...   |
[INFO] [stdout] 367 | |         Ok(result.rows_affected())
[INFO] [stdout] 368 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_rules_for_bucket` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 | /     async fn get_rules_for_bucket(&self, bucket: &BucketName) -> StorageResult<Vec<LifecycleRule>> {
[INFO] [stdout] 233 | |         match self.get_configuration(bucket).await? {
[INFO] [stdout] 234 | |             Some(config) => Ok(config.rules),
[INFO] [stdout] 235 | |             None => Ok(Vec::new()),
[INFO] [stdout] 236 | |         }
[INFO] [stdout] 237 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `store_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | /     async fn store_metadata(
[INFO] [stdout] 57 | |         &self,
[INFO] [stdout] 58 | |         key: &ObjectKey,
[INFO] [stdout] 59 | |         metadata: &ObjectMetadata,
[INFO] [stdout] ...  |
[INFO] [stdout] 96 | |         Ok(())
[INFO] [stdout] 97 | |     }
[INFO] [stdout]    | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout] 99  | /     async fn get_metadata(&self, key: &ObjectKey) -> StorageResult<Option<ObjectMetadata>> {
[INFO] [stdout] 100 | |         let row = sqlx::query(
[INFO] [stdout] 101 | |             r#"
[INFO] [stdout] 102 | |             SELECT content_type, content_length, etag, last_modified, custom_metadata
[INFO] [stdout] ...   |
[INFO] [stdout] 131 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `delete_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | /     async fn delete_metadata(&self, key: &ObjectKey) -> StorageResult<bool> {
[INFO] [stdout] 134 | |         let result = sqlx::query(
[INFO] [stdout] 135 | |             r#"
[INFO] [stdout] 136 | |             DELETE FROM object_metadata 
[INFO] [stdout] ...   |
[INFO] [stdout] 148 | |         Ok(result.rows_affected() > 0)
[INFO] [stdout] 149 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `list_objects` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | /     async fn list_objects(
[INFO] [stdout] 152 | |         &self,
[INFO] [stdout] 153 | |         prefix: Option<&str>,
[INFO] [stdout] 154 | |         max_results: Option<usize>,
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |         Ok(keys)
[INFO] [stdout] 199 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_object_size` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | /     async fn get_object_size(&self, key: &ObjectKey) -> StorageResult<Option<u64>> {
[INFO] [stdout] 221 | |         let size: Option<i64> = sqlx::query_scalar(
[INFO] [stdout] 222 | |             r#"
[INFO] [stdout] 223 | |             SELECT content_length 
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |         Ok(size.map(|s| s as u64))
[INFO] [stdout] 237 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `update_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 | /     async fn update_metadata(
[INFO] [stdout] 240 | |         &self,
[INFO] [stdout] 241 | |         key: &ObjectKey,
[INFO] [stdout] 242 | |         metadata: &ObjectMetadata,
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         Ok(true)
[INFO] [stdout] 247 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_objects_by_size_range` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 | /     async fn get_objects_by_size_range(
[INFO] [stdout] 250 | |         &self,
[INFO] [stdout] 251 | |         min_size: Option<u64>,
[INFO] [stdout] 252 | |         max_size: Option<u64>,
[INFO] [stdout] ...   |
[INFO] [stdout] 286 | |         Ok(keys)
[INFO] [stdout] 287 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_total_storage_size` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 | /     async fn get_total_storage_size(&self) -> StorageResult<u64> {
[INFO] [stdout] 290 | |         let total: Option<i64> = sqlx::query_scalar(
[INFO] [stdout] 291 | |             "SELECT SUM(content_length) FROM object_metadata"
[INFO] [stdout] ...   |
[INFO] [stdout] 300 | |         Ok(total.unwrap_or(0) as u64)
[INFO] [stdout] 301 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `mark_rule_executed` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 | /     async fn mark_rule_executed(
[INFO] [stdout] 240 | |         &self,
[INFO] [stdout] 241 | |         bucket: &BucketName,
[INFO] [stdout] 242 | |         key: &ObjectKey,
[INFO] [stdout] ...   |
[INFO] [stdout] 269 | |         Ok(())
[INFO] [stdout] 270 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `is_rule_executed` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 | /     async fn is_rule_executed(
[INFO] [stdout] 273 | |         &self,
[INFO] [stdout] 274 | |         bucket: &BucketName,
[INFO] [stdout] 275 | |         key: &ObjectKey,
[INFO] [stdout] ...   |
[INFO] [stdout] 295 | |         Ok(count > 0)
[INFO] [stdout] 296 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_execution_history` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 298 | /     async fn get_execution_history(
[INFO] [stdout] 299 | |         &self,
[INFO] [stdout] 300 | |         bucket: &BucketName,
[INFO] [stdout] 301 | |         key: Option<&ObjectKey>,
[INFO] [stdout] ...   |
[INFO] [stdout] 349 | |         Ok(history)
[INFO] [stdout] 350 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `cleanup_execution_logs` is not a member of trait `LifecycleRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 | /     async fn cleanup_execution_logs(&self, days_to_keep: u32) -> StorageResult<u64> {
[INFO] [stdout] 353 | |         let result = sqlx::query(
[INFO] [stdout] 354 | |             r#"
[INFO] [stdout] 355 | |             DELETE FROM lifecycle_execution_log 
[INFO] [stdout] ...   |
[INFO] [stdout] 367 | |         Ok(result.rows_affected())
[INFO] [stdout] 368 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `LifecycleRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `store_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | /     async fn store_metadata(
[INFO] [stdout] 57 | |         &self,
[INFO] [stdout] 58 | |         key: &ObjectKey,
[INFO] [stdout] 59 | |         metadata: &ObjectMetadata,
[INFO] [stdout] ...  |
[INFO] [stdout] 96 | |         Ok(())
[INFO] [stdout] 97 | |     }
[INFO] [stdout]    | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout] 99  | /     async fn get_metadata(&self, key: &ObjectKey) -> StorageResult<Option<ObjectMetadata>> {
[INFO] [stdout] 100 | |         let row = sqlx::query(
[INFO] [stdout] 101 | |             r#"
[INFO] [stdout] 102 | |             SELECT content_type, content_length, etag, last_modified, custom_metadata
[INFO] [stdout] ...   |
[INFO] [stdout] 131 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `delete_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 | /     async fn delete_metadata(&self, key: &ObjectKey) -> StorageResult<bool> {
[INFO] [stdout] 134 | |         let result = sqlx::query(
[INFO] [stdout] 135 | |             r#"
[INFO] [stdout] 136 | |             DELETE FROM object_metadata 
[INFO] [stdout] ...   |
[INFO] [stdout] 148 | |         Ok(result.rows_affected() > 0)
[INFO] [stdout] 149 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `list_objects` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 | /     async fn list_objects(
[INFO] [stdout] 152 | |         &self,
[INFO] [stdout] 153 | |         prefix: Option<&str>,
[INFO] [stdout] 154 | |         max_results: Option<usize>,
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |         Ok(keys)
[INFO] [stdout] 199 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_object_size` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | /     async fn get_object_size(&self, key: &ObjectKey) -> StorageResult<Option<u64>> {
[INFO] [stdout] 221 | |         let size: Option<i64> = sqlx::query_scalar(
[INFO] [stdout] 222 | |             r#"
[INFO] [stdout] 223 | |             SELECT content_length 
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |         Ok(size.map(|s| s as u64))
[INFO] [stdout] 237 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `update_metadata` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 | /     async fn update_metadata(
[INFO] [stdout] 240 | |         &self,
[INFO] [stdout] 241 | |         key: &ObjectKey,
[INFO] [stdout] 242 | |         metadata: &ObjectMetadata,
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         Ok(true)
[INFO] [stdout] 247 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_objects_by_size_range` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 | /     async fn get_objects_by_size_range(
[INFO] [stdout] 250 | |         &self,
[INFO] [stdout] 251 | |         min_size: Option<u64>,
[INFO] [stdout] 252 | |         max_size: Option<u64>,
[INFO] [stdout] ...   |
[INFO] [stdout] 286 | |         Ok(keys)
[INFO] [stdout] 287 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `get_total_storage_size` is not a member of trait `ObjectRepository`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 | /     async fn get_total_storage_size(&self) -> StorageResult<u64> {
[INFO] [stdout] 290 | |         let total: Option<i64> = sqlx::query_scalar(
[INFO] [stdout] 291 | |             "SELECT SUM(content_length) FROM object_metadata"
[INFO] [stdout] ...   |
[INFO] [stdout] 300 | |         Ok(total.unwrap_or(0) as u64)
[INFO] [stdout] 301 | |     }
[INFO] [stdout]     | |_____^ not a member of trait `ObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ) -> StorageResult<Option<LifecycleConfiguration>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:136:66
[INFO] [stdout]     |
[INFO] [stdout] 136 |     async fn delete_configuration(&self, bucket: &BucketName) -> StorageResult<bool> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:154:44
[INFO] [stdout]     |
[INFO] [stdout] 154 |     async fn list_configurations(&self) -> StorageResult<Vec<(BucketName, LifecycleConfiguration)>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:193:10
[INFO] [stdout]     |
[INFO] [stdout] 193 |     ) -> StorageResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:105:10
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ) -> StorageResult<Option<LifecycleConfiguration>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:212:10
[INFO] [stdout]     |
[INFO] [stdout] 212 |     ) -> StorageResult<bool> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:136:66
[INFO] [stdout]     |
[INFO] [stdout] 136 |     async fn delete_configuration(&self, bucket: &BucketName) -> StorageResult<bool> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:232:66
[INFO] [stdout]     |
[INFO] [stdout] 232 |     async fn get_rules_for_bucket(&self, bucket: &BucketName) -> StorageResult<Vec<LifecycleRule>> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:154:44
[INFO] [stdout]     |
[INFO] [stdout] 154 |     async fn list_configurations(&self) -> StorageResult<Vec<(BucketName, LifecycleConfiguration)>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 |     ) -> StorageResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:193:10
[INFO] [stdout]     |
[INFO] [stdout] 193 |     ) -> StorageResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:212:10
[INFO] [stdout]     |
[INFO] [stdout] 212 |     ) -> StorageResult<bool> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:277:10
[INFO] [stdout]     |
[INFO] [stdout] 277 |     ) -> StorageResult<bool> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:232:66
[INFO] [stdout]     |
[INFO] [stdout] 232 |     async fn get_rules_for_bucket(&self, bucket: &BucketName) -> StorageResult<Vec<LifecycleRule>> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 |     ) -> StorageResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:303:10
[INFO] [stdout]     |
[INFO] [stdout] 303 |     ) -> StorageResult<Vec<(String, String, chrono::DateTime<chrono::Utc>, bool, Option<String>)>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:277:10
[INFO] [stdout]     |
[INFO] [stdout] 277 |     ) -> StorageResult<bool> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:352:66
[INFO] [stdout]     |
[INFO] [stdout] 352 |     async fn cleanup_execution_logs(&self, days_to_keep: u32) -> StorageResult<u64> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:303:10
[INFO] [stdout]     |
[INFO] [stdout] 303 |     ) -> StorageResult<Vec<(String, String, chrono::DateTime<chrono::Utc>, bool, Option<String>)>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `StorageResult` in this scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:352:66
[INFO] [stdout]     |
[INFO] [stdout] 352 |     async fn cleanup_execution_logs(&self, days_to_keep: u32) -> StorageResult<u64> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this type alias through its public re-export
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::domain::errors::StorageResult;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `adapters::outbound::storage`
[INFO] [stdout]  --> src/adapters/inbound/http/dto.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     adapters::outbound::storage,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/adapters/inbound/http/handlers/versioning_handlers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LifecycleServiceImpl`, `ObjectServiceImpl`, and `VersioningServiceImpl`
[INFO] [stdout]   --> src/adapters/inbound/http/router.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     services::{LifecycleServiceImpl, ObjectServiceImpl, VersioningServiceImpl},
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VersionId`
[INFO] [stdout]  --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:8:48
[INFO] [stdout]   |
[INFO] [stdout] 8 |         value_objects::{ObjectKey, BucketName, VersionId},
[INFO] [stdout]   |                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/adapters/outbound/persistence/sql_object_repository.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `adapters::outbound::storage`
[INFO] [stdout]  --> src/adapters/inbound/http/dto.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     adapters::outbound::storage,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::io::ReaderStream`
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tokio_util::io::ReaderStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/adapters/inbound/http/handlers/versioning_handlers.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VersioningServiceImpl`
[INFO] [stdout]   --> src/adapters/inbound/http/router.rs:38:57
[INFO] [stdout]    |
[INFO] [stdout] 38 |     services::{LifecycleServiceImpl, ObjectServiceImpl, VersioningServiceImpl},
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VersionId`
[INFO] [stdout]  --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:8:48
[INFO] [stdout]   |
[INFO] [stdout] 8 |         value_objects::{ObjectKey, BucketName, VersionId},
[INFO] [stdout]   |                                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/adapters/outbound/persistence/sql_object_repository.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_util::io::ReaderStream`
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tokio_util::io::ReaderStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `configuration_exists`, `get_rule`, `update_rule`, `list_configured_buckets`, `get_last_processed_time`, `set_last_processed_time`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 |   impl LifecycleRepository for SqlLifecycleRepository {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `configuration_exists`, `get_rule`, `update_rule`, `list_configured_buckets`, `get_last_processed_time`, `set_last_processed_time` in implementation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/ports/repositories/lifecycle_repository.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |       async fn configuration_exists(&self, bucket: &BucketName) -> LifecycleResult<bool>;
[INFO] [stdout]    |       ----------------------------------------------------------------------------------- `configuration_exists` from trait
[INFO] [stdout] ...
[INFO] [stdout] 31 | /     async fn get_rule(
[INFO] [stdout] 32 | |         &self,
[INFO] [stdout] 33 | |         bucket: &BucketName,
[INFO] [stdout] 34 | |         rule_id: &str,
[INFO] [stdout] 35 | |     ) -> LifecycleResult<Option<LifecycleRule>>;
[INFO] [stdout]    | |________________________________________________- `get_rule` from trait
[INFO] [stdout] ...
[INFO] [stdout] 38 |       async fn update_rule(&self, bucket: &BucketName, rule: &LifecycleRule) -> LifecycleResult<()>;
[INFO] [stdout]    |       ---------------------------------------------------------------------------------------------- `update_rule` from trait
[INFO] [stdout] ...
[INFO] [stdout] 41 |       async fn list_configured_buckets(&self) -> LifecycleResult<Vec<BucketName>>;
[INFO] [stdout]    |       ---------------------------------------------------------------------------- `list_configured_buckets` from trait
[INFO] [stdout] ...
[INFO] [stdout] 44 | /     async fn get_last_processed_time(
[INFO] [stdout] 45 | |         &self,
[INFO] [stdout] 46 | |         bucket: &BucketName,
[INFO] [stdout] 47 | |     ) -> LifecycleResult<Option<std::time::SystemTime>>;
[INFO] [stdout]    | |________________________________________________________- `get_last_processed_time` from trait
[INFO] [stdout] ...
[INFO] [stdout] 50 | /     async fn set_last_processed_time(
[INFO] [stdout] 51 | |         &self,
[INFO] [stdout] 52 | |         bucket: &BucketName,
[INFO] [stdout] 53 | |         time: std::time::SystemTime,
[INFO] [stdout] 54 | |     ) -> LifecycleResult<()>;
[INFO] [stdout]    | |_____________________________- `set_last_processed_time` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `save_object_metadata`, `get_object_metadata`, `list_object_versions`, `get_version_info`, `mark_version_deleted`, `delete_version_metadata`, `get_latest_version_id`, `list_objects_by_prefix`, `update_object_metadata`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 |   impl ObjectRepository for SqlObjectRepository {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `save_object_metadata`, `get_object_metadata`, `list_object_versions`, `get_version_info`, `mark_version_deleted`, `delete_version_metadata`, `get_latest_version_id`, `list_objects_by_prefix`, `update_object_metadata` in implementation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/ports/repositories/object_repository.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | /     async fn save_object_metadata(
[INFO] [stdout] 14 | |         &self,
[INFO] [stdout] 15 | |         key: &ObjectKey,
[INFO] [stdout] 16 | |         version_id: &VersionId,
[INFO] [stdout] 17 | |         metadata: &ObjectMetadata,
[INFO] [stdout] 18 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `save_object_metadata` from trait
[INFO] [stdout] ...
[INFO] [stdout] 21 | /     async fn get_object_metadata(
[INFO] [stdout] 22 | |         &self,
[INFO] [stdout] 23 | |         key: &ObjectKey,
[INFO] [stdout] 24 | |         version_id: Option<&VersionId>,
[INFO] [stdout] 25 | |     ) -> StorageResult<Option<ObjectMetadata>>;
[INFO] [stdout]    | |_______________________________________________- `get_object_metadata` from trait
[INFO] [stdout] ...
[INFO] [stdout] 28 |       async fn list_object_versions(&self, key: &ObjectKey) -> StorageResult<ObjectVersionList>;
[INFO] [stdout]    |       ------------------------------------------------------------------------------------------ `list_object_versions` from trait
[INFO] [stdout] ...
[INFO] [stdout] 31 | /     async fn get_version_info(
[INFO] [stdout] 32 | |         &self,
[INFO] [stdout] 33 | |         key: &ObjectKey,
[INFO] [stdout] 34 | |         version_id: &VersionId,
[INFO] [stdout] 35 | |     ) -> StorageResult<Option<ObjectVersionInfo>>;
[INFO] [stdout]    | |__________________________________________________- `get_version_info` from trait
[INFO] [stdout] ...
[INFO] [stdout] 38 | /     async fn mark_version_deleted(
[INFO] [stdout] 39 | |         &self,
[INFO] [stdout] 40 | |         key: &ObjectKey,
[INFO] [stdout] 41 | |         version_id: &VersionId,
[INFO] [stdout] 42 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `mark_version_deleted` from trait
[INFO] [stdout] ...
[INFO] [stdout] 45 | /     async fn delete_version_metadata(
[INFO] [stdout] 46 | |         &self,
[INFO] [stdout] 47 | |         key: &ObjectKey,
[INFO] [stdout] 48 | |         version_id: &VersionId,
[INFO] [stdout] 49 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `delete_version_metadata` from trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |       async fn get_latest_version_id(&self, key: &ObjectKey) -> StorageResult<Option<VersionId>>;
[INFO] [stdout]    |       ------------------------------------------------------------------------------------------- `get_latest_version_id` from trait
[INFO] [stdout] ...
[INFO] [stdout] 55 | /     async fn list_objects_by_prefix(
[INFO] [stdout] 56 | |         &self,
[INFO] [stdout] 57 | |         prefix: &str,
[INFO] [stdout] 58 | |         max_results: Option<usize>,
[INFO] [stdout] 59 | |     ) -> StorageResult<Vec<ObjectKey>>;
[INFO] [stdout]    | |_______________________________________- `list_objects_by_prefix` from trait
[INFO] [stdout] ...
[INFO] [stdout] 62 | /     async fn update_object_metadata(
[INFO] [stdout] 63 | |         &self,
[INFO] [stdout] 64 | |         key: &ObjectKey,
[INFO] [stdout] 65 | |         version_id: &VersionId,
[INFO] [stdout] 66 | |         metadata: &ObjectMetadata,
[INFO] [stdout] 67 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `update_object_metadata` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `configuration_exists`, `get_rule`, `update_rule`, `list_configured_buckets`, `get_last_processed_time`, `set_last_processed_time`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:66:1
[INFO] [stdout]    |
[INFO] [stdout] 66 |   impl LifecycleRepository for SqlLifecycleRepository {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `configuration_exists`, `get_rule`, `update_rule`, `list_configured_buckets`, `get_last_processed_time`, `set_last_processed_time` in implementation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/ports/repositories/lifecycle_repository.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |       async fn configuration_exists(&self, bucket: &BucketName) -> LifecycleResult<bool>;
[INFO] [stdout]    |       ----------------------------------------------------------------------------------- `configuration_exists` from trait
[INFO] [stdout] ...
[INFO] [stdout] 31 | /     async fn get_rule(
[INFO] [stdout] 32 | |         &self,
[INFO] [stdout] 33 | |         bucket: &BucketName,
[INFO] [stdout] 34 | |         rule_id: &str,
[INFO] [stdout] 35 | |     ) -> LifecycleResult<Option<LifecycleRule>>;
[INFO] [stdout]    | |________________________________________________- `get_rule` from trait
[INFO] [stdout] ...
[INFO] [stdout] 38 |       async fn update_rule(&self, bucket: &BucketName, rule: &LifecycleRule) -> LifecycleResult<()>;
[INFO] [stdout]    |       ---------------------------------------------------------------------------------------------- `update_rule` from trait
[INFO] [stdout] ...
[INFO] [stdout] 41 |       async fn list_configured_buckets(&self) -> LifecycleResult<Vec<BucketName>>;
[INFO] [stdout]    |       ---------------------------------------------------------------------------- `list_configured_buckets` from trait
[INFO] [stdout] ...
[INFO] [stdout] 44 | /     async fn get_last_processed_time(
[INFO] [stdout] 45 | |         &self,
[INFO] [stdout] 46 | |         bucket: &BucketName,
[INFO] [stdout] 47 | |     ) -> LifecycleResult<Option<std::time::SystemTime>>;
[INFO] [stdout]    | |________________________________________________________- `get_last_processed_time` from trait
[INFO] [stdout] ...
[INFO] [stdout] 50 | /     async fn set_last_processed_time(
[INFO] [stdout] 51 | |         &self,
[INFO] [stdout] 52 | |         bucket: &BucketName,
[INFO] [stdout] 53 | |         time: std::time::SystemTime,
[INFO] [stdout] 54 | |     ) -> LifecycleResult<()>;
[INFO] [stdout]    | |_____________________________- `set_last_processed_time` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `save_object_metadata`, `get_object_metadata`, `list_object_versions`, `get_version_info`, `mark_version_deleted`, `delete_version_metadata`, `get_latest_version_id`, `list_objects_by_prefix`, `update_object_metadata`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 |   impl ObjectRepository for SqlObjectRepository {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `save_object_metadata`, `get_object_metadata`, `list_object_versions`, `get_version_info`, `mark_version_deleted`, `delete_version_metadata`, `get_latest_version_id`, `list_objects_by_prefix`, `update_object_metadata` in implementation
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/ports/repositories/object_repository.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | /     async fn save_object_metadata(
[INFO] [stdout] 14 | |         &self,
[INFO] [stdout] 15 | |         key: &ObjectKey,
[INFO] [stdout] 16 | |         version_id: &VersionId,
[INFO] [stdout] 17 | |         metadata: &ObjectMetadata,
[INFO] [stdout] 18 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `save_object_metadata` from trait
[INFO] [stdout] ...
[INFO] [stdout] 21 | /     async fn get_object_metadata(
[INFO] [stdout] 22 | |         &self,
[INFO] [stdout] 23 | |         key: &ObjectKey,
[INFO] [stdout] 24 | |         version_id: Option<&VersionId>,
[INFO] [stdout] 25 | |     ) -> StorageResult<Option<ObjectMetadata>>;
[INFO] [stdout]    | |_______________________________________________- `get_object_metadata` from trait
[INFO] [stdout] ...
[INFO] [stdout] 28 |       async fn list_object_versions(&self, key: &ObjectKey) -> StorageResult<ObjectVersionList>;
[INFO] [stdout]    |       ------------------------------------------------------------------------------------------ `list_object_versions` from trait
[INFO] [stdout] ...
[INFO] [stdout] 31 | /     async fn get_version_info(
[INFO] [stdout] 32 | |         &self,
[INFO] [stdout] 33 | |         key: &ObjectKey,
[INFO] [stdout] 34 | |         version_id: &VersionId,
[INFO] [stdout] 35 | |     ) -> StorageResult<Option<ObjectVersionInfo>>;
[INFO] [stdout]    | |__________________________________________________- `get_version_info` from trait
[INFO] [stdout] ...
[INFO] [stdout] 38 | /     async fn mark_version_deleted(
[INFO] [stdout] 39 | |         &self,
[INFO] [stdout] 40 | |         key: &ObjectKey,
[INFO] [stdout] 41 | |         version_id: &VersionId,
[INFO] [stdout] 42 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `mark_version_deleted` from trait
[INFO] [stdout] ...
[INFO] [stdout] 45 | /     async fn delete_version_metadata(
[INFO] [stdout] 46 | |         &self,
[INFO] [stdout] 47 | |         key: &ObjectKey,
[INFO] [stdout] 48 | |         version_id: &VersionId,
[INFO] [stdout] 49 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `delete_version_metadata` from trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |       async fn get_latest_version_id(&self, key: &ObjectKey) -> StorageResult<Option<VersionId>>;
[INFO] [stdout]    |       ------------------------------------------------------------------------------------------- `get_latest_version_id` from trait
[INFO] [stdout] ...
[INFO] [stdout] 55 | /     async fn list_objects_by_prefix(
[INFO] [stdout] 56 | |         &self,
[INFO] [stdout] 57 | |         prefix: &str,
[INFO] [stdout] 58 | |         max_results: Option<usize>,
[INFO] [stdout] 59 | |     ) -> StorageResult<Vec<ObjectKey>>;
[INFO] [stdout]    | |_______________________________________- `list_objects_by_prefix` from trait
[INFO] [stdout] ...
[INFO] [stdout] 62 | /     async fn update_object_metadata(
[INFO] [stdout] 63 | |         &self,
[INFO] [stdout] 64 | |         key: &ObjectKey,
[INFO] [stdout] 65 | |         version_id: &VersionId,
[INFO] [stdout] 66 | |         metadata: &ObjectMetadata,
[INFO] [stdout] 67 | |     ) -> StorageResult<()>;
[INFO] [stdout]    | |___________________________- `update_object_metadata` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_ssl`
[INFO] [stdout]    --> src/app.rs:219:17
[INFO] [stdout]     |
[INFO] [stdout] 219 |                 use_ssl,
[INFO] [stdout]     |                 ^^^^^^^ help: try ignoring the field: `use_ssl: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_ssl`
[INFO] [stdout]    --> src/app.rs:219:17
[INFO] [stdout]     |
[INFO] [stdout] 219 |                 use_ssl,
[INFO] [stdout]     |                 ^^^^^^^ help: try ignoring the field: `use_ssl: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `models::lifecycle::LifecycleConfiguration: Serialize` is not satisfied
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:72:48
[INFO] [stdout]     |
[INFO] [stdout] 72  |         let config_json = serde_json::to_value(config)
[INFO] [stdout]     |                           -------------------- ^^^^^^ the trait `Serialize` is not implemented for `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: for local types consider adding `#[derive(serde::Serialize)]` to your `models::lifecycle::LifecycleConfiguration` type
[INFO] [stdout]     = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]     = help: the following other types implement trait `Serialize`:
[INFO] [stdout]               &'a T
[INFO] [stdout]               &'a mut T
[INFO] [stdout]               ()
[INFO] [stdout]               (T,)
[INFO] [stdout]               (T0, T1)
[INFO] [stdout]               (T0, T1, T2)
[INFO] [stdout]               (T0, T1, T2, T3)
[INFO] [stdout]               (T0, T1, T2, T3, T4)
[INFO] [stdout]             and 188 others
[INFO] [stdout]     = note: required for `&models::lifecycle::LifecycleConfiguration` to implement `Serialize`
[INFO] [stdout] note: required by a bound in `to_value`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/mod.rs:990:8
[INFO] [stdout]     |
[INFO] [stdout] 988 | pub fn to_value<T>(value: T) -> Result<Value, Error>
[INFO] [stdout]     |        -------- required by a bound in this function
[INFO] [stdout] 989 | where
[INFO] [stdout] 990 |     T: Serialize,
[INFO] [stdout]     |        ^^^^^^^^^ required by this bound in `to_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enabled` on type `&'life2 models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:91:22
[INFO] [stdout]    |
[INFO] [stdout] 91 |         .bind(config.enabled)
[INFO] [stdout]    |                      ^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `bucket`, `rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `models::lifecycle::LifecycleConfiguration: dto::_::_serde::Serialize` is not satisfied
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:72:48
[INFO] [stdout]     |
[INFO] [stdout] 72  |         let config_json = serde_json::to_value(config)
[INFO] [stdout]     |                           -------------------- ^^^^^^ the trait `dto::_::_serde::Serialize` is not implemented for `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: for local types consider adding `#[derive(serde::Serialize)]` to your `models::lifecycle::LifecycleConfiguration` type
[INFO] [stdout]     = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]     = help: the following other types implement trait `dto::_::_serde::Serialize`:
[INFO] [stdout]               &'a T
[INFO] [stdout]               &'a mut T
[INFO] [stdout]               ()
[INFO] [stdout]               (T,)
[INFO] [stdout]               (T0, T1)
[INFO] [stdout]               (T0, T1, T2)
[INFO] [stdout]               (T0, T1, T2, T3)
[INFO] [stdout]               (T0, T1, T2, T3, T4)
[INFO] [stdout]             and 214 others
[INFO] [stdout]     = note: required for `&models::lifecycle::LifecycleConfiguration` to implement `dto::_::_serde::Serialize`
[INFO] [stdout] note: required by a bound in `to_value`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/mod.rs:990:8
[INFO] [stdout]     |
[INFO] [stdout] 988 | pub fn to_value<T>(value: T) -> Result<Value, Error>
[INFO] [stdout]     |        -------- required by a bound in this function
[INFO] [stdout] 989 | where
[INFO] [stdout] 990 |     T: Serialize,
[INFO] [stdout]     |        ^^^^^^^^^ required by this bound in `to_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enabled` on type `&'life2 models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:91:22
[INFO] [stdout]    |
[INFO] [stdout] 91 |         .bind(config.enabled)
[INFO] [stdout]    |                      ^^^^^^^ unknown field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `bucket`, `rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `lifecycle_errors::LifecycleError`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 78 | /         sqlx::query(
[INFO] [stdout] 79 | |             r#"
[INFO] [stdout] 80 | |             INSERT INTO lifecycle_configurations (bucket_name, configuration, enabled, updated_at)
[INFO] [stdout] 81 | |             VALUES ($1, $2, $3, NOW())
[INFO] [stdout] ...  |
[INFO] [stdout] 92 | |         .execute(&self.pool)
[INFO] [stdout] 93 | |         .await
[INFO] [stdout]    | |______________- this can't be annotated with `?` because it has type `Result<_, sqlx::Error>`
[INFO] [stdout] 94 |           .map_err(|e| crate::domain::errors::StorageError::InfrastructureError {
[INFO] [stdout]    |  __________-
[INFO] [stdout] 95 | |             message: format!("Database error storing lifecycle configuration: {}", e),
[INFO] [stdout] 96 | |             source: Some(e.to_string()),
[INFO] [stdout] 97 | |         })?;
[INFO] [stdout]    | |          -^ the trait `From<storage_errors::StorageError>` is not implemented for `lifecycle_errors::LifecycleError`
[INFO] [stdout]    | |__________|
[INFO] [stdout]    |            this can't be annotated with `?` because it has type `Result<_, storage_errors::StorageError>`
[INFO] [stdout]    |
[INFO] [stdout] note: `lifecycle_errors::LifecycleError` needs to implement `From<storage_errors::StorageError>`
[INFO] [stdout]   --> src/domain/errors/lifecycle_errors.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub enum LifecycleError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: alternatively, `storage_errors::StorageError` needs to implement `Into<lifecycle_errors::LifecycleError>`
[INFO] [stdout]   --> src/domain/errors/storage_errors.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub enum StorageError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `lifecycle_errors::LifecycleError` implements `From<StoreError>`
[INFO] [stdout]              `lifecycle_errors::LifecycleError` implements `From<serde_json::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `lifecycle_errors::LifecycleError`
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 78 | /         sqlx::query(
[INFO] [stdout] 79 | |             r#"
[INFO] [stdout] 80 | |             INSERT INTO lifecycle_configurations (bucket_name, configuration, enabled, updated_at)
[INFO] [stdout] 81 | |             VALUES ($1, $2, $3, NOW())
[INFO] [stdout] ...  |
[INFO] [stdout] 92 | |         .execute(&self.pool)
[INFO] [stdout] 93 | |         .await
[INFO] [stdout]    | |______________- this can't be annotated with `?` because it has type `Result<_, sqlx::Error>`
[INFO] [stdout] 94 |           .map_err(|e| crate::domain::errors::StorageError::InfrastructureError {
[INFO] [stdout]    |  __________-
[INFO] [stdout] 95 | |             message: format!("Database error storing lifecycle configuration: {}", e),
[INFO] [stdout] 96 | |             source: Some(e.to_string()),
[INFO] [stdout] 97 | |         })?;
[INFO] [stdout]    | |          -^ the trait `From<storage_errors::StorageError>` is not implemented for `lifecycle_errors::LifecycleError`
[INFO] [stdout]    | |__________|
[INFO] [stdout]    |            this can't be annotated with `?` because it has type `Result<_, storage_errors::StorageError>`
[INFO] [stdout]    |
[INFO] [stdout] note: `lifecycle_errors::LifecycleError` needs to implement `From<storage_errors::StorageError>`
[INFO] [stdout]   --> src/domain/errors/lifecycle_errors.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub enum LifecycleError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: alternatively, `storage_errors::StorageError` needs to implement `Into<lifecycle_errors::LifecycleError>`
[INFO] [stdout]   --> src/domain/errors/storage_errors.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub enum StorageError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `lifecycle_errors::LifecycleError` implements `From<StoreError>`
[INFO] [stdout]              `lifecycle_errors::LifecycleError` implements `From<serde_json::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enabled` on type `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 config.enabled = row.get("enabled");
[INFO] [stdout]     |                        ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `bucket`, `rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `models::lifecycle::LifecycleConfiguration: DeserializeOwned` is not satisfied
[INFO] [stdout]     --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:124:21
[INFO] [stdout]      |
[INFO] [stdout] 124  |                     serde_json::from_value(row.get("configuration"))
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'de> Deserialize<'de>` is not implemented for `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a JsonRawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 195 others
[INFO] [stdout]      = note: required for `models::lifecycle::LifecycleConfiguration` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `from_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/mod.rs:1032:8
[INFO] [stdout]      |
[INFO] [stdout] 1030 | pub fn from_value<T>(value: Value) -> Result<T, Error>
[INFO] [stdout]      |        ---------- required by a bound in this function
[INFO] [stdout] 1031 | where
[INFO] [stdout] 1032 |     T: DeserializeOwned,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `from_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enabled` on type `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:129:24
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 config.enabled = row.get("enabled");
[INFO] [stdout]     |                        ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `bucket`, `rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `models::lifecycle::LifecycleConfiguration: DeserializeOwned` is not satisfied
[INFO] [stdout]     --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:124:21
[INFO] [stdout]      |
[INFO] [stdout] 124  |                     serde_json::from_value(row.get("configuration"))
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'de> dto::_::_serde::Deserialize<'de>` is not implemented for `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `dto::_::_serde::Deserialize<'de>`:
[INFO] [stdout]                &'a JsonRawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 213 others
[INFO] [stdout]      = note: required for `models::lifecycle::LifecycleConfiguration` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `from_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/mod.rs:1032:8
[INFO] [stdout]      |
[INFO] [stdout] 1030 | pub fn from_value<T>(value: Value) -> Result<T, Error>
[INFO] [stdout]      |        ---------- required by a bound in this function
[INFO] [stdout] 1031 | where
[INFO] [stdout] 1032 |     T: DeserializeOwned,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `from_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enabled` on type `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |             config.enabled = row.get("enabled");
[INFO] [stdout]     |                    ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `bucket`, `rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `models::lifecycle::LifecycleConfiguration: DeserializeOwned` is not satisfied
[INFO] [stdout]     --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:177:17
[INFO] [stdout]      |
[INFO] [stdout] 177  |                 serde_json::from_value(row.get("configuration"))
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'de> Deserialize<'de>` is not implemented for `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]                &'a JsonRawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 195 others
[INFO] [stdout]      = note: required for `models::lifecycle::LifecycleConfiguration` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `from_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/mod.rs:1032:8
[INFO] [stdout]      |
[INFO] [stdout] 1030 | pub fn from_value<T>(value: Value) -> Result<T, Error>
[INFO] [stdout]      |        ---------- required by a bound in this function
[INFO] [stdout] 1031 | where
[INFO] [stdout] 1032 |     T: DeserializeOwned,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `from_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `enabled` on type `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |             config.enabled = row.get("enabled");
[INFO] [stdout]     |                    ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `bucket`, `rules`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `models::lifecycle::LifecycleConfiguration: DeserializeOwned` is not satisfied
[INFO] [stdout]     --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:177:17
[INFO] [stdout]      |
[INFO] [stdout] 177  |                 serde_json::from_value(row.get("configuration"))
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'de> dto::_::_serde::Deserialize<'de>` is not implemented for `models::lifecycle::LifecycleConfiguration`
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `dto::_::_serde::Deserialize<'de>`:
[INFO] [stdout]                &'a JsonRawValue
[INFO] [stdout]                &'a [u8]
[INFO] [stdout]                &'a std::path::Path
[INFO] [stdout]                &'a str
[INFO] [stdout]                ()
[INFO] [stdout]                (T,)
[INFO] [stdout]                (T0, T1)
[INFO] [stdout]                (T0, T1, T2)
[INFO] [stdout]              and 213 others
[INFO] [stdout]      = note: required for `models::lifecycle::LifecycleConfiguration` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `from_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/value/mod.rs:1032:8
[INFO] [stdout]      |
[INFO] [stdout] 1030 | pub fn from_value<T>(value: Value) -> Result<T, Error>
[INFO] [stdout]      |        ---------- required by a bound in this function
[INFO] [stdout] 1031 | where
[INFO] [stdout] 1032 |     T: DeserializeOwned,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `from_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `models::lifecycle::LifecycleConfiguration` has no field named `enabled`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:198:17
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 enabled: true,
[INFO] [stdout]     |                 ^^^^^^^ `models::lifecycle::LifecycleConfiguration` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `bucket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `models::lifecycle::LifecycleConfiguration` has no field named `enabled`
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:198:17
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 enabled: true,
[INFO] [stdout]     |                 ^^^^^^^ `models::lifecycle::LifecycleConfiguration` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `bucket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_configuration` found for reference `&SqlLifecycleRepository` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.store_configuration(bucket, &config).await
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `save_configuration` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 205 -         self.store_configuration(bucket, &config).await
[INFO] [stdout] 205 +         self.save_configuration(bucket, &config).await
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_configuration` found for reference `&SqlLifecycleRepository` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:205:14
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.store_configuration(bucket, &config).await
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `save_configuration` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 205 -         self.store_configuration(bucket, &config).await
[INFO] [stdout] 205 +         self.save_configuration(bucket, &config).await
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_configuration` found for reference `&SqlLifecycleRepository` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:228:14
[INFO] [stdout]     |
[INFO] [stdout] 228 |         self.store_configuration(bucket, &config).await?;
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `save_configuration` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 228 -         self.store_configuration(bucket, &config).await?;
[INFO] [stdout] 228 +         self.save_configuration(bucket, &config).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_configuration` found for reference `&SqlLifecycleRepository` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_lifecycle_repository.rs:228:14
[INFO] [stdout]     |
[INFO] [stdout] 228 |         self.store_configuration(bucket, &config).await?;
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `save_configuration` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 228 -         self.store_configuration(bucket, &config).await?;
[INFO] [stdout] 228 +         self.save_configuration(bucket, &config).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SystemTime: sqlx::Encode<'_, _>` is not satisfied
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |         .bind(metadata.last_modified)
[INFO] [stdout]    |          ---- ^^^^^^^^^^^^^^^^^^^^^^ the trait `sqlx::Encode<'_, _>` is not implemented for `SystemTime`
[INFO] [stdout]    |          |
[INFO] [stdout]    |          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `sqlx::Encode<'q, DB>`:
[INFO] [stdout]              `&'a str` implements `sqlx::Encode<'a, sqlx::Any>`
[INFO] [stdout]              `&'q [u8]` implements `sqlx::Encode<'q, Sqlite>`
[INFO] [stdout]              `&'q [u8]` implements `sqlx::Encode<'q, sqlx::Any>`
[INFO] [stdout]              `&'q str` implements `sqlx::Encode<'q, Sqlite>`
[INFO] [stdout]              `&T` implements `sqlx::Encode<'q, DB>`
[INFO] [stdout]              `&[T]` implements `sqlx::Encode<'q, Postgres>`
[INFO] [stdout]              `&[u8]` implements `sqlx::Encode<'_, Postgres>`
[INFO] [stdout]              `&str` implements `sqlx::Encode<'_, Postgres>`
[INFO] [stdout]            and 85 others
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, <DB as sqlx::Database>::Arguments<'q>>::bind`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/query.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn bind<T: 'q + Encode<'q, DB> + Type<DB>>(mut self, value: T) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, <DB as Database>::Arguments<'q>>::bind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SystemTime: Type<_>` is not satisfied
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |         .bind(metadata.last_modified)
[INFO] [stdout]    |          ---- ^^^^^^^^^^^^^^^^^^^^^^ the trait `Type<_>` is not implemented for `SystemTime`
[INFO] [stdout]    |          |
[INFO] [stdout]    |          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `Type<DB>`:
[INFO] [stdout]              `&T` implements `Type<DB>`
[INFO] [stdout]              `()` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4, T5)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4, T5, T6)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4, T5, T6, T7)` implements `Type<Postgres>`
[INFO] [stdout]            and 95 others
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, <DB as sqlx::Database>::Arguments<'q>>::bind`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/query.rs:86:42
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn bind<T: 'q + Encode<'q, DB> + Type<DB>>(mut self, value: T) -> Self {
[INFO] [stdout]    |                                          ^^^^^^^^ required by this bound in `Query::<'q, DB, <DB as Database>::Arguments<'q>>::bind`
[INFO] [stdout] help: use a unary tuple instead
[INFO] [stdout]    |
[INFO] [stdout] 87 |         .bind((metadata.last_modified,))
[INFO] [stdout]    |               +                      ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::time::SystemTime: sqlx::Encode<'_, _>` is not satisfied
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |         .bind(metadata.last_modified)
[INFO] [stdout]    |          ---- ^^^^^^^^^^^^^^^^^^^^^^ the trait `sqlx::Encode<'_, _>` is not implemented for `std::time::SystemTime`
[INFO] [stdout]    |          |
[INFO] [stdout]    |          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `sqlx::Encode<'q, DB>`:
[INFO] [stdout]              `&'a str` implements `sqlx::Encode<'a, sqlx::Any>`
[INFO] [stdout]              `&'q [u8]` implements `sqlx::Encode<'q, Sqlite>`
[INFO] [stdout]              `&'q [u8]` implements `sqlx::Encode<'q, sqlx::Any>`
[INFO] [stdout]              `&'q str` implements `sqlx::Encode<'q, Sqlite>`
[INFO] [stdout]              `&T` implements `sqlx::Encode<'q, DB>`
[INFO] [stdout]              `&[T]` implements `sqlx::Encode<'q, Postgres>`
[INFO] [stdout]              `&[u8]` implements `sqlx::Encode<'_, Postgres>`
[INFO] [stdout]              `&str` implements `sqlx::Encode<'_, Postgres>`
[INFO] [stdout]            and 85 others
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, <DB as sqlx::Database>::Arguments<'q>>::bind`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/query.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn bind<T: 'q + Encode<'q, DB> + Type<DB>>(mut self, value: T) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^ required by this bound in `Query::<'q, DB, <DB as Database>::Arguments<'q>>::bind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::time::SystemTime: Type<_>` is not satisfied
[INFO] [stdout]   --> src/adapters/outbound/persistence/sql_object_repository.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |         .bind(metadata.last_modified)
[INFO] [stdout]    |          ---- ^^^^^^^^^^^^^^^^^^^^^^ the trait `Type<_>` is not implemented for `std::time::SystemTime`
[INFO] [stdout]    |          |
[INFO] [stdout]    |          required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `Type<DB>`:
[INFO] [stdout]              `&T` implements `Type<DB>`
[INFO] [stdout]              `()` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4, T5)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4, T5, T6)` implements `Type<Postgres>`
[INFO] [stdout]              `(T1, T2, T3, T4, T5, T6, T7)` implements `Type<Postgres>`
[INFO] [stdout]            and 95 others
[INFO] [stdout] note: required by a bound in `sqlx::query::Query::<'q, DB, <DB as sqlx::Database>::Arguments<'q>>::bind`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/query.rs:86:42
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn bind<T: 'q + Encode<'q, DB> + Type<DB>>(mut self, value: T) -> Self {
[INFO] [stdout]    |                                          ^^^^^^^^ required by this bound in `Query::<'q, DB, <DB as Database>::Arguments<'q>>::bind`
[INFO] [stdout] help: use a unary tuple instead
[INFO] [stdout]    |
[INFO] [stdout] 87 |         .bind((metadata.last_modified,))
[INFO] [stdout]    |               +                      ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SystemTime: sqlx::Decode<'_, Postgres>` is not satisfied
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:125:40
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     last_modified: row.get("last_modified"),
[INFO] [stdout]     |                                        ^^^ the trait `sqlx::Decode<'_, Postgres>` is not implemented for `SystemTime`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `sqlx::Decode<'r, DB>`:
[INFO] [stdout]               `&'a str` implements `sqlx::Decode<'a, sqlx::Any>`
[INFO] [stdout]               `&'r JsonRawValue` implements `sqlx::Decode<'r, DB>`
[INFO] [stdout]               `&'r [u8]` implements `sqlx::Decode<'r, Postgres>`
[INFO] [stdout]               `&'r [u8]` implements `sqlx::Decode<'r, Sqlite>`
[INFO] [stdout]               `&'r [u8]` implements `sqlx::Decode<'r, sqlx::Any>`
[INFO] [stdout]               `&'r str` implements `sqlx::Decode<'r, Postgres>`
[INFO] [stdout]               `&'r str` implements `sqlx::Decode<'r, Sqlite>`
[INFO] [stdout]               `()` implements `sqlx::Decode<'r, Postgres>`
[INFO] [stdout]             and 95 others
[INFO] [stdout] note: required by a bound in `sqlx::Row::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/row.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout] 68  |     fn get<'r, T, I>(&'r self, index: I) -> T
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 71  |         T: Decode<'r, Self::Database> + Type<Self::Database>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Row::get`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::time::SystemTime: sqlx::Decode<'_, Postgres>` is not satisfied
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:125:40
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     last_modified: row.get("last_modified"),
[INFO] [stdout]     |                                        ^^^ the trait `sqlx::Decode<'_, Postgres>` is not implemented for `std::time::SystemTime`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `sqlx::Decode<'r, DB>`:
[INFO] [stdout]               `&'a str` implements `sqlx::Decode<'a, sqlx::Any>`
[INFO] [stdout]               `&'r JsonRawValue` implements `sqlx::Decode<'r, DB>`
[INFO] [stdout]               `&'r [u8]` implements `sqlx::Decode<'r, Postgres>`
[INFO] [stdout]               `&'r [u8]` implements `sqlx::Decode<'r, Sqlite>`
[INFO] [stdout]               `&'r [u8]` implements `sqlx::Decode<'r, sqlx::Any>`
[INFO] [stdout]               `&'r str` implements `sqlx::Decode<'r, Postgres>`
[INFO] [stdout]               `&'r str` implements `sqlx::Decode<'r, Sqlite>`
[INFO] [stdout]               `()` implements `sqlx::Decode<'r, Postgres>`
[INFO] [stdout]             and 95 others
[INFO] [stdout] note: required by a bound in `sqlx::Row::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/row.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout] 68  |     fn get<'r, T, I>(&'r self, index: I) -> T
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 71  |         T: Decode<'r, Self::Database> + Type<Self::Database>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Row::get`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `std::time::SystemTime: Type<Postgres>` is not satisfied
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:125:40
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     last_modified: row.get("last_modified"),
[INFO] [stdout]     |                                        ^^^ the trait `Type<Postgres>` is not implemented for `std::time::SystemTime`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Type<DB>`:
[INFO] [stdout]               `&T` implements `Type<DB>`
[INFO] [stdout]               `()` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4, T5)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4, T5, T6)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4, T5, T6, T7)` implements `Type<Postgres>`
[INFO] [stdout]             and 95 others
[INFO] [stdout] note: required by a bound in `sqlx::Row::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/row.rs:71:41
[INFO] [stdout]     |
[INFO] [stdout] 68  |     fn get<'r, T, I>(&'r self, index: I) -> T
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 71  |         T: Decode<'r, Self::Database> + Type<Self::Database>,
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `Row::get`
[INFO] [stdout] help: use a unary tuple instead
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     last_modified: (row,).get("last_modified"),
[INFO] [stdout]     |                                    +   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `SystemTime: Type<Postgres>` is not satisfied
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:125:40
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     last_modified: row.get("last_modified"),
[INFO] [stdout]     |                                        ^^^ the trait `Type<Postgres>` is not implemented for `SystemTime`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Type<DB>`:
[INFO] [stdout]               `&T` implements `Type<DB>`
[INFO] [stdout]               `()` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4, T5)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4, T5, T6)` implements `Type<Postgres>`
[INFO] [stdout]               `(T1, T2, T3, T4, T5, T6, T7)` implements `Type<Postgres>`
[INFO] [stdout]             and 95 others
[INFO] [stdout] note: required by a bound in `sqlx::Row::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/sqlx-core-0.8.6/src/row.rs:71:41
[INFO] [stdout]     |
[INFO] [stdout] 68  |     fn get<'r, T, I>(&'r self, index: I) -> T
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 71  |         T: Decode<'r, Self::Database> + Type<Self::Database>,
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^ required by this bound in `Row::get`
[INFO] [stdout] help: use a unary tuple instead
[INFO] [stdout]     |
[INFO] [stdout] 125 |                     last_modified: (row,).get("last_modified"),
[INFO] [stdout]     |                                    +   ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_metadata` found for reference `&SqlObjectRepository` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:245:14
[INFO] [stdout]     |
[INFO] [stdout] 245 |         self.store_metadata(key, metadata).await?;
[INFO] [stdout]     |              ^^^^^^^^^^^^^^ method not found in `&SqlObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_metadata` found for reference `&SqlObjectRepository` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/persistence/sql_object_repository.rs:245:14
[INFO] [stdout]     |
[INFO] [stdout] 245 |         self.store_metadata(key, metadata).await?;
[INFO] [stdout]     |              ^^^^^^^^^^^^^^ method not found in `&SqlObjectRepository`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |                 key: "unknown".to_string(),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^ expected `ObjectKey`, found `String`
[INFO] [stdout]    |
[INFO] [stdout] help: try wrapping the expression in `domain::value_objects::object_key::ObjectKey` (its field is private, but it's local to this crate and its privacy can be changed)
[INFO] [stdout]    |
[INFO] [stdout] 56 |                 key: domain::value_objects::object_key::ObjectKey("unknown".to_string()),
[INFO] [stdout]    |                      +++++++++++++++++++++++++++++++++++++++++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |                 key: "unknown".to_string(),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^ expected `ObjectKey`, found `String`
[INFO] [stdout]    |
[INFO] [stdout] help: try wrapping the expression in `domain::value_objects::object_key::ObjectKey` (its field is private, but it's local to this crate and its privacy can be changed)
[INFO] [stdout]    |
[INFO] [stdout] 56 |                 key: domain::value_objects::object_key::ObjectKey("unknown".to_string()),
[INFO] [stdout]    |                      +++++++++++++++++++++++++++++++++++++++++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 key: "unknown".to_string(),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^ expected `ObjectKey`, found `String`
[INFO] [stdout]    |
[INFO] [stdout] help: try wrapping the expression in `domain::value_objects::object_key::ObjectKey` (its field is private, but it's local to this crate and its privacy can be changed)
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 key: domain::value_objects::object_key::ObjectKey("unknown".to_string()),
[INFO] [stdout]    |                      +++++++++++++++++++++++++++++++++++++++++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 key: "unknown".to_string(),
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^ expected `ObjectKey`, found `String`
[INFO] [stdout]    |
[INFO] [stdout] help: try wrapping the expression in `domain::value_objects::object_key::ObjectKey` (its field is private, but it's local to this crate and its privacy can be changed)
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 key: domain::value_objects::object_key::ObjectKey("unknown".to_string()),
[INFO] [stdout]    |                      +++++++++++++++++++++++++++++++++++++++++++++                     +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `with_content_type` found for struct `PutPayload` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |             payload = payload.with_content_type(ct);
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^ method not found in `PutPayload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `suffix` on type `&'life1 filter::Filter`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:156:43
[INFO] [stdout]     |
[INFO] [stdout] 156 |             if let Some(suffix) = &filter.suffix {
[INFO] [stdout]     |                                           ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `prefix`, `tags`, `object_size_greater_than`, `object_size_less_than`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `max_keys` on type `&'life1 filter::Filter`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:163:44
[INFO] [stdout]     |
[INFO] [stdout] 163 |             if let Some(max_keys) = filter.max_keys {
[INFO] [stdout]     |                                            ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `prefix`, `tags`, `object_size_greater_than`, `object_size_less_than`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:187:28
[INFO] [stdout]     |
[INFO] [stdout] 187 |             last_modified: meta.last_modified,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^ expected `SystemTime`, found `DateTime<Utc>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `SystemTime`
[INFO] [stdout]                found struct `DateTime<Utc>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `DateTime<Utc>` into `SystemTime`
[INFO] [stdout]     |
[INFO] [stdout] 187 |             last_modified: meta.last_modified.into(),
[INFO] [stdout]     |                                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `e_tag` on type `()`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:208:26
[INFO] [stdout]     |
[INFO] [stdout] 208 |             etag: result.e_tag,
[INFO] [stdout]     |                          ^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `version` on type `()`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |             version_id: result.version,
[INFO] [stdout]     |                                ^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `with_content_type` found for struct `PutPayload` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/s3_adapter.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |             payload = payload.with_content_type(ct);
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^ method not found in `PutPayload`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `suffix` on type `&'life1 filter::Filter`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:156:43
[INFO] [stdout]     |
[INFO] [stdout] 156 |             if let Some(suffix) = &filter.suffix {
[INFO] [stdout]     |                                           ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `prefix`, `tags`, `object_size_greater_than`, `object_size_less_than`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `max_keys` on type `&'life1 filter::Filter`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:163:44
[INFO] [stdout]     |
[INFO] [stdout] 163 |             if let Some(max_keys) = filter.max_keys {
[INFO] [stdout]     |                                            ^^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `prefix`, `tags`, `object_size_greater_than`, `object_size_less_than`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:187:28
[INFO] [stdout]     |
[INFO] [stdout] 187 |             last_modified: meta.last_modified,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^ expected `SystemTime`, found `DateTime<Utc>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::time::SystemTime`
[INFO] [stdout]                found struct `DateTime<Utc>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `DateTime<Utc>` into `std::time::SystemTime`
[INFO] [stdout]     |
[INFO] [stdout] 187 |             last_modified: meta.last_modified.into(),
[INFO] [stdout]     |                                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `e_tag` on type `()`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:208:26
[INFO] [stdout]     |
[INFO] [stdout] 208 |             etag: result.e_tag,
[INFO] [stdout]     |                          ^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `version` on type `()`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |             version_id: result.version,
[INFO] [stdout]     |                                ^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `put_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |         self.base_adapter.put_object(key, data, content_type).await
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `get_object` with a similar name, but with different arguments
[INFO] [stdout]   --> src/ports/storage/object_store.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     async fn get_object(&self, key: &ObjectKey) -> StorageResult<Bytes>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `ObjectStore` which provides `put_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |         self.base_adapter.get_object(key).await
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `get_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object_stream` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 57 |         self.base_adapter.get_object_stream(key).await
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `put_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |         self.base_adapter.put_object(key, data, content_type).await
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: there is a method `get_object` with a similar name, but with different arguments
[INFO] [stdout]   --> src/ports/storage/object_store.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     async fn get_object(&self, key: &ObjectKey) -> StorageResult<Bytes>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: trait `ObjectStore` which provides `put_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object_stream` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:66:27
[INFO] [stdout]    |
[INFO] [stdout] 66 |         self.base_adapter.get_object_stream(key).await
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `get_object_stream` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 66 -         self.base_adapter.get_object_stream(key).await
[INFO] [stdout] 66 +         self.base_adapter.get_object(key).await
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `delete_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:78:27
[INFO] [stdout]    |
[INFO] [stdout] 78 |         self.base_adapter.delete_object(key).await
[INFO] [stdout]    |                           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `delete_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 78 -         self.base_adapter.delete_object(key).await
[INFO] [stdout] 78 +         self.base_adapter.get_object(key).await
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |         self.base_adapter.get_object(key).await
[INFO] [stdout]    |                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `get_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object_stream` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 57 |         self.base_adapter.get_object_stream(key).await
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `head_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:86:33
[INFO] [stdout]    |
[INFO] [stdout] 86 |         match self.base_adapter.head_object(key).await {
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `head_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 86 -         match self.base_adapter.head_object(key).await {
[INFO] [stdout] 86 +         match self.base_adapter.get_object(key).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object_stream` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:66:27
[INFO] [stdout]    |
[INFO] [stdout] 66 |         self.base_adapter.get_object_stream(key).await
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `get_object_stream` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 66 -         self.base_adapter.get_object_stream(key).await
[INFO] [stdout] 66 +         self.base_adapter.get_object(key).await
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `head_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:111:42
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `head_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 111 -         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout] 111 +         let metadata = self.base_adapter.get_object(key).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `delete_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:78:27
[INFO] [stdout]    |
[INFO] [stdout] 78 |         self.base_adapter.delete_object(key).await
[INFO] [stdout]    |                           ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `delete_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 78 -         self.base_adapter.delete_object(key).await
[INFO] [stdout] 78 +         self.base_adapter.get_object(key).await
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `copy_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |         self.base_adapter.copy_object(source_key, dest_key).await
[INFO] [stdout]     |                           ^^^^^^^^^^^ method not found in `Arc<S3ObjectStoreAdapter>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `copy_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `head_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:151:42
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `head_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 151 -         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout] 151 +         let metadata = self.base_adapter.get_object(key).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `head_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]   --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:86:33
[INFO] [stdout]    |
[INFO] [stdout] 86 |         match self.base_adapter.head_object(key).await {
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `head_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 1  + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 86 -         match self.base_adapter.head_object(key).await {
[INFO] [stdout] 86 +         match self.base_adapter.get_object(key).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:152:38
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let data = self.base_adapter.get_object(key).await?;
[INFO] [stdout]     |                                      ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `get_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_object_stream` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let data = self.base_adapter.get_object_stream(key).await?;
[INFO] [stdout]     |                                                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `head_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:111:42
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `head_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 111 -         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout] 111 +         let metadata = self.base_adapter.get_object(key).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `object_exists` found for struct `Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:174:27
[INFO] [stdout]     |
[INFO] [stdout] 174 |         self.base_adapter.object_exists(key).await
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ method not found in `Arc<S3ObjectStoreAdapter>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `object_exists` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `copy_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |         self.base_adapter.copy_object(source_key, dest_key).await
[INFO] [stdout]     |                           ^^^^^^^^^^^ method not found in `std::sync::Arc<S3ObjectStoreAdapter>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `copy_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `head_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:151:42
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `head_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 151 -         let metadata = self.base_adapter.head_object(key).await?;
[INFO] [stdout] 151 +         let metadata = self.base_adapter.get_object(key).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:152:38
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let data = self.base_adapter.get_object(key).await?;
[INFO] [stdout]     |                                      ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `get_object` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_object_stream` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 152 |         let data = self.base_adapter.get_object_stream(key).await?;
[INFO] [stdout]     |                                                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `object_exists` found for struct `std::sync::Arc<S3ObjectStoreAdapter>` in the current scope
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/versioned_s3_adapter.rs:174:27
[INFO] [stdout]     |
[INFO] [stdout] 174 |         self.base_adapter.object_exists(key).await
[INFO] [stdout]     |                           ^^^^^^^^^^^^^ method not found in `std::sync::Arc<S3ObjectStoreAdapter>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ObjectStore` which provides `object_exists` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 1   + use crate::ports::storage::object_store::ObjectStore;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:334:14
[INFO] [stdout]     |
[INFO] [stdout] 334 |             .list_objects(Some(bucket.as_str()), None)
[INFO] [stdout]     |              ^^^^^^^^^^^^                        ---- unexpected argument #2 of type `std::option::Option<_>`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&Filter`, found `Option<&str>`
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:334:27
[INFO] [stdout]     |
[INFO] [stdout] 334 |             .list_objects(Some(bucket.as_str()), None)
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected reference `&filter::Filter`
[INFO] [stdout]                     found enum `std::option::Option<&str>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/ports/storage/object_store.rs:44:14
[INFO] [stdout]     |
[INFO] [stdout] 44  |     async fn list_objects(&self, filter: &Filter) -> StorageResult<Vec<ObjectListItem>>;
[INFO] [stdout]     |              ^^^^^^^^^^^^        ------
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 334 -             .list_objects(Some(bucket.as_str()), None)
[INFO] [stdout] 334 +             .list_objects(/* &filter::Filter */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:363:36
[INFO] [stdout]     |
[INFO] [stdout] 363 |                 object_created_at: object_info.last_modified,
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `SystemTime`, found `DateTime<Utc>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `SystemTime`
[INFO] [stdout]                found struct `DateTime<Utc>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `DateTime<Utc>` into `SystemTime`
[INFO] [stdout]     |
[INFO] [stdout] 363 |                 object_created_at: object_info.last_modified.into(),
[INFO] [stdout]     |                                                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/services/object_service_impl.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |             .put_object(
[INFO] [stdout]    |              ---------- arguments to this method are incorrect
[INFO] [stdout] 51 |                 &request.key,
[INFO] [stdout] 52 |                 request.data.clone(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^ expected `Bytes`, found `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `bytes::Bytes`
[INFO] [stdout]               found struct `Vec<u8>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/ports/storage/object_store.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     async fn put_object(
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |         data: Bytes,
[INFO] [stdout]    |         ----
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<u8>` into `bytes::Bytes`
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 request.data.clone().into(),
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/services/object_service_impl.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |             data,
[INFO] [stdout]    |             ^^^^ expected `Vec<u8>`, found `Bytes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<u8>`
[INFO] [stdout]               found struct `bytes::Bytes`
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]    |
[INFO] [stdout] 97 |             data: data.to_vec(),
[INFO] [stdout]    |             +++++     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/services/object_service_impl.rs:128:20
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.store.list_objects(prefix, max_results).await
[INFO] [stdout]     |                    ^^^^^^^^^^^^         ----------- unexpected argument #2 of type `std::option::Option<usize>`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&Filter`, found `Option<&str>`
[INFO] [stdout]    --> src/services/object_service_impl.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.store.list_objects(prefix, max_results).await
[INFO] [stdout]     |                                 ^^^^^^
[INFO] [stdout]     = note: expected reference `&filter::Filter`
[INFO] [stdout]                     found enum `std::option::Option<&str>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/ports/storage/object_store.rs:44:14
[INFO] [stdout]     |
[INFO] [stdout] 44  |     async fn list_objects(&self, filter: &Filter) -> StorageResult<Vec<ObjectListItem>>;
[INFO] [stdout]     |              ^^^^^^^^^^^^        ------
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 128 -         self.store.list_objects(prefix, max_results).await
[INFO] [stdout] 128 +         self.store.list_objects(/* &filter::Filter */).await
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/services/object_service_impl.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.store.list_objects(prefix, max_results).await
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<Vec<ObjectInfo>, StorageError>`, found `Result<Vec<ObjectListItem>, ...>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<Vec<ObjectInfo>, _>`
[INFO] [stdout]                found enum `Result<Vec<ObjectListItem>, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:334:14
[INFO] [stdout]     |
[INFO] [stdout] 334 |             .list_objects(Some(bucket.as_str()), None)
[INFO] [stdout]     |              ^^^^^^^^^^^^                        ---- unexpected argument #2 of type `std::option::Option<_>`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&Filter`, found `Option<&str>`
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:334:27
[INFO] [stdout]     |
[INFO] [stdout] 334 |             .list_objects(Some(bucket.as_str()), None)
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected reference `&filter::Filter`
[INFO] [stdout]                     found enum `std::option::Option<&str>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/ports/storage/object_store.rs:44:14
[INFO] [stdout]     |
[INFO] [stdout] 44  |     async fn list_objects(&self, filter: &Filter) -> StorageResult<Vec<ObjectListItem>>;
[INFO] [stdout]     |              ^^^^^^^^^^^^        ------
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 334 -             .list_objects(Some(bucket.as_str()), None)
[INFO] [stdout] 334 +             .list_objects(/* &filter::Filter */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/services/lifecycle_service_impl.rs:363:36
[INFO] [stdout]     |
[INFO] [stdout] 363 |                 object_created_at: object_info.last_modified,
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `SystemTime`, found `DateTime<Utc>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::time::SystemTime`
[INFO] [stdout]                found struct `DateTime<Utc>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `DateTime<Utc>` into `std::time::SystemTime`
[INFO] [stdout]     |
[INFO] [stdout] 363 |                 object_created_at: object_info.last_modified.into(),
[INFO] [stdout]     |                                                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object_size` found for struct `Arc<(dyn object_store::ObjectStore + 'static)>` in the current scope
[INFO] [stdout]    --> src/services/object_service_impl.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |         self.store.get_object_size(key).await
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `ObjectService` defines an item `get_object_size`, perhaps you need to implement it
[INFO] [stdout]    --> src/ports/services/object_service.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | pub trait ObjectService: Send + Sync + 'static {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 181 -         self.store.get_object_size(key).await
[INFO] [stdout] 181 +         self.store.get_object(key).await
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/services/object_service_impl.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |             .put_object(
[INFO] [stdout]    |              ---------- arguments to this method are incorrect
[INFO] [stdout] 51 |                 &request.key,
[INFO] [stdout] 52 |                 request.data.clone(),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^ expected `Bytes`, found `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `bytes::Bytes`
[INFO] [stdout]               found struct `Vec<u8>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> src/ports/storage/object_store.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     async fn put_object(
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |         data: Bytes,
[INFO] [stdout]    |         ----
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<u8>` into `bytes::Bytes`
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 request.data.clone().into(),
[INFO] [stdout]    |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `put_versioned_object` found for struct `Arc<(dyn VersionedObjectStore + 'static)>` in the current scope
[INFO] [stdout]   --> src/services/versioning_service_impl.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         self.store
[INFO] [stdout] 83 | |             .put_versioned_object(
[INFO] [stdout]    | |             -^^^^^^^^^^^^^^^^^^^^ method not found in `Arc<(dyn VersionedObjectStore + 'static)>`
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/services/object_service_impl.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |             data,
[INFO] [stdout]    |             ^^^^ expected `Vec<u8>`, found `Bytes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<u8>`
[INFO] [stdout]               found struct `bytes::Bytes`
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]    |
[INFO] [stdout] 97 |             data: data.to_vec(),
[INFO] [stdout]    |             +++++     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_versioned_object` found for struct `Arc<(dyn VersionedObjectStore + 'static)>` in the current scope
[INFO] [stdout]    --> src/services/versioning_service_impl.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |           let data = self
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 148 | |             .store
[INFO] [stdout] 149 | |             .get_versioned_object(&request.key, &version_id)
[INFO] [stdout]     | |             -^^^^^^^^^^^^^^^^^^^^ method not found in `Arc<(dyn VersionedObjectStore + 'static)>`
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/services/object_service_impl.rs:128:20
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.store.list_objects(prefix, max_results).await
[INFO] [stdout]     |                    ^^^^^^^^^^^^         ----------- unexpected argument #2 of type `std::option::Option<usize>`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&Filter`, found `Option<&str>`
[INFO] [stdout]    --> src/services/object_service_impl.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.store.list_objects(prefix, max_results).await
[INFO] [stdout]     |                                 ^^^^^^
[INFO] [stdout]     = note: expected reference `&filter::Filter`
[INFO] [stdout]                     found enum `std::option::Option<&str>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/ports/storage/object_store.rs:44:14
[INFO] [stdout]     |
[INFO] [stdout] 44  |     async fn list_objects(&self, filter: &Filter) -> StorageResult<Vec<ObjectListItem>>;
[INFO] [stdout]     |              ^^^^^^^^^^^^        ------
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 128 -         self.store.list_objects(prefix, max_results).await
[INFO] [stdout] 128 +         self.store.list_objects(/* &filter::Filter */).await
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ports::services::VersioningService`
[INFO] [stdout]   --> src/adapters/inbound/http/handlers/versioning_handlers.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     ports::services::VersioningService,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/services/object_service_impl.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |         self.store.list_objects(prefix, max_results).await
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<Vec<ObjectInfo>, StorageError>`, found `Result<Vec<ObjectListItem>, ...>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<Vec<ObjectInfo>, _>`
[INFO] [stdout]                found enum `Result<Vec<ObjectListItem>, _>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_object_size` found for struct `std::sync::Arc<(dyn object_store::ObjectStore + 'static)>` in the current scope
[INFO] [stdout]    --> src/services/object_service_impl.rs:181:20
[INFO] [stdout]     |
[INFO] [stdout] 181 |         self.store.get_object_size(key).await
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout] note: `ObjectService` defines an item `get_object_size`, perhaps you need to implement it
[INFO] [stdout]    --> src/ports/services/object_service.rs:14:1
[INFO] [stdout]     |
[INFO] [stdout] 14  | pub trait ObjectService: Send + Sync + 'static {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: there is a method `get_object` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 181 -         self.store.get_object_size(key).await
[INFO] [stdout] 181 +         self.store.get_object(key).await
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `put_versioned_object` found for struct `std::sync::Arc<(dyn VersionedObjectStore + 'static)>` in the current scope
[INFO] [stdout]   --> src/services/versioning_service_impl.rs:83:14
[INFO] [stdout]    |
[INFO] [stdout] 82 | /         self.store
[INFO] [stdout] 83 | |             .put_versioned_object(
[INFO] [stdout]    | |             -^^^^^^^^^^^^^^^^^^^^ method not found in `std::sync::Arc<(dyn VersionedObjectStore + 'static)>`
[INFO] [stdout]    | |_____________|
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `filter` is assigned to, but never used
[INFO] [stdout]    --> src/adapters/inbound/http/dto.rs:207:21
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut filter = Filter::new();
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_filter` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `filter` is never read
[INFO] [stdout]    --> src/adapters/inbound/http/dto.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |             filter = Filter::new();
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_versioned_object` found for struct `std::sync::Arc<(dyn VersionedObjectStore + 'static)>` in the current scope
[INFO] [stdout]    --> src/services/versioning_service_impl.rs:149:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |           let data = self
[INFO] [stdout]     |  ____________________-
[INFO] [stdout] 148 | |             .store
[INFO] [stdout] 149 | |             .get_versioned_object(&request.key, &version_id)
[INFO] [stdout]     | |             -^^^^^^^^^^^^^^^^^^^^ method not found in `std::sync::Arc<(dyn VersionedObjectStore + 'static)>`
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ports::services::VersioningService`
[INFO] [stdout]   --> src/adapters/inbound/http/handlers/versioning_handlers.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     ports::services::VersioningService,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `filter` is assigned to, but never used
[INFO] [stdout]    --> src/adapters/inbound/http/dto.rs:207:21
[INFO] [stdout]     |
[INFO] [stdout] 207 |             let mut filter = Filter::new();
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_filter` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `filter` is never read
[INFO] [stdout]    --> src/adapters/inbound/http/dto.rs:208:13
[INFO] [stdout]     |
[INFO] [stdout] 208 |             filter = Filter::new();
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `should_remove_object` is never read
[INFO] [stdout]    --> src/adapters/outbound/persistence/in_memory_object_repository.rs:190:17
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut should_remove_object = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `storage_errors::StorageError::StorageBackendError { .. }` not covered
[INFO] [stdout]    --> src/adapters/outbound/storage/error.rs:228:15
[INFO] [stdout]     |
[INFO] [stdout] 228 |         match err {
[INFO] [stdout]     |               ^^^ pattern `storage_errors::StorageError::StorageBackendError { .. }` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `storage_errors::StorageError` defined here
[INFO] [stdout]    --> src/domain/errors/storage_errors.rs:5:10
[INFO] [stdout]     |
[INFO] [stdout] 5   | pub enum StorageError {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     StorageBackendError { message: String },
[INFO] [stdout]     |     ------------------- not covered
[INFO] [stdout]     = note: the matched value is of type `storage_errors::StorageError`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 243 ~             },
[INFO] [stdout] 244 +             storage_errors::StorageError::StorageBackendError { .. } => todo!()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/adapters/inbound/http/router.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let app = create_router(state);
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `should_remove_object` is never read
[INFO] [stdout]    --> src/adapters/outbound/persistence/in_memory_object_repository.rs:190:17
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut should_remove_object = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `storage_errors::StorageError::StorageBackendError { .. }` not covered
[INFO] [stdout]    --> src/adapters/outbound/storage/error.rs:228:15
[INFO] [stdout]     |
[INFO] [stdout] 228 |         match err {
[INFO] [stdout]     |               ^^^ pattern `storage_errors::StorageError::StorageBackendError { .. }` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `storage_errors::StorageError` defined here
[INFO] [stdout]    --> src/domain/errors/storage_errors.rs:5:10
[INFO] [stdout]     |
[INFO] [stdout] 5   | pub enum StorageError {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60  |     StorageBackendError { message: String },
[INFO] [stdout]     |     ------------------- not covered
[INFO] [stdout]     = note: the matched value is of type `storage_errors::StorageError`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 243 ~             },
[INFO] [stdout] 244 +             storage_errors::StorageError::StorageBackendError { .. } => todo!()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:223:47
[INFO] [stdout]     |
[INFO] [stdout] 223 |     async fn initiate_multipart_upload(&self, key: &ObjectKey) -> StorageResult<String> {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         key: &ObjectKey,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |         data: Bytes,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:263:44
[INFO] [stdout]     |
[INFO] [stdout] 263 |     async fn abort_multipart_upload(&self, key: &ObjectKey, upload_id: &str) -> StorageResult<()> {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upload_id`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:263:61
[INFO] [stdout]     |
[INFO] [stdout] 263 |     async fn abort_multipart_upload(&self, key: &ObjectKey, upload_id: &str) -> StorageResult<()> {
[INFO] [stdout]     |                                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_upload_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         key: &ObjectKey,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         metadata: HashMap<String, String>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:301:41
[INFO] [stdout]     |
[INFO] [stdout] 301 |     async fn get_object_metadata(&self, key: &ObjectKey) -> StorageResult<HashMap<String, String>> {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0046, E0061, E0277, E0308, E0407, E0412, E0560, E0599...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:223:47
[INFO] [stdout]     |
[INFO] [stdout] 223 |     async fn initiate_multipart_upload(&self, key: &ObjectKey) -> StorageResult<String> {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         key: &ObjectKey,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |         data: Bytes,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:263:44
[INFO] [stdout]     |
[INFO] [stdout] 263 |     async fn abort_multipart_upload(&self, key: &ObjectKey, upload_id: &str) -> StorageResult<()> {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `upload_id`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:263:61
[INFO] [stdout]     |
[INFO] [stdout] 263 |     async fn abort_multipart_upload(&self, key: &ObjectKey, upload_id: &str) -> StorageResult<()> {
[INFO] [stdout]     |                                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_upload_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         key: &ObjectKey,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         metadata: HashMap<String, String>,
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/adapters/outbound/storage/s3/s3_adapter.rs:301:41
[INFO] [stdout]     |
[INFO] [stdout] 301 |     async fn get_object_metadata(&self, key: &ObjectKey) -> StorageResult<HashMap<String, String>> {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `object-store-server` (lib) due to 71 previous errors; 20 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/app.rs:442:13
[INFO] [stdout]     |
[INFO] [stdout] 442 |         let app = create_in_memory_app().await.unwrap();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]    --> src/app.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let app = AppBuilder::new()
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deps`
[INFO] [stdout]    --> src/app.rs:463:13
[INFO] [stdout]     |
[INFO] [stdout] 463 |         let deps = AppBuilder::new().build_dependencies().await.unwrap();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_deps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0046, E0061, E0277, E0308, E0407, E0412, E0432, E0560...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `object-store-server` (lib test) due to 74 previous errors; 24 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cbf5404d65ad15c93637fe406853c9e8a81689d19efac44f5dbae67b15721a28", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cbf5404d65ad15c93637fe406853c9e8a81689d19efac44f5dbae67b15721a28", kill_on_drop: false }`
[INFO] [stdout] cbf5404d65ad15c93637fe406853c9e8a81689d19efac44f5dbae67b15721a28
