[INFO] cloning repository https://github.com/BrianLusina/product-store
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BrianLusina/product-store" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBrianLusina%2Fproduct-store", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBrianLusina%2Fproduct-store'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 69dfdc1385f245f7737d7786f0fc106ca77da5ef
[INFO] checking BrianLusina/product-store against master#292be5c7c05138d753bbd4b30db7a3f1a5c914f7 for pr-148271
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBrianLusina%2Fproduct-store" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BrianLusina/product-store
[INFO] finished tweaking git repo https://github.com/BrianLusina/product-store
[INFO] tweaked toml for git repo https://github.com/BrianLusina/product-store written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BrianLusina/product-store on toolchain 292be5c7c05138d753bbd4b30db7a3f1a5c914f7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BrianLusina/product-store 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" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pq-sys v0.6.3
[INFO] [stderr]   Downloaded diesel v2.2.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 02df4ad9b9e95365ffaf4aee301b65c19ce055bfc1a283604c3d62a7926df7b9
[INFO] running `Command { std: "docker" "start" "-a" "02df4ad9b9e95365ffaf4aee301b65c19ce055bfc1a283604c3d62a7926df7b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "02df4ad9b9e95365ffaf4aee301b65c19ce055bfc1a283604c3d62a7926df7b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "02df4ad9b9e95365ffaf4aee301b65c19ce055bfc1a283604c3d62a7926df7b9", kill_on_drop: false }`
[INFO] [stdout] 02df4ad9b9e95365ffaf4aee301b65c19ce055bfc1a283604c3d62a7926df7b9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 210c8ae6b5ad19bec275fd23f22bbd8d4f8aacd25a871aab62fcb4842841692b
[INFO] running `Command { std: "docker" "start" "-a" "210c8ae6b5ad19bec275fd23f22bbd8d4f8aacd25a871aab62fcb4842841692b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.164
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling bytes v1.8.0
[INFO] [stderr]     Checking hashbrown v0.15.1
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]     Checking bytestring v1.3.1
[INFO] [stderr]    Compiling pq-sys v0.6.3
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]    Compiling cc v1.2.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking indexmap v2.6.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking tokio v1.41.1
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]     Checking cookie v0.16.2
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling diesel_table_macro_syntax v0.2.0
[INFO] [stderr]     Checking zstd v0.13.2
[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 zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.4
[INFO] [stderr]    Compiling yoke-derive v0.7.4
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking actix-rt v2.10.0
[INFO] [stderr]     Checking actix-server v2.5.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking zerofrom v0.1.4
[INFO] [stderr]     Checking yoke v0.7.4
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling dsl_auto_type v0.1.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]    Compiling diesel_derives v2.2.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking 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 serde_json v1.0.133
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking actix-http v3.9.0
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking diesel v2.2.4
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.3
[INFO] [stderr]     Checking actix-web v4.9.0
[INFO] [stderr]     Checking product_store v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: No field with column name products_id
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[diesel(belongs_to(products))]
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `products`
[INFO] [stdout]  --> src/datastore/models/variant_models.rs:2:47
[INFO] [stdout]   |
[INFO] [stdout] 2 |     product_variants as ProductVariantsTable, products, variants as VariantsTable,
[INFO] [stdout]   |                                               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `diesel::row::NamedRow`
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use diesel::row::NamedRow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:19:93
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)>;
[INFO] [stdout]    |                                                                             ----------------^^^^^^^
[INFO] [stdout]    |                                                                             |
[INFO] [stdout]    |                                                                             help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]    = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:28:54
[INFO] [stdout]    |
[INFO] [stdout] 28 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>>;
[INFO] [stdout]    |                                      ----------------^^^^^^^
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]    = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: No field with column name products_id
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[diesel(belongs_to(products))]
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:58:105
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn fetch_product_with_variants(&self, id: i32) -> AnyResult<(ProductModel, Vec<ProductVariantModel, VariantModel>)> {
[INFO] [stdout]    |                                                                                    ---------------------^^^^^^^^^^^^
[INFO] [stdout]    |                                                                                    |
[INFO] [stdout]    |                                                                                    help: consider wrapping the inner types in tuple: `(ProductVariantModel, VariantModel)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]    = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:138:93
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)> {
[INFO] [stdout]     |                                                                             ----------------^^^^^^^
[INFO] [stdout]     |                                                                             |
[INFO] [stdout]     |                                                                             help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]     = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:173:54
[INFO] [stdout]     |
[INFO] [stdout] 173 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>> {
[INFO] [stdout]     |                                      ----------------^^^^^^^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]     = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `products`
[INFO] [stdout]  --> src/datastore/models/variant_models.rs:2:47
[INFO] [stdout]   |
[INFO] [stdout] 2 |     product_variants as ProductVariantsTable, products, variants as VariantsTable,
[INFO] [stdout]   |                                               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `diesel::row::NamedRow`
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use diesel::row::NamedRow;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | /     fn list_products_with_variants(
[INFO] [stdout] 171 | |         &self,
[INFO] [stdout] 172 | |         params: ListQueryParams,
[INFO] [stdout] 173 | |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>> {
[INFO] [stdout]     | |________________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:58:80
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn fetch_product_with_variants(&self, id: i32) -> AnyResult<(ProductModel, Vec<ProductVariantModel, VariantModel>)> {
[INFO] [stdout]    |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:138:73
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)> {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:173:34
[INFO] [stdout]     |
[INFO] [stdout] 173 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:19:73
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)>;
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]   --> src/core/entities/variant.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub struct Variant {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:28:34
[INFO] [stdout]    |
[INFO] [stdout] 28 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>>;
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]   --> src/core/entities/variant.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub struct Variant {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:19:93
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)>;
[INFO] [stdout]    |                                                                             ----------------^^^^^^^
[INFO] [stdout]    |                                                                             |
[INFO] [stdout]    |                                                                             help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]    = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:28:54
[INFO] [stdout]    |
[INFO] [stdout] 28 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>>;
[INFO] [stdout]    |                                      ----------------^^^^^^^
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]    = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:58:105
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn fetch_product_with_variants(&self, id: i32) -> AnyResult<(ProductModel, Vec<ProductVariantModel, VariantModel>)> {
[INFO] [stdout]    |                                                                                    ---------------------^^^^^^^^^^^^
[INFO] [stdout]    |                                                                                    |
[INFO] [stdout]    |                                                                                    help: consider wrapping the inner types in tuple: `(ProductVariantModel, VariantModel)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]    = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]    = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:138:93
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)> {
[INFO] [stdout]     |                                                                             ----------------^^^^^^^
[INFO] [stdout]     |                                                                             |
[INFO] [stdout]     |                                                                             help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]     = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `allocator_api`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:173:54
[INFO] [stdout]     |
[INFO] [stdout] 173 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>> {
[INFO] [stdout]     |                                      ----------------^^^^^^^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: consider wrapping the inner types in tuple: `(ProductVariant, Variant)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #32838 <https://github.com/rust-lang/rust/issues/32838> for more information
[INFO] [stdout]     = help: add `#![feature(allocator_api)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2025-10-29; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let existing_product = products.find(id).get_result::<ProductModel>(self.connection)?;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `belonging_to` found for struct `ProductVariantModel` in the current scope
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:61:52
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let variants_result = ProductVariantModel::belonging_to(&existing_product)
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^ function or associated item not found in `ProductVariantModel`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/datastore/models/variant_models.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ProductVariantModel {
[INFO] [stdout]    | ------------------------------ function or associated item `belonging_to` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following trait defines an item `belonging_to`, perhaps you need to implement it:
[INFO] [stdout]            candidate #1: `BelongingToDsl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:61:31
[INFO] [stdout]    |
[INFO] [stdout] 61 |           let variants_result = ProductVariantModel::belonging_to(&existing_product)
[INFO] [stdout]    |  _______________________________^
[INFO] [stdout] 62 | |             .inner_join(variants)
[INFO] [stdout] 63 | |             .load::<(ProductVariant, Variant)>(self.connection)?;
[INFO] [stdout]    | |________________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         Ok((existing_product, variants_result))
[INFO] [stdout]    |         ^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         Ok((existing_product, variants_result))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&std::string::String: FromStr` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:72:37
[INFO] [stdout]    |
[INFO] [stdout] 72 |             name: (&product.name()).parse().unwrap(),
[INFO] [stdout]    |                                     ^^^^^ the trait `FromStr` is not implemented for `&std::string::String`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromStr` is implemented for `std::string::String`
[INFO] [stdout] note: required by a bound in `core::str::<impl str>::parse`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/str/mod.rs:2701:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.connection.transaction(|| {
[INFO] [stdout]    |                         ^^^^^^^^^^^ -- takes 0 arguments
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         expected closure that takes 1 argument
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the closure to take and ignore the expected argument
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.connection.transaction(|_| {
[INFO] [stdout]    |                                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&product::Product: Insertable<products::table>` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:95:25
[INFO] [stdout]     |
[INFO] [stdout]  95 |                 .values(complete_product.product())
[INFO] [stdout]     |                  ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Insertable<products::table>` is not implemented for `&product::Product`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Insertable<T>`:
[INFO] [stdout]               `&'a (T0, T1)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5, T6)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5, T6, T7)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5, T6, T7, T8)` implements `Insertable<Tab>`
[INFO] [stdout]             and 124 others
[INFO] [stdout] note: required by a bound in `IncompleteInsertStatement::<T, Op>::values`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/diesel-2.2.4/src/query_builder/insert_statement/mod.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn values<U>(self, records: U) -> InsertStatement<T, U::Values, Op>
[INFO] [stdout]     |            ------ required by a bound in this associated function
[INFO] [stdout] 114 |     where
[INFO] [stdout] 115 |         U: Insertable<T>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^ required by this bound in `IncompleteInsertStatement::<T, Op>::values`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/product_store-a8d2ffb74203612c.long-type-12296116496807714601.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `variants::columns::name` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                     .filter(variant_name.eq(&new_variant.variant().name()))
[INFO] [stdout]     |                                          ^^ `variants::columns::name` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |         name -> Varchar,
[INFO] [stdout]     |         ---- method `eq` not found for this struct because it doesn't satisfy `variants::columns::name: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `variants::columns::name: Iterator`
[INFO] [stdout]             which is required by `&mut variants::columns::name: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `variants::columns::name` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...                   .values(variant_name.eq(&new_variant.variant().name()))
[INFO] [stdout]     |                                            ^^ `variants::columns::name` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |         name -> Varchar,
[INFO] [stdout]     |         ---- method `eq` not found for this struct because it doesn't satisfy `variants::columns::name: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `variants::columns::name: Iterator`
[INFO] [stdout]             which is required by `&mut variants::columns::name: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 | /     fn list_products_with_variants(
[INFO] [stdout] 171 | |         &self,
[INFO] [stdout] 172 | |         params: ListQueryParams,
[INFO] [stdout] 173 | |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>> {
[INFO] [stdout]     | |________________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `product_variants::columns::product_id` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:118:56
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   product_variant_product_id.eq(created_product.id),
[INFO] [stdout]     |                                                  ^^ `product_variants::columns::product_id` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:7:9
[INFO] [stdout]     |
[INFO] [stdout]   7 |         product_id -> Int4,
[INFO] [stdout]     |         ---------- method `eq` not found for this struct because it doesn't satisfy `product_variants::columns::product_id: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `product_variants::columns::product_id: Iterator`
[INFO] [stdout]             which is required by `&mut product_variants::columns::product_id: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `product_variants::columns::variant_id` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:119:56
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...                   product_variant_variant_id.eq(last_variant.id),
[INFO] [stdout]     |                                                  ^^ `product_variants::columns::variant_id` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:6:9
[INFO] [stdout]     |
[INFO] [stdout]   6 |         variant_id -> Int4,
[INFO] [stdout]     |         ---------- method `eq` not found for this struct because it doesn't satisfy `product_variants::columns::variant_id: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `product_variants::columns::variant_id: Iterator`
[INFO] [stdout]             which is required by `&mut product_variants::columns::variant_id: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `()`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:119:72
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...                   product_variant_variant_id.eq(last_variant.id),
[INFO] [stdout]     |                                                                  ^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `product_variants::columns::value` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:120:51
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...                   product_variant_value.eq(new_value),
[INFO] [stdout]     |                                             ^^ `product_variants::columns::value` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:8:9
[INFO] [stdout]     |
[INFO] [stdout]   8 |         value -> Nullable<Varchar>,
[INFO] [stdout]     |         ----- method `eq` not found for this struct because it doesn't satisfy `product_variants::columns::value: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `product_variants::columns::value: Iterator`
[INFO] [stdout]             which is required by `&mut product_variants::columns::value: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let existing_product_with_variants = self.fetch_product_with_variants(id as i32).unwrap_or_else(|error| {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]    --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct VariantModel {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:139:46
[INFO] [stdout]     |
[INFO] [stdout] 139 |           let existing_product_with_variants = self.fetch_product_with_variants(id as i32).unwrap_or_else(|error| {
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 140 | |             panic!("Error loading product with variants: {:?}", error);
[INFO] [stdout] 141 | |         });
[INFO] [stdout]     | |__________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]    --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct VariantModel {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |         for (p, v) in existing_product_variants {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]    --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct VariantModel {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Vec<ProductVariantModel, VariantModel>` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |         for (p, v) in existing_product_variants {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ `Vec<ProductVariantModel, VariantModel>` is not an iterator; try calling `.into_iter()` or `.iter()`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `IntoIterator` is not implemented for `Vec<ProductVariantModel, VariantModel>`
[INFO] [stdout]     = help: the following other types implement trait `IntoIterator`:
[INFO] [stdout]               &Vec<T, A>
[INFO] [stdout]               &mut Vec<T, A>
[INFO] [stdout]               Vec<T, A>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:58:80
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn fetch_product_with_variants(&self, id: i32) -> AnyResult<(ProductModel, Vec<ProductVariantModel, VariantModel>)> {
[INFO] [stdout]    |                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:138:73
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)> {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:173:34
[INFO] [stdout]     |
[INFO] [stdout] 173 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:19:73
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn get_product_with_variants(&self, id: u32) -> AnyResult<(Product, Vec<ProductVariant, Variant>)>;
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]   --> src/core/entities/variant.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub struct Variant {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]   --> src/core/ports/database/product_database.rs:28:34
[INFO] [stdout]    |
[INFO] [stdout] 28 |     ) -> AnyResult<Vec<(Product, Vec<ProductVariant, Variant>)>>;
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]   --> src/core/entities/variant.rs:2:1
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub struct Variant {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this enum variant takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |         ^^          --------------- unexpected argument #2 of type `Vec<(ProductVariant, Variant)>`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `(Product, Vec<ProductVariant, Variant>)`, found `Product`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     = note: expected tuple `(product::Product, Vec<ProductVariant, Variant>)`
[INFO] [stdout]               found struct `product::Product`
[INFO] [stdout] help: the type constructed contains `product::Product` due to the type of the argument passed
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |         ^^^-------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/result.rs:561:5
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 153 -         Ok(product, variants_result)
[INFO] [stdout] 153 +         Ok(/* (product::Product, Vec<ProductVariant, Variant>) */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `belonging_to` found for struct `ProductVariantModel` in the current scope
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:175:52
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let variants_result = ProductVariantModel::belonging_to(&product_records)
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ function or associated item not found in `ProductVariantModel`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/variant_models.rs:26:1
[INFO] [stdout]     |
[INFO] [stdout]  26 | pub struct ProductVariantModel {
[INFO] [stdout]     | ------------------------------ function or associated item `belonging_to` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `belonging_to`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BelongingToDsl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:175:31
[INFO] [stdout]     |
[INFO] [stdout] 175 |           let variants_result = ProductVariantModel::belonging_to(&product_records)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 176 | |             .inner_join(variants)
[INFO] [stdout] 177 | |             .load::<(ProductVariantModel, VariantModel)>(self.connection)?
[INFO] [stdout]     | |__________________________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         Ok(data)
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         Ok(data)
[INFO] [stdout]     |         ^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:308:29
[INFO] [stdout]     |
[INFO] [stdout] 308 |         database_connection.test_transaction::<_, Error, _>(|| {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^                -- takes 0 arguments
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             expected closure that takes 1 argument
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the closure to take and ignore the expected argument
[INFO] [stdout]     |
[INFO] [stdout] 308 |         database_connection.test_transaction::<_, Error, _>(|_| {
[INFO] [stdout]     |                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*self.connection` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 |             .get_result(self.connection)
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn insert(&mut self, product: NewProductModel) -> Result<ProductModel, DieselError> {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let existing_product = products.find(id).get_result::<ProductModel>(self.connection)?;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*self.connection` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 |             .load::<ProductModel>(self.connection)
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn fetch_products(&mut self, params: ListQueryParams) -> Vec<ProductModel> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*self.connection` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:55:20
[INFO] [stdout]    |
[INFO] [stdout] 55 |             .first(self.connection)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn fetch_product_by_id(&mut self, id: i32) -> Result<ProductModel, DieselError> {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `conn` as mutable more than once at a time
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |         let product_repository = ProductRepository::new(&mut conn);
[INFO] [stdout]     |                                                         --------- first mutable borrow occurs here
[INFO] [stdout] 202 |
[INFO] [stdout] 203 |         conn.test_transaction::<_, diesel::result::Error, _>(|_| {
[INFO] [stdout]     |         ^^^^ second mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 208 |             let actual = product_repository.create_product(Product::new(
[INFO] [stdout]     |                          ------------------ first borrow later captured here by closure
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0499, E0593, E0596, E0599, E0609, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `belonging_to` found for struct `ProductVariantModel` in the current scope
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:61:52
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let variants_result = ProductVariantModel::belonging_to(&existing_product)
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^ function or associated item not found in `ProductVariantModel`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/datastore/models/variant_models.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ProductVariantModel {
[INFO] [stdout]    | ------------------------------ function or associated item `belonging_to` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following trait defines an item `belonging_to`, perhaps you need to implement it:
[INFO] [stdout]            candidate #1: `BelongingToDsl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:61:31
[INFO] [stdout]    |
[INFO] [stdout] 61 |           let variants_result = ProductVariantModel::belonging_to(&existing_product)
[INFO] [stdout]    |  _______________________________^
[INFO] [stdout] 62 | |             .inner_join(variants)
[INFO] [stdout] 63 | |             .load::<(ProductVariant, Variant)>(self.connection)?;
[INFO] [stdout]    | |________________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         Ok((existing_product, variants_result))
[INFO] [stdout]    |         ^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         Ok((existing_product, variants_result))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]   --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct VariantModel {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: the following other types implement trait `Allocator`:
[INFO] [stdout]              &A
[INFO] [stdout]              System
[INFO] [stdout]              std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&std::string::String: FromStr` is not satisfied
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:72:37
[INFO] [stdout]    |
[INFO] [stdout] 72 |             name: (&product.name()).parse().unwrap(),
[INFO] [stdout]    |                                     ^^^^^ the trait `FromStr` is not implemented for `&std::string::String`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromStr` is implemented for `std::string::String`
[INFO] [stdout] note: required by a bound in `core::str::<impl str>::parse`
[INFO] [stdout]   --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/str/mod.rs:2701:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0593]: closure is expected to take 1 argument, but it takes 0 arguments
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.connection.transaction(|| {
[INFO] [stdout]    |                         ^^^^^^^^^^^ -- takes 0 arguments
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         expected closure that takes 1 argument
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the closure to take and ignore the expected argument
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.connection.transaction(|_| {
[INFO] [stdout]    |                                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&product::Product: Insertable<products::table>` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:95:25
[INFO] [stdout]     |
[INFO] [stdout]  95 |                 .values(complete_product.product())
[INFO] [stdout]     |                  ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Insertable<products::table>` is not implemented for `&product::Product`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Insertable<T>`:
[INFO] [stdout]               `&'a (T0, T1)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5, T6)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5, T6, T7)` implements `Insertable<Tab>`
[INFO] [stdout]               `&'a (T0, T1, T2, T3, T4, T5, T6, T7, T8)` implements `Insertable<Tab>`
[INFO] [stdout]             and 124 others
[INFO] [stdout] note: required by a bound in `IncompleteInsertStatement::<T, Op>::values`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/diesel-2.2.4/src/query_builder/insert_statement/mod.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn values<U>(self, records: U) -> InsertStatement<T, U::Values, Op>
[INFO] [stdout]     |            ------ required by a bound in this associated function
[INFO] [stdout] 114 |     where
[INFO] [stdout] 115 |         U: Insertable<T>,
[INFO] [stdout]     |            ^^^^^^^^^^^^^ required by this bound in `IncompleteInsertStatement::<T, Op>::values`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/product_store-283f2badea127e04.long-type-12623851580985592870.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `product_store` (bin "product_store" test) due to 42 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0599]: `variants::columns::name` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:101:42
[INFO] [stdout]     |
[INFO] [stdout] 101 |                     .filter(variant_name.eq(&new_variant.variant().name()))
[INFO] [stdout]     |                                          ^^ `variants::columns::name` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |         name -> Varchar,
[INFO] [stdout]     |         ---- method `eq` not found for this struct because it doesn't satisfy `variants::columns::name: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `variants::columns::name: Iterator`
[INFO] [stdout]             which is required by `&mut variants::columns::name: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `variants::columns::name` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:109:50
[INFO] [stdout]     |
[INFO] [stdout] 109 | ...                   .values(variant_name.eq(&new_variant.variant().name()))
[INFO] [stdout]     |                                            ^^ `variants::columns::name` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:24:9
[INFO] [stdout]     |
[INFO] [stdout]  24 |         name -> Varchar,
[INFO] [stdout]     |         ---- method `eq` not found for this struct because it doesn't satisfy `variants::columns::name: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `variants::columns::name: Iterator`
[INFO] [stdout]             which is required by `&mut variants::columns::name: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `product_variants::columns::product_id` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:118:56
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   product_variant_product_id.eq(created_product.id),
[INFO] [stdout]     |                                                  ^^ `product_variants::columns::product_id` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:7:9
[INFO] [stdout]     |
[INFO] [stdout]   7 |         product_id -> Int4,
[INFO] [stdout]     |         ---------- method `eq` not found for this struct because it doesn't satisfy `product_variants::columns::product_id: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `product_variants::columns::product_id: Iterator`
[INFO] [stdout]             which is required by `&mut product_variants::columns::product_id: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `product_variants::columns::variant_id` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:119:56
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...                   product_variant_variant_id.eq(last_variant.id),
[INFO] [stdout]     |                                                  ^^ `product_variants::columns::variant_id` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:6:9
[INFO] [stdout]     |
[INFO] [stdout]   6 |         variant_id -> Int4,
[INFO] [stdout]     |         ---------- method `eq` not found for this struct because it doesn't satisfy `product_variants::columns::variant_id: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `product_variants::columns::variant_id: Iterator`
[INFO] [stdout]             which is required by `&mut product_variants::columns::variant_id: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `id` on type `()`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:119:72
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...                   product_variant_variant_id.eq(last_variant.id),
[INFO] [stdout]     |                                                                  ^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: `product_variants::columns::value` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:120:51
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...                   product_variant_value.eq(new_value),
[INFO] [stdout]     |                                             ^^ `product_variants::columns::value` is not an iterator
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/schema.rs:8:9
[INFO] [stdout]     |
[INFO] [stdout]   8 |         value -> Nullable<Varchar>,
[INFO] [stdout]     |         ----- method `eq` not found for this struct because it doesn't satisfy `product_variants::columns::value: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `product_variants::columns::value: Iterator`
[INFO] [stdout]             which is required by `&mut product_variants::columns::value: Iterator`
[INFO] [stdout] note: the trait `Iterator` must be implemented
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/iter/traits/iterator.rs:40:1
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `ExpressionMethods` which provides `eq` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]   1 + use diesel::ExpressionMethods;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:139:51
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let existing_product_with_variants = self.fetch_product_with_variants(id as i32).unwrap_or_else(|error| {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]    --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct VariantModel {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:139:46
[INFO] [stdout]     |
[INFO] [stdout] 139 |           let existing_product_with_variants = self.fetch_product_with_variants(id as i32).unwrap_or_else(|error| {
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 140 | |             panic!("Error loading product with variants: {:?}", error);
[INFO] [stdout] 141 | |         });
[INFO] [stdout]     | |__________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]    --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct VariantModel {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `VariantModel: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |         for (p, v) in existing_product_variants {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `VariantModel`
[INFO] [stdout]    --> src/datastore/models/variant_models.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | pub struct VariantModel {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Vec<ProductVariantModel, VariantModel>` is not an iterator
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |         for (p, v) in existing_product_variants {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ `Vec<ProductVariantModel, VariantModel>` is not an iterator; try calling `.into_iter()` or `.iter()`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `IntoIterator` is not implemented for `Vec<ProductVariantModel, VariantModel>`
[INFO] [stdout]     = help: the following other types implement trait `IntoIterator`:
[INFO] [stdout]               &Vec<T, A>
[INFO] [stdout]               &mut Vec<T, A>
[INFO] [stdout]               Vec<T, A>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this enum variant takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |         ^^          --------------- unexpected argument #2 of type `Vec<(ProductVariant, Variant)>`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `(Product, Vec<ProductVariant, Variant>)`, found `Product`
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     = note: expected tuple `(product::Product, Vec<ProductVariant, Variant>)`
[INFO] [stdout]               found struct `product::Product`
[INFO] [stdout] help: the type constructed contains `product::Product` due to the type of the argument passed
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |         ^^^-------^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            this argument influences the type of `Ok`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/result.rs:561:5
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 153 -         Ok(product, variants_result)
[INFO] [stdout] 153 +         Ok(/* (product::Product, Vec<ProductVariant, Variant>) */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |         Ok(product, variants_result)
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `belonging_to` found for struct `ProductVariantModel` in the current scope
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:175:52
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let variants_result = ProductVariantModel::belonging_to(&product_records)
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^ function or associated item not found in `ProductVariantModel`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/datastore/models/variant_models.rs:26:1
[INFO] [stdout]     |
[INFO] [stdout]  26 | pub struct ProductVariantModel {
[INFO] [stdout]     | ------------------------------ function or associated item `belonging_to` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following trait defines an item `belonging_to`, perhaps you need to implement it:
[INFO] [stdout]             candidate #1: `BelongingToDsl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:175:31
[INFO] [stdout]     |
[INFO] [stdout] 175 |           let variants_result = ProductVariantModel::belonging_to(&product_records)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 176 | |             .inner_join(variants)
[INFO] [stdout] 177 | |             .load::<(ProductVariantModel, VariantModel)>(self.connection)?
[INFO] [stdout]     | |__________________________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         Ok(data)
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Variant: Allocator` is not satisfied
[INFO] [stdout]    --> src/datastore/repositories/product_repository.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |         Ok(data)
[INFO] [stdout]     |         ^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Allocator` is not implemented for `Variant`
[INFO] [stdout]    --> src/core/entities/variant.rs:2:1
[INFO] [stdout]     |
[INFO] [stdout]   2 | pub struct Variant {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Allocator`:
[INFO] [stdout]               &A
[INFO] [stdout]               System
[INFO] [stdout]               std::alloc::Global
[INFO] [stdout] note: required by a bound in `Vec`
[INFO] [stdout]    --> /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*self.connection` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 |             .get_result(self.connection)
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn insert(&mut self, product: NewProductModel) -> Result<ProductModel, DieselError> {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*self.connection` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 |             .load::<ProductModel>(self.connection)
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn fetch_products(&mut self, params: ListQueryParams) -> Vec<ProductModel> {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `*self.connection` as mutable, as it is behind a `&` reference
[INFO] [stdout]   --> src/datastore/repositories/product_repository.rs:55:20
[INFO] [stdout]    |
[INFO] [stdout] 55 |             .first(self.connection)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn fetch_product_by_id(&mut self, id: i32) -> Result<ProductModel, DieselError> {
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0593, E0596, E0599, E0609, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `product_store` (bin "product_store") due to 40 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "210c8ae6b5ad19bec275fd23f22bbd8d4f8aacd25a871aab62fcb4842841692b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "210c8ae6b5ad19bec275fd23f22bbd8d4f8aacd25a871aab62fcb4842841692b", kill_on_drop: false }`
[INFO] [stdout] 210c8ae6b5ad19bec275fd23f22bbd8d4f8aacd25a871aab62fcb4842841692b
