[INFO] fetching crate retrom-service 0.7.39...
[INFO] checking retrom-service-0.7.39 against try#95813608313bff49cfc1afc393a946a3c085b772 for pr-148946
[INFO] extracting crate retrom-service 0.7.39 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate retrom-service 0.7.39
[INFO] finished tweaking crates.io crate retrom-service 0.7.39
[INFO] tweaked toml for crates.io crate retrom-service 0.7.39 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate retrom-service 0.7.39 on toolchain 95813608313bff49cfc1afc393a946a3c085b772
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate retrom-service 0.7.39 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" "+95813608313bff49cfc1afc393a946a3c085b772" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2fae7110a2382385ecce1bf326087edf9b9ad30556856daeda84d47d208d659e
[INFO] running `Command { std: "docker" "start" "-a" "2fae7110a2382385ecce1bf326087edf9b9ad30556856daeda84d47d208d659e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2fae7110a2382385ecce1bf326087edf9b9ad30556856daeda84d47d208d659e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2fae7110a2382385ecce1bf326087edf9b9ad30556856daeda84d47d208d659e", kill_on_drop: false }`
[INFO] [stdout] 2fae7110a2382385ecce1bf326087edf9b9ad30556856daeda84d47d208d659e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4445a7a06af00bd9d0f2a37426190f5b95abbfe606773d505e370f5aaf51e0e1
[INFO] running `Command { std: "docker" "start" "-a" "4445a7a06af00bd9d0f2a37426190f5b95abbfe606773d505e370f5aaf51e0e1", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling syn v2.0.103
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking ahash v0.7.8
[INFO] [stderr]     Checking zlib-rs v0.5.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling openssl-src v300.5.0+3.5.0
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking libz-rs-sys v0.5.1
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]    Compiling prettyplease v0.2.34
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking indexmap v1.9.3
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling pq-src v0.3.9+libpq-17.5
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling pq-sys v0.6.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling liblzma-sys v0.4.4
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]    Compiling prost-types v0.13.5
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling prost-build v0.13.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bigdecimal v0.4.8
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling rustls v0.22.4
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]     Checking unicode-properties v0.1.3
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking stringprep v0.1.5
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]    Compiling prost-wkt-build v0.6.1
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]    Compiling dsl_auto_type v0.1.3
[INFO] [stderr]     Checking hyper-util v0.1.14
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]    Compiling diesel_table_macro_syntax v0.2.0
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]    Compiling pest v2.8.1
[INFO] [stderr]     Checking postgres-protocol v0.6.8
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking phf_shared v0.11.3
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling diesel_derives v2.2.5
[INFO] [stderr]    Compiling prost-types v0.12.6
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]     Checking opentelemetry v0.29.1
[INFO] [stderr]     Checking tokio-io-timeout v1.2.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling libdeflate-sys v1.24.0
[INFO] [stderr]     Checking webpki-roots v1.0.0
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking hdrhistogram v7.5.4
[INFO] [stderr]     Checking filetime v0.2.25
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]     Checking weezl v0.1.10
[INFO] [stderr]     Checking libbz2-rs-sys v0.2.1
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking bzip2 v0.6.0
[INFO] [stderr]     Checking liblzma v0.4.1
[INFO] [stderr]    Compiling libwebp-sys v0.9.5
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking rustls-native-certs v0.7.3
[INFO] [stderr]     Checking tokio-rustls v0.25.0
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking brotli v8.0.1
[INFO] [stderr]     Checking erased-serde v0.4.6
[INFO] [stderr]    Compiling migrations_internals v2.2.0
[INFO] [stderr]    Compiling prost-build v0.12.6
[INFO] [stderr]    Compiling pest_meta v2.8.1
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking postgres-types v0.2.9
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling typetag-impl v0.2.20
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling nasm-rs v0.3.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking deflate64 v0.1.9
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking glob v0.3.2
[INFO] [stderr]     Checking inventory v0.3.20
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking whoami v1.6.0
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking tokio-postgres v0.7.13
[INFO] [stderr]     Checking image-webp v0.2.3
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]    Compiling mozjpeg-sys v2.2.1
[INFO] [stderr]     Checking tonic v0.11.0
[INFO] [stderr]     Checking opentelemetry_sdk v0.29.0
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking typetag v0.2.20
[INFO] [stderr]     Checking async-compression v0.4.25
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking deadpool v0.12.2
[INFO] [stderr]     Checking zune-jpeg v0.4.20
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling pest_generator v2.8.1
[INFO] [stderr]    Compiling tonic-build v0.11.0
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]    Compiling migrations_macros v2.2.0
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]    Compiling prost-wkt-types v0.6.1
[INFO] [stderr]    Compiling gifsicle v1.95.0
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]     Checking scoped-futures v0.1.4
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling retrom-db v0.7.39
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking bumpalo v3.18.1
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]    Compiling retrom-codegen v0.7.39
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking zopfli v0.8.2
[INFO] [stderr]     Checking tonic v0.12.3
[INFO] [stderr]    Compiling pest_derive v2.8.1
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]     Checking prost-wkt v0.6.1
[INFO] [stderr]     Checking libdeflater v1.24.0
[INFO] [stderr]     Checking cfb v0.7.3
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking http-range-header v0.3.1
[INFO] [stderr]     Checking mutate_once v0.1.1
[INFO] [stderr]     Checking oxipng v9.1.5
[INFO] [stderr]     Checking kamadak-exif v0.6.1
[INFO] [stderr]     Checking tower-http v0.4.4
[INFO] [stderr]     Checking ron v0.7.1
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking imagequant v4.4.1
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking notify-types v1.0.1
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking infer v0.19.0
[INFO] [stderr]     Checking headers v0.3.9
[INFO] [stderr]     Checking opentelemetry-proto v0.29.0
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking nt-time v0.11.1
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking lodepng v3.12.1
[INFO] [stderr]     Checking filetime_creation v0.2.0
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking img-parts v0.3.3
[INFO] [stderr]     Checking lzma-rust2 v0.1.8
[INFO] [stderr]     Checking warp v0.3.7
[INFO] [stderr]     Checking signal-hook-tokio v0.3.1
[INFO] [stderr]     Checking tracing-opentelemetry v0.30.0
[INFO] [stderr]     Checking tonic-web v0.11.0
[INFO] [stderr]     Checking async_zip v0.0.17
[INFO] [stderr]     Checking notify v7.0.0
[INFO] [stderr]     Checking sevenz-rust2 v0.12.1
[INFO] [stderr]     Checking config v0.13.4
[INFO] [stderr]     Checking tonic-reflection v0.11.0
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]     Checking sanitize-filename v0.5.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tokio-retry v0.3.0
[INFO] [stderr]     Checking retry v2.1.0
[INFO] [stderr]     Checking opentelemetry-semantic-conventions v0.29.0
[INFO] [stderr]     Checking deunicode v1.6.2
[INFO] [stderr]     Checking webp v0.3.0
[INFO] [stderr]     Checking libcaesium v0.17.4
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking diesel v2.2.10
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.20
[INFO] [stderr]     Checking opentelemetry-http v0.29.0
[INFO] [stderr]     Checking opentelemetry-otlp v0.29.0
[INFO] [stderr]     Checking diesel_migrations v2.2.0
[INFO] [stderr]     Checking diesel-async v0.5.2
[INFO] [stderr]     Checking retrom-service v0.7.39 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/library/content_resolver/game_resolver.rs:98:14
[INFO] [stdout]    |
[INFO] [stdout] 98 |             .get_results(&mut conn)
[INFO] [stdout]    |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         Ok(diesel::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 96 +             .values(&new_game_files)
[INFO] [stdout] 97 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         Ok(diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 96 +             .values(&new_game_files)
[INFO] [stdout] 97 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:211:14
[INFO] [stdout]     |
[INFO] [stdout] 211 |             .get_results(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 208 ~         Ok(diesel::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 209 +             .values(&new_game_files)
[INFO] [stdout] 210 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 208 ~         Ok(diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 209 +             .values(&new_game_files)
[INFO] [stdout] 210 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/library/content_resolver/game_resolver.rs:98:14
[INFO] [stdout]    |
[INFO] [stdout] 98 |             .get_results(&mut conn)
[INFO] [stdout]    |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         Ok(diesel::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 96 +             .values(&new_game_files)
[INFO] [stdout] 97 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         Ok(diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 96 +             .values(&new_game_files)
[INFO] [stdout] 97 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:247:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |             .get_result(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 244 ~         let row: Option<Game> = diesel::RunQueryDsl::get_result(diesel::insert_into(schema::games::table)
[INFO] [stdout] 245 +             .values(&insertable)
[INFO] [stdout] 246 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 244 ~         let row: Option<Game> = diesel_async::RunQueryDsl::get_result(diesel::insert_into(schema::games::table)
[INFO] [stdout] 245 +             .values(&insertable)
[INFO] [stdout] 246 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:244:33
[INFO] [stdout]     |
[INFO] [stdout] 244 |           let row: Option<Game> = diesel::insert_into(schema::games::table)
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 245 | |             .values(&insertable)
[INFO] [stdout] 246 | |             .on_conflict_do_nothing()
[INFO] [stdout] 247 | |             .get_result(&mut conn)
[INFO] [stdout] 248 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:255:18
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 .get_result(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 253 ~             None => diesel_async::RunQueryDsl::get_result(schema::games::table
[INFO] [stdout] 254 +                 .filter(schema::games::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 253 ~             None => diesel::RunQueryDsl::get_result(schema::games::table
[INFO] [stdout] 254 +                 .filter(schema::games::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:211:14
[INFO] [stdout]     |
[INFO] [stdout] 211 |             .get_results(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 208 ~         Ok(diesel::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 209 +             .values(&new_game_files)
[INFO] [stdout] 210 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 208 ~         Ok(diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::game_files::table)
[INFO] [stdout] 209 +             .values(&new_game_files)
[INFO] [stdout] 210 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |               None => schema::games::table
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 254 | |                 .filter(schema::games::path.eq(&insertable.path))
[INFO] [stdout] 255 | |                 .get_result(&mut conn)
[INFO] [stdout] 256 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |             .get_result(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         let row: Option<Platform> = diesel::RunQueryDsl::get_result(diesel::insert_into(schema::platforms::table)
[INFO] [stdout] 138 +             .values(&insertable)
[INFO] [stdout] 139 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         let row: Option<Platform> = diesel_async::RunQueryDsl::get_result(diesel::insert_into(schema::platforms::table)
[INFO] [stdout] 138 +             .values(&insertable)
[INFO] [stdout] 139 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 |           let row: Option<Platform> = diesel::insert_into(schema::platforms::table)
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 138 | |             .values(&insertable)
[INFO] [stdout] 139 | |             .on_conflict_do_nothing()
[INFO] [stdout] 140 | |             .get_result(&mut conn)
[INFO] [stdout] 141 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:148:18
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 .get_result(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 146 ~             None => diesel_async::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 147 +                 .filter(schema::platforms::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 146 ~             None => diesel::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 147 +                 .filter(schema::platforms::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:146:21
[INFO] [stdout]     |
[INFO] [stdout] 146 |               None => schema::platforms::table
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 147 | |                 .filter(schema::platforms::path.eq(&insertable.path))
[INFO] [stdout] 148 | |                 .get_result(&mut conn)
[INFO] [stdout] 149 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:247:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |             .get_result(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 244 ~         let row: Option<Game> = diesel::RunQueryDsl::get_result(diesel::insert_into(schema::games::table)
[INFO] [stdout] 245 +             .values(&insertable)
[INFO] [stdout] 246 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 244 ~         let row: Option<Game> = diesel_async::RunQueryDsl::get_result(diesel::insert_into(schema::games::table)
[INFO] [stdout] 245 +             .values(&insertable)
[INFO] [stdout] 246 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:244:33
[INFO] [stdout]     |
[INFO] [stdout] 244 |           let row: Option<Game> = diesel::insert_into(schema::games::table)
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 245 | |             .values(&insertable)
[INFO] [stdout] 246 | |             .on_conflict_do_nothing()
[INFO] [stdout] 247 | |             .get_result(&mut conn)
[INFO] [stdout] 248 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:255:18
[INFO] [stdout]     |
[INFO] [stdout] 255 |                 .get_result(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 253 ~             None => diesel_async::RunQueryDsl::get_result(schema::games::table
[INFO] [stdout] 254 +                 .filter(schema::games::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 253 ~             None => diesel::RunQueryDsl::get_result(schema::games::table
[INFO] [stdout] 254 +                 .filter(schema::games::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/game_resolver.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |               None => schema::games::table
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 254 | |                 .filter(schema::games::path.eq(&insertable.path))
[INFO] [stdout] 255 | |                 .get_result(&mut conn)
[INFO] [stdout] 256 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |             .get_result(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         let row: Option<Platform> = diesel::RunQueryDsl::get_result(diesel::insert_into(schema::platforms::table)
[INFO] [stdout] 138 +             .values(&insertable)
[INFO] [stdout] 139 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         let row: Option<Platform> = diesel_async::RunQueryDsl::get_result(diesel::insert_into(schema::platforms::table)
[INFO] [stdout] 138 +             .values(&insertable)
[INFO] [stdout] 139 +             .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 |           let row: Option<Platform> = diesel::insert_into(schema::platforms::table)
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 138 | |             .values(&insertable)
[INFO] [stdout] 139 | |             .on_conflict_do_nothing()
[INFO] [stdout] 140 | |             .get_result(&mut conn)
[INFO] [stdout] 141 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:148:18
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 .get_result(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 146 ~             None => diesel_async::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 147 +                 .filter(schema::platforms::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 146 ~             None => diesel::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 147 +                 .filter(schema::platforms::path.eq(&insertable.path)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/content_resolver/platform_resolver.rs:146:21
[INFO] [stdout]     |
[INFO] [stdout] 146 |               None => schema::platforms::table
[INFO] [stdout]     |  _____________________^
[INFO] [stdout] 147 | |                 .filter(schema::platforms::path.eq(&insertable.path))
[INFO] [stdout] 148 | |                 .get_result(&mut conn)
[INFO] [stdout] 149 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 |         .load::<retrom::Platform>(&mut conn)
[INFO] [stdout]    |          ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 44 ~     let platforms = match diesel_async::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 45 +         .filter(schema::platforms::third_party.eq(false)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 44 ~     let platforms = match diesel::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 45 +         .filter(schema::platforms::third_party.eq(false)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let existing = PlatformMetadata::belonging_to(&platform)
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |                   let existing = PlatformMetadata::belonging_to(&platform)
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 72 | |                     .first::<PlatformMetadata>(&mut conn)
[INFO] [stdout] 73 | |                     .await
[INFO] [stdout]    | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |                         .replace(exists.to_u64().unwrap());
[INFO] [stdout]    |                                  ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 |         .load::<retrom::Platform>(&mut conn)
[INFO] [stdout]    |          ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 44 ~     let platforms = match diesel_async::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 45 +         .filter(schema::platforms::third_party.eq(false)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 44 ~     let platforms = match diesel::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 45 +         .filter(schema::platforms::third_party.eq(false)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:112:26
[INFO] [stdout]     |
[INFO] [stdout] 112 |                         .execute(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 107 ~                     diesel::RunQueryDsl::execute(diesel::insert_into(schema::platform_metadata::table)
[INFO] [stdout] 108 +                         .values(&metadata)
[INFO] [stdout] 109 +                         .on_conflict(schema::platform_metadata::platform_id)
[INFO] [stdout] 110 +                         .do_update()
[INFO] [stdout] 111 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 107 ~                     diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::platform_metadata::table)
[INFO] [stdout] 108 +                         .values(&metadata)
[INFO] [stdout] 109 +                         .on_conflict(schema::platform_metadata::platform_id)
[INFO] [stdout] 110 +                         .do_update()
[INFO] [stdout] 111 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 107 | /                     diesel::insert_into(schema::platform_metadata::table)
[INFO] [stdout] 108 | |                         .values(&metadata)
[INFO] [stdout] 109 | |                         .on_conflict(schema::platform_metadata::platform_id)
[INFO] [stdout] 110 | |                         .do_update()
[INFO] [stdout] 111 | |                         .set(&metadata)
[INFO] [stdout] 112 | |                         .execute(&mut conn)
[INFO] [stdout] 113 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:114:35
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         .map_err(|e| {
[INFO] [stdout]     |                                   ^
[INFO] [stdout] 115 |                             tracing::error!("Failed to insert metadata: {}", e);
[INFO] [stdout] 116 |                             e.to_string()
[INFO] [stdout]     |                             - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         .map_err(|e: /* Type */| {
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |         .load(&mut conn)
[INFO] [stdout]     |          ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 127 ~     let games: Vec<retrom::Game> = diesel_async::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 128 +         .filter(schema::games::third_party.eq(false)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 127 ~     let games: Vec<retrom::Game> = diesel::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 128 +         .filter(schema::games::third_party.eq(false)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |       let games: Vec<retrom::Game> = schema::games::table
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 128 | |         .filter(schema::games::third_party.eq(false))
[INFO] [stdout] 129 | |         .load(&mut conn)
[INFO] [stdout] 130 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 let existing = PlatformMetadata::belonging_to(&platform)
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |                   let existing = PlatformMetadata::belonging_to(&platform)
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 72 | |                     .first::<PlatformMetadata>(&mut conn)
[INFO] [stdout] 73 | |                     .await
[INFO] [stdout]    | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:131:19
[INFO] [stdout]     |
[INFO] [stdout] 131 |         .map_err(|e| {
[INFO] [stdout]     |                   ^
[INFO] [stdout] 132 |             tracing::error!("Failed to load games: {}", e);
[INFO] [stdout] 133 |             e.to_string()
[INFO] [stdout]     |             - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 131 |         .map_err(|e: /* Type */| {
[INFO] [stdout]     |                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/library/metadata_handlers.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |                         .replace(exists.to_u64().unwrap());
[INFO] [stdout]    |                                  ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 let existing = GameMetadata::belonging_to(&game)
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                   let existing = GameMetadata::belonging_to(&game)
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 152 | |                     .first::<GameMetadata>(&mut conn)
[INFO] [stdout] 153 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         .first(&mut conn)
[INFO] [stdout]     |                          ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 168 ~                     let platform_meta: Option<PlatformMetadata> = diesel_async::RunQueryDsl::first(schema::platform_metadata::table
[INFO] [stdout] 169 +                         .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 168 ~                     let platform_meta: Option<PlatformMetadata> = diesel::RunQueryDsl::first(schema::platform_metadata::table
[INFO] [stdout] 169 +                         .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:168:67
[INFO] [stdout]     |
[INFO] [stdout] 168 |                       let platform_meta: Option<PlatformMetadata> = schema::platform_metadata::table
[INFO] [stdout]     |  ___________________________________________________________________^
[INFO] [stdout] 169 | |                         .find(id)
[INFO] [stdout] 170 | |                         .first(&mut conn)
[INFO] [stdout] 171 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:176:36
[INFO] [stdout]     |
[INFO] [stdout] 176 |                         .and_then(|id| id.to_u64());
[INFO] [stdout]     |                                    ^^  -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 176 |                         .and_then(|id: /* Type */| id.to_u64());
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:189:34
[INFO] [stdout]     |
[INFO] [stdout] 189 |                         .replace(exists.to_u64().unwrap());
[INFO] [stdout]     |                                  ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:112:26
[INFO] [stdout]     |
[INFO] [stdout] 112 |                         .execute(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 107 ~                     diesel::RunQueryDsl::execute(diesel::insert_into(schema::platform_metadata::table)
[INFO] [stdout] 108 +                         .values(&metadata)
[INFO] [stdout] 109 +                         .on_conflict(schema::platform_metadata::platform_id)
[INFO] [stdout] 110 +                         .do_update()
[INFO] [stdout] 111 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 107 ~                     diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::platform_metadata::table)
[INFO] [stdout] 108 +                         .values(&metadata)
[INFO] [stdout] 109 +                         .on_conflict(schema::platform_metadata::platform_id)
[INFO] [stdout] 110 +                         .do_update()
[INFO] [stdout] 111 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 107 | /                     diesel::insert_into(schema::platform_metadata::table)
[INFO] [stdout] 108 | |                         .values(&metadata)
[INFO] [stdout] 109 | |                         .on_conflict(schema::platform_metadata::platform_id)
[INFO] [stdout] 110 | |                         .do_update()
[INFO] [stdout] 111 | |                         .set(&metadata)
[INFO] [stdout] 112 | |                         .execute(&mut conn)
[INFO] [stdout] 113 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:114:35
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         .map_err(|e| {
[INFO] [stdout]     |                                   ^
[INFO] [stdout] 115 |                             tracing::error!("Failed to insert metadata: {}", e);
[INFO] [stdout] 116 |                             e.to_string()
[INFO] [stdout]     |                             - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 114 |                         .map_err(|e: /* Type */| {
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |         .load(&mut conn)
[INFO] [stdout]     |          ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 127 ~     let games: Vec<retrom::Game> = diesel_async::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 128 +         .filter(schema::games::third_party.eq(false)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 127 ~     let games: Vec<retrom::Game> = diesel::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 128 +         .filter(schema::games::third_party.eq(false)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |       let games: Vec<retrom::Game> = schema::games::table
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 128 | |         .filter(schema::games::third_party.eq(false))
[INFO] [stdout] 129 | |         .load(&mut conn)
[INFO] [stdout] 130 | |         .await
[INFO] [stdout]     | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:131:19
[INFO] [stdout]     |
[INFO] [stdout] 131 |         .map_err(|e| {
[INFO] [stdout]     |                   ^
[INFO] [stdout] 132 |             tracing::error!("Failed to load games: {}", e);
[INFO] [stdout] 133 |             e.to_string()
[INFO] [stdout]     |             - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 131 |         .map_err(|e: /* Type */| {
[INFO] [stdout]     |                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 let existing = GameMetadata::belonging_to(&game)
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                   let existing = GameMetadata::belonging_to(&game)
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 152 | |                     .first::<GameMetadata>(&mut conn)
[INFO] [stdout] 153 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:210:26
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         .get_results::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 205 ~                     if let Err(e) = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 206 +                         .values(&metadata)
[INFO] [stdout] 207 +                         .on_conflict(schema::game_metadata::game_id)
[INFO] [stdout] 208 +                         .do_update()
[INFO] [stdout] 209 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 205 ~                     if let Err(e) = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 206 +                         .values(&metadata)
[INFO] [stdout] 207 +                         .on_conflict(schema::game_metadata::game_id)
[INFO] [stdout] 208 +                         .do_update()
[INFO] [stdout] 209 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:170:26
[INFO] [stdout]     |
[INFO] [stdout] 170 |                         .first(&mut conn)
[INFO] [stdout]     |                          ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 168 ~                     let platform_meta: Option<PlatformMetadata> = diesel_async::RunQueryDsl::first(schema::platform_metadata::table
[INFO] [stdout] 169 +                         .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 168 ~                     let platform_meta: Option<PlatformMetadata> = diesel::RunQueryDsl::first(schema::platform_metadata::table
[INFO] [stdout] 169 +                         .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:168:67
[INFO] [stdout]     |
[INFO] [stdout] 168 |                       let platform_meta: Option<PlatformMetadata> = schema::platform_metadata::table
[INFO] [stdout]     |  ___________________________________________________________________^
[INFO] [stdout] 169 | |                         .find(id)
[INFO] [stdout] 170 | |                         .first(&mut conn)
[INFO] [stdout] 171 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:205:37
[INFO] [stdout]     |
[INFO] [stdout] 205 |                       if let Err(e) = diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 206 | |                         .values(&metadata)
[INFO] [stdout] 207 | |                         .on_conflict(schema::game_metadata::game_id)
[INFO] [stdout] 208 | |                         .do_update()
[INFO] [stdout] 209 | |                         .set(&metadata)
[INFO] [stdout] 210 | |                         .get_results::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout] 211 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:176:36
[INFO] [stdout]     |
[INFO] [stdout] 176 |                         .and_then(|id| id.to_u64());
[INFO] [stdout]     |                                    ^^  -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 176 |                         .and_then(|id: /* Type */| id.to_u64());
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:214:36
[INFO] [stdout]     |
[INFO] [stdout] 214 |                         return Err(e.to_string());
[INFO] [stdout]     |                                    ^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:189:34
[INFO] [stdout]     |
[INFO] [stdout] 189 |                         .replace(exists.to_u64().unwrap());
[INFO] [stdout]     |                                  ^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:210:26
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         .get_results::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 205 ~                     if let Err(e) = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 206 +                         .values(&metadata)
[INFO] [stdout] 207 +                         .on_conflict(schema::game_metadata::game_id)
[INFO] [stdout] 208 +                         .do_update()
[INFO] [stdout] 209 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 205 ~                     if let Err(e) = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 206 +                         .values(&metadata)
[INFO] [stdout] 207 +                         .on_conflict(schema::game_metadata::game_id)
[INFO] [stdout] 208 +                         .do_update()
[INFO] [stdout] 209 +                         .set(&metadata), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:205:37
[INFO] [stdout]     |
[INFO] [stdout] 205 |                       if let Err(e) = diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 206 | |                         .values(&metadata)
[INFO] [stdout] 207 | |                         .on_conflict(schema::game_metadata::game_id)
[INFO] [stdout] 208 | |                         .do_update()
[INFO] [stdout] 209 | |                         .set(&metadata)
[INFO] [stdout] 210 | |                         .get_results::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout] 211 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:214:36
[INFO] [stdout]     |
[INFO] [stdout] 214 |                         return Err(e.to_string());
[INFO] [stdout]     |                                    ^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:339:22
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     .load::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                      ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 334 ~                 let similar_game_metas = match diesel_async::RunQueryDsl::load(schema::game_metadata::table
[INFO] [stdout] 335 +                     .filter(
[INFO] [stdout] 336 +                         schema::game_metadata::igdb_id
[INFO] [stdout] 337 +                             .eq_any(similar_game_ids.iter().map(|id| id.to_i64())),
[INFO] [stdout] 338 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 334 ~                 let similar_game_metas = match diesel::RunQueryDsl::load(schema::game_metadata::table
[INFO] [stdout] 335 +                     .filter(
[INFO] [stdout] 336 +                         schema::game_metadata::igdb_id
[INFO] [stdout] 337 +                             .eq_any(similar_game_ids.iter().map(|id| id.to_i64())),
[INFO] [stdout] 338 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:339:22
[INFO] [stdout]     |
[INFO] [stdout] 339 |                     .load::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                      ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 334 ~                 let similar_game_metas = match diesel_async::RunQueryDsl::load(schema::game_metadata::table
[INFO] [stdout] 335 +                     .filter(
[INFO] [stdout] 336 +                         schema::game_metadata::igdb_id
[INFO] [stdout] 337 +                             .eq_any(similar_game_ids.iter().map(|id| id.to_i64())),
[INFO] [stdout] 338 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 334 ~                 let similar_game_metas = match diesel::RunQueryDsl::load(schema::game_metadata::table
[INFO] [stdout] 335 +                     .filter(
[INFO] [stdout] 336 +                         schema::game_metadata::igdb_id
[INFO] [stdout] 337 +                             .eq_any(similar_game_ids.iter().map(|id| id.to_i64())),
[INFO] [stdout] 338 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:345:36
[INFO] [stdout]     |
[INFO] [stdout] 345 |                         return Err(why.to_string());
[INFO] [stdout]     |                                    ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:345:36
[INFO] [stdout]     |
[INFO] [stdout] 345 |                         return Err(why.to_string());
[INFO] [stdout]     |                                    ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:334:21
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 let similar_game_metas = match schema::game_metadata::table
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |                         let similar_game_id = match similar_game_metas
[INFO] [stdout]     |                                                     ------------------ type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `similar_game_metas` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 let similar_game_metas: /* Type */ = match schema::game_metadata::table
[INFO] [stdout]     |                                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:334:21
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 let similar_game_metas = match schema::game_metadata::table
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |                         let similar_game_id = match similar_game_metas
[INFO] [stdout]     |                                                     ------------------ type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `similar_game_metas` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 let similar_game_metas: /* Type */ = match schema::game_metadata::table
[INFO] [stdout]     |                                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:397:22
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     .execute(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 394 ~                 if let Err(why) = diesel::RunQueryDsl::execute(diesel::insert_into(schema::similar_game_maps::table)
[INFO] [stdout] 395 +                     .values(&new_similar_game_maps)
[INFO] [stdout] 396 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 394 ~                 if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::similar_game_maps::table)
[INFO] [stdout] 395 +                     .values(&new_similar_game_maps)
[INFO] [stdout] 396 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:397:22
[INFO] [stdout]     |
[INFO] [stdout] 397 |                     .execute(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 394 ~                 if let Err(why) = diesel::RunQueryDsl::execute(diesel::insert_into(schema::similar_game_maps::table)
[INFO] [stdout] 395 +                     .values(&new_similar_game_maps)
[INFO] [stdout] 396 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 394 ~                 if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::similar_game_maps::table)
[INFO] [stdout] 395 +                     .values(&new_similar_game_maps)
[INFO] [stdout] 396 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:406:22
[INFO] [stdout]     |
[INFO] [stdout] 406 |                     .execute(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 403 ~                 if let Err(why) = diesel::RunQueryDsl::execute(diesel::insert_into(schema::game_genres::table)
[INFO] [stdout] 404 +                     .values(&new_genres)
[INFO] [stdout] 405 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 403 ~                 if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::game_genres::table)
[INFO] [stdout] 404 +                     .values(&new_genres)
[INFO] [stdout] 405 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:406:22
[INFO] [stdout]     |
[INFO] [stdout] 406 |                     .execute(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 403 ~                 if let Err(why) = diesel::RunQueryDsl::execute(diesel::insert_into(schema::game_genres::table)
[INFO] [stdout] 404 +                     .values(&new_genres)
[INFO] [stdout] 405 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 403 ~                 if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::game_genres::table)
[INFO] [stdout] 404 +                     .values(&new_genres)
[INFO] [stdout] 405 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:417:22
[INFO] [stdout]     |
[INFO] [stdout] 417 |                     .load(&mut conn)
[INFO] [stdout]     |                      ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 412 ~                 let genres: Vec<GameGenre> = diesel_async::RunQueryDsl::load(schema::game_genres::table
[INFO] [stdout] 413 +                     .filter(
[INFO] [stdout] 414 +                         schema::game_genres::slug
[INFO] [stdout] 415 +                             .eq_any(new_genres.iter().map(|genre| &genre.slug)),
[INFO] [stdout] 416 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 412 ~                 let genres: Vec<GameGenre> = diesel::RunQueryDsl::load(schema::game_genres::table
[INFO] [stdout] 413 +                     .filter(
[INFO] [stdout] 414 +                         schema::game_genres::slug
[INFO] [stdout] 415 +                             .eq_any(new_genres.iter().map(|genre| &genre.slug)),
[INFO] [stdout] 416 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:417:22
[INFO] [stdout]     |
[INFO] [stdout] 417 |                     .load(&mut conn)
[INFO] [stdout]     |                      ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 412 ~                 let genres: Vec<GameGenre> = diesel_async::RunQueryDsl::load(schema::game_genres::table
[INFO] [stdout] 413 +                     .filter(
[INFO] [stdout] 414 +                         schema::game_genres::slug
[INFO] [stdout] 415 +                             .eq_any(new_genres.iter().map(|genre| &genre.slug)),
[INFO] [stdout] 416 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 412 ~                 let genres: Vec<GameGenre> = diesel::RunQueryDsl::load(schema::game_genres::table
[INFO] [stdout] 413 +                     .filter(
[INFO] [stdout] 414 +                         schema::game_genres::slug
[INFO] [stdout] 415 +                             .eq_any(new_genres.iter().map(|genre| &genre.slug)),
[INFO] [stdout] 416 +                     ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:412:46
[INFO] [stdout]     |
[INFO] [stdout] 412 |                   let genres: Vec<GameGenre> = schema::game_genres::table
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 413 | |                     .filter(
[INFO] [stdout] 414 | |                         schema::game_genres::slug
[INFO] [stdout] 415 | |                             .eq_any(new_genres.iter().map(|genre| &genre.slug)),
[INFO] [stdout] 416 | |                     )
[INFO] [stdout] 417 | |                     .load(&mut conn)
[INFO] [stdout] 418 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:412:46
[INFO] [stdout]     |
[INFO] [stdout] 412 |                   let genres: Vec<GameGenre> = schema::game_genres::table
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 413 | |                     .filter(
[INFO] [stdout] 414 | |                         schema::game_genres::slug
[INFO] [stdout] 415 | |                             .eq_any(new_genres.iter().map(|genre| &genre.slug)),
[INFO] [stdout] 416 | |                     )
[INFO] [stdout] 417 | |                     .load(&mut conn)
[INFO] [stdout] 418 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:460:14
[INFO] [stdout]     |
[INFO] [stdout] 460 |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout]     |              ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 458 ~         diesel_async::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 459 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 458 ~         diesel::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 459 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:460:14
[INFO] [stdout]     |
[INFO] [stdout] 460 |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout]     |              ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 458 ~         diesel_async::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 459 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 458 ~         diesel::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 459 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:458:9
[INFO] [stdout]     |
[INFO] [stdout] 458 | /         schema::games::table
[INFO] [stdout] 459 | |             .filter(schema::games::steam_app_id.is_not_null())
[INFO] [stdout] 460 | |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout] 461 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:458:9
[INFO] [stdout]     |
[INFO] [stdout] 458 | /         schema::games::table
[INFO] [stdout] 459 | |             .filter(schema::games::steam_app_id.is_not_null())
[INFO] [stdout] 460 | |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout] 461 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:491:22
[INFO] [stdout]     |
[INFO] [stdout] 491 |                     .first::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                      ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 489 ~                 let existing = diesel_async::RunQueryDsl::first(schema::game_metadata::table
[INFO] [stdout] 490 +                     .find(game.id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 489 ~                 let existing = diesel::RunQueryDsl::first(schema::game_metadata::table
[INFO] [stdout] 490 +                     .find(game.id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:491:22
[INFO] [stdout]     |
[INFO] [stdout] 491 |                     .first::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                      ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 489 ~                 let existing = diesel_async::RunQueryDsl::first(schema::game_metadata::table
[INFO] [stdout] 490 +                     .find(game.id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 489 ~                 let existing = diesel::RunQueryDsl::first(schema::game_metadata::table
[INFO] [stdout] 490 +                     .find(game.id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:489:21
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 let existing = schema::game_metadata::table
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |                 if existing.is_ok() && !overwrite {
[INFO] [stdout]     |                    -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `existing` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 let existing: /* Type */ = schema::game_metadata::table
[INFO] [stdout]     |                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:489:21
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 let existing = schema::game_metadata::table
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |                 if existing.is_ok() && !overwrite {
[INFO] [stdout]     |                    -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `existing` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 let existing: /* Type */ = schema::game_metadata::table
[INFO] [stdout]     |                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:526:26
[INFO] [stdout]     |
[INFO] [stdout] 526 |                         .execute(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 523 ~                     if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 524 +                         .filter(schema::game_metadata::game_id.eq(game_id))
[INFO] [stdout] 525 +                         .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 523 ~                     if let Err(why) = diesel::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 524 +                         .filter(schema::game_metadata::game_id.eq(game_id))
[INFO] [stdout] 525 +                         .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:526:26
[INFO] [stdout]     |
[INFO] [stdout] 526 |                         .execute(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 523 ~                     if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 524 +                         .filter(schema::game_metadata::game_id.eq(game_id))
[INFO] [stdout] 525 +                         .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 523 ~                     if let Err(why) = diesel::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 524 +                         .filter(schema::game_metadata::game_id.eq(game_id))
[INFO] [stdout] 525 +                         .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:538:22
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     .execute(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 535 ~                 if let Err(why) = diesel::RunQueryDsl::execute(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 536 +                     .values(&metadata)
[INFO] [stdout] 537 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 535 ~                 if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 536 +                     .values(&metadata)
[INFO] [stdout] 537 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/library/metadata_handlers.rs:538:22
[INFO] [stdout]     |
[INFO] [stdout] 538 |                     .execute(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 535 ~                 if let Err(why) = diesel::RunQueryDsl::execute(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 536 +                     .values(&metadata)
[INFO] [stdout] 537 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 535 ~                 if let Err(why) = diesel_async::RunQueryDsl::execute(diesel::insert_into(schema::game_metadata::table)
[INFO] [stdout] 536 +                     .values(&metadata)
[INFO] [stdout] 537 +                     .on_conflict_do_nothing(), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/rest/file.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 .first::<retrom::GameFile>(&mut conn)
[INFO] [stdout]    |                  ^^^^^ multiple `first` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 22 ~             let file = match diesel_async::RunQueryDsl::first(retrom::GameFile::table()
[INFO] [stdout] 23 +                 .find(file_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 22 ~             let file = match diesel::RunQueryDsl::first(retrom::GameFile::table()
[INFO] [stdout] 23 +                 .find(file_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/rest/game.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 .first::<retrom::Game>(&mut conn)
[INFO] [stdout]    |                  ^^^^^ multiple `first` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 26 ~             let game = match diesel_async::RunQueryDsl::first(retrom::Game::table()
[INFO] [stdout] 27 +                 .find(game_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 26 ~             let game = match diesel::RunQueryDsl::first(retrom::Game::table()
[INFO] [stdout] 27 +                 .find(game_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/rest/file.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 .first::<retrom::GameFile>(&mut conn)
[INFO] [stdout]    |                  ^^^^^ multiple `first` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 22 ~             let file = match diesel_async::RunQueryDsl::first(retrom::GameFile::table()
[INFO] [stdout] 23 +                 .find(file_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 22 ~             let file = match diesel::RunQueryDsl::first(retrom::GameFile::table()
[INFO] [stdout] 23 +                 .find(file_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/rest/game.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 .first::<retrom::Game>(&mut conn)
[INFO] [stdout]    |                  ^^^^^ multiple `first` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 26 ~             let game = match diesel_async::RunQueryDsl::first(retrom::Game::table()
[INFO] [stdout] 27 +                 .find(game_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 26 ~             let game = match diesel::RunQueryDsl::first(retrom::Game::table()
[INFO] [stdout] 27 +                 .find(game_id), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 |             .get_results(&mut conn)
[INFO] [stdout]    |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 38 ~         let emulators_created = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::emulators::table)
[INFO] [stdout] 39 +             .values(&emulators), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 38 ~         let emulators_created = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::emulators::table)
[INFO] [stdout] 39 +             .values(&emulators), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |           let emulators_created = diesel::insert_into(schema::emulators::table)
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 39 | |             .values(&emulators)
[INFO] [stdout] 40 | |             .get_results(&mut conn)
[INFO] [stdout] 41 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:42:23
[INFO] [stdout]    |
[INFO] [stdout] 42 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]    |                       ^^^                   --- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 42 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]    |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |         match query.load::<Emulator>(&mut conn).await {
[INFO] [stdout]    |                     ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 76 -         match query.load::<Emulator>(&mut conn).await {
[INFO] [stdout] 76 +         match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 76 -         match query.load::<Emulator>(&mut conn).await {
[INFO] [stdout] 76 +         match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:79:45
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]    |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 .get_result::<Emulator>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout]  99 ~             let updated_emulator = diesel_async::RunQueryDsl::get_result(diesel::update(schema::emulators::table)
[INFO] [stdout] 100 +                 .filter(schema::emulators::id.eq(emulator.id))
[INFO] [stdout] 101 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout]  99 ~             let updated_emulator = diesel::RunQueryDsl::get_result(diesel::update(schema::emulators::table)
[INFO] [stdout] 100 +                 .filter(schema::emulators::id.eq(emulator.id))
[INFO] [stdout] 101 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:99:36
[INFO] [stdout]     |
[INFO] [stdout]  99 |               let updated_emulator = diesel::update(schema::emulators::table)
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 100 | |                 .filter(schema::emulators::id.eq(emulator.id))
[INFO] [stdout] 101 | |                 .set(&emulator)
[INFO] [stdout] 102 | |                 .get_result::<Emulator>(&mut conn)
[INFO] [stdout] 103 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |             .get_results::<Emulator>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 124 ~         let emulators_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::emulators::table)
[INFO] [stdout] 125 +             .filter(schema::emulators::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 124 ~         let emulators_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::emulators::table)
[INFO] [stdout] 125 +             .filter(schema::emulators::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:124:33
[INFO] [stdout]     |
[INFO] [stdout] 124 |           let emulators_deleted = diesel::delete(schema::emulators::table)
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 125 | |             .filter(schema::emulators::id.eq_any(ids))
[INFO] [stdout] 126 | |             .get_results::<Emulator>(&mut conn)
[INFO] [stdout] 127 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 128 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 145 ~         let profiles_created = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::emulator_profiles::table)
[INFO] [stdout] 146 +             .values(&profiles), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 145 ~         let profiles_created = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::emulator_profiles::table)
[INFO] [stdout] 146 +             .values(&profiles), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |           let profiles_created = diesel::insert_into(schema::emulator_profiles::table)
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 146 | |             .values(&profiles)
[INFO] [stdout] 147 | |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout] 148 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 149 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 |         match query.load::<retrom::EmulatorProfile>(&mut conn).await {
[INFO] [stdout]     |                     ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 182 -         match query.load::<retrom::EmulatorProfile>(&mut conn).await {
[INFO] [stdout] 182 +         match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 182 -         match query.load::<retrom::EmulatorProfile>(&mut conn).await {
[INFO] [stdout] 182 +         match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:187:45
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 |             .get_results(&mut conn)
[INFO] [stdout]    |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 38 ~         let emulators_created = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::emulators::table)
[INFO] [stdout] 39 +             .values(&emulators), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 38 ~         let emulators_created = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::emulators::table)
[INFO] [stdout] 39 +             .values(&emulators), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |           let emulators_created = diesel::insert_into(schema::emulators::table)
[INFO] [stdout]    |  _________________________________^
[INFO] [stdout] 39 | |             .values(&emulators)
[INFO] [stdout] 40 | |             .get_results(&mut conn)
[INFO] [stdout] 41 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:42:23
[INFO] [stdout]    |
[INFO] [stdout] 42 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]    |                       ^^^                   --- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 42 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]    |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 .get_result::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 207 ~             let updated_emulator = diesel_async::RunQueryDsl::get_result(diesel::update(schema::emulator_profiles::table)
[INFO] [stdout] 208 +                 .filter(schema::emulator_profiles::id.eq(emulator.id))
[INFO] [stdout] 209 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 207 ~             let updated_emulator = diesel::RunQueryDsl::get_result(diesel::update(schema::emulator_profiles::table)
[INFO] [stdout] 208 +                 .filter(schema::emulator_profiles::id.eq(emulator.id))
[INFO] [stdout] 209 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:207:36
[INFO] [stdout]     |
[INFO] [stdout] 207 |               let updated_emulator = diesel::update(schema::emulator_profiles::table)
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 208 | |                 .filter(schema::emulator_profiles::id.eq(emulator.id))
[INFO] [stdout] 209 | |                 .set(&emulator)
[INFO] [stdout] 210 | |                 .get_result::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout] 211 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:212:27
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |         match query.load::<Emulator>(&mut conn).await {
[INFO] [stdout]    |                     ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 76 -         match query.load::<Emulator>(&mut conn).await {
[INFO] [stdout] 76 +         match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 76 -         match query.load::<Emulator>(&mut conn).await {
[INFO] [stdout] 76 +         match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/emulators/mod.rs:79:45
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]    |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:236:14
[INFO] [stdout]     |
[INFO] [stdout] 236 |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 234 ~         let profiles_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::emulator_profiles::table)
[INFO] [stdout] 235 +             .filter(schema::emulator_profiles::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 234 ~         let profiles_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::emulator_profiles::table)
[INFO] [stdout] 235 +             .filter(schema::emulator_profiles::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:234:32
[INFO] [stdout]     |
[INFO] [stdout] 234 |           let profiles_deleted = diesel::delete(schema::emulator_profiles::table)
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 235 | |             .filter(schema::emulator_profiles::id.eq_any(ids))
[INFO] [stdout] 236 | |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout] 237 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:102:18
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 .get_result::<Emulator>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout]  99 ~             let updated_emulator = diesel_async::RunQueryDsl::get_result(diesel::update(schema::emulators::table)
[INFO] [stdout] 100 +                 .filter(schema::emulators::id.eq(emulator.id))
[INFO] [stdout] 101 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout]  99 ~             let updated_emulator = diesel::RunQueryDsl::get_result(diesel::update(schema::emulators::table)
[INFO] [stdout] 100 +                 .filter(schema::emulators::id.eq(emulator.id))
[INFO] [stdout] 101 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:238:23
[INFO] [stdout]     |
[INFO] [stdout] 238 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 238 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:99:36
[INFO] [stdout]     |
[INFO] [stdout]  99 |               let updated_emulator = diesel::update(schema::emulators::table)
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 100 | |                 .filter(schema::emulators::id.eq(emulator.id))
[INFO] [stdout] 101 | |                 .set(&emulator)
[INFO] [stdout] 102 | |                 .get_result::<Emulator>(&mut conn)
[INFO] [stdout] 103 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:104:27
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 104 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:126:14
[INFO] [stdout]     |
[INFO] [stdout] 126 |             .get_results::<Emulator>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 124 ~         let emulators_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::emulators::table)
[INFO] [stdout] 125 +             .filter(schema::emulators::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 124 ~         let emulators_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::emulators::table)
[INFO] [stdout] 125 +             .filter(schema::emulators::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:124:33
[INFO] [stdout]     |
[INFO] [stdout] 124 |           let emulators_deleted = diesel::delete(schema::emulators::table)
[INFO] [stdout]     |  _________________________________^
[INFO] [stdout] 125 | |             .filter(schema::emulators::id.eq_any(ids))
[INFO] [stdout] 126 | |             .get_results::<Emulator>(&mut conn)
[INFO] [stdout] 127 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 128 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         let default_profiles = diesel::RunQueryDsl::get_results(default_profiles
[INFO] [stdout] 276 +             .filter(schema::default_emulator_profiles::client_id.eq(client_id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         let default_profiles = diesel_async::RunQueryDsl::get_results(default_profiles
[INFO] [stdout] 276 +             .filter(schema::default_emulator_profiles::client_id.eq(client_id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:275:32
[INFO] [stdout]     |
[INFO] [stdout] 275 |           let default_profiles = default_profiles
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 276 | |             .filter(schema::default_emulator_profiles::client_id.eq(client_id))
[INFO] [stdout] 277 | |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout] 278 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:279:23
[INFO] [stdout]     |
[INFO] [stdout] 279 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 279 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 145 ~         let profiles_created = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::emulator_profiles::table)
[INFO] [stdout] 146 +             .values(&profiles), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 145 ~         let profiles_created = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::emulator_profiles::table)
[INFO] [stdout] 146 +             .values(&profiles), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |           let profiles_created = diesel::insert_into(schema::emulator_profiles::table)
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 146 | |             .values(&profiles)
[INFO] [stdout] 147 | |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout] 148 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:149:23
[INFO] [stdout]     |
[INFO] [stdout] 149 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 149 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 |         match query.load::<retrom::EmulatorProfile>(&mut conn).await {
[INFO] [stdout]     |                     ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 182 -         match query.load::<retrom::EmulatorProfile>(&mut conn).await {
[INFO] [stdout] 182 +         match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 182 -         match query.load::<retrom::EmulatorProfile>(&mut conn).await {
[INFO] [stdout] 182 +         match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:187:45
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:311:18
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 .get_results(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 299 ~             diesel::RunQueryDsl::get_results(diesel::insert_into(schema::default_emulator_profiles::table)
[INFO] [stdout] 300 +                 .values(&default_profiles)
[INFO] [stdout] 301 +                 .on_conflict((
[INFO] [stdout] 302 +                     schema::default_emulator_profiles::platform_id,
[INFO] [stdout] 303 +                     schema::default_emulator_profiles::client_id,
[INFO] [stdout] 304 +                 ))
[INFO] [stdout] 305 +                 .do_update()
[INFO] [stdout] 306 +                 .set(
[INFO] [stdout] 307 +                     schema::default_emulator_profiles::emulator_profile_id.eq(excluded(
[INFO] [stdout] 308 +                         schema::default_emulator_profiles::emulator_profile_id,
[INFO] [stdout] 309 +                     )),
[INFO] [stdout] 310 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 299 ~             diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::default_emulator_profiles::table)
[INFO] [stdout] 300 +                 .values(&default_profiles)
[INFO] [stdout] 301 +                 .on_conflict((
[INFO] [stdout] 302 +                     schema::default_emulator_profiles::platform_id,
[INFO] [stdout] 303 +                     schema::default_emulator_profiles::client_id,
[INFO] [stdout] 304 +                 ))
[INFO] [stdout] 305 +                 .do_update()
[INFO] [stdout] 306 +                 .set(
[INFO] [stdout] 307 +                     schema::default_emulator_profiles::emulator_profile_id.eq(excluded(
[INFO] [stdout] 308 +                         schema::default_emulator_profiles::emulator_profile_id,
[INFO] [stdout] 309 +                     )),
[INFO] [stdout] 310 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 | /             diesel::insert_into(schema::default_emulator_profiles::table)
[INFO] [stdout] 300 | |                 .values(&default_profiles)
[INFO] [stdout] 301 | |                 .on_conflict((
[INFO] [stdout] 302 | |                     schema::default_emulator_profiles::platform_id,
[INFO] [stdout] ...   |
[INFO] [stdout] 311 | |                 .get_results(&mut conn)
[INFO] [stdout] 312 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:313:27
[INFO] [stdout]     |
[INFO] [stdout] 313 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 313 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 .get_result::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 207 ~             let updated_emulator = diesel_async::RunQueryDsl::get_result(diesel::update(schema::emulator_profiles::table)
[INFO] [stdout] 208 +                 .filter(schema::emulator_profiles::id.eq(emulator.id))
[INFO] [stdout] 209 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 207 ~             let updated_emulator = diesel::RunQueryDsl::get_result(diesel::update(schema::emulator_profiles::table)
[INFO] [stdout] 208 +                 .filter(schema::emulator_profiles::id.eq(emulator.id))
[INFO] [stdout] 209 +                 .set(&emulator), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:207:36
[INFO] [stdout]     |
[INFO] [stdout] 207 |               let updated_emulator = diesel::update(schema::emulator_profiles::table)
[INFO] [stdout]     |  ____________________________________^
[INFO] [stdout] 208 | |                 .filter(schema::emulator_profiles::id.eq(emulator.id))
[INFO] [stdout] 209 | |                 .set(&emulator)
[INFO] [stdout] 210 | |                 .get_result::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout] 211 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:212:27
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:236:14
[INFO] [stdout]     |
[INFO] [stdout] 236 |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 234 ~         let profiles_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::emulator_profiles::table)
[INFO] [stdout] 235 +             .filter(schema::emulator_profiles::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 234 ~         let profiles_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::emulator_profiles::table)
[INFO] [stdout] 235 +             .filter(schema::emulator_profiles::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:336:14
[INFO] [stdout]     |
[INFO] [stdout] 336 |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 334 ~         let default_profiles_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::default_emulator_profiles::table)
[INFO] [stdout] 335 +             .filter(schema::default_emulator_profiles::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 334 ~         let default_profiles_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::default_emulator_profiles::table)
[INFO] [stdout] 335 +             .filter(schema::default_emulator_profiles::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:334:40
[INFO] [stdout]     |
[INFO] [stdout] 334 |           let default_profiles_deleted = diesel::delete(schema::default_emulator_profiles::table)
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 335 | |             .filter(schema::default_emulator_profiles::platform_id.eq_any(platform_ids))
[INFO] [stdout] 336 | |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout] 337 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:234:32
[INFO] [stdout]     |
[INFO] [stdout] 234 |           let profiles_deleted = diesel::delete(schema::emulator_profiles::table)
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 235 | |             .filter(schema::emulator_profiles::id.eq_any(ids))
[INFO] [stdout] 236 | |             .get_results::<retrom::EmulatorProfile>(&mut conn)
[INFO] [stdout] 237 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:338:23
[INFO] [stdout]     |
[INFO] [stdout] 338 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 338 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:238:23
[INFO] [stdout]     |
[INFO] [stdout] 238 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 238 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         let default_profiles = diesel::RunQueryDsl::get_results(default_profiles
[INFO] [stdout] 276 +             .filter(schema::default_emulator_profiles::client_id.eq(client_id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         let default_profiles = diesel_async::RunQueryDsl::get_results(default_profiles
[INFO] [stdout] 276 +             .filter(schema::default_emulator_profiles::client_id.eq(client_id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:275:32
[INFO] [stdout]     |
[INFO] [stdout] 275 |           let default_profiles = default_profiles
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 276 | |             .filter(schema::default_emulator_profiles::client_id.eq(client_id))
[INFO] [stdout] 277 | |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout] 278 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:279:23
[INFO] [stdout]     |
[INFO] [stdout] 279 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 279 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:361:14
[INFO] [stdout]     |
[INFO] [stdout] 361 |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 359 ~         let configs_created = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::local_emulator_configs::table)
[INFO] [stdout] 360 +             .values(&configs), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 359 ~         let configs_created = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::local_emulator_configs::table)
[INFO] [stdout] 360 +             .values(&configs), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:359:31
[INFO] [stdout]     |
[INFO] [stdout] 359 |           let configs_created = diesel::insert_into(schema::local_emulator_configs::table)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 360 | |             .values(&configs)
[INFO] [stdout] 361 | |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 362 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:363:23
[INFO] [stdout]     |
[INFO] [stdout] 363 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 363 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:311:18
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 .get_results(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 299 ~             diesel::RunQueryDsl::get_results(diesel::insert_into(schema::default_emulator_profiles::table)
[INFO] [stdout] 300 +                 .values(&default_profiles)
[INFO] [stdout] 301 +                 .on_conflict((
[INFO] [stdout] 302 +                     schema::default_emulator_profiles::platform_id,
[INFO] [stdout] 303 +                     schema::default_emulator_profiles::client_id,
[INFO] [stdout] 304 +                 ))
[INFO] [stdout] 305 +                 .do_update()
[INFO] [stdout] 306 +                 .set(
[INFO] [stdout] 307 +                     schema::default_emulator_profiles::emulator_profile_id.eq(excluded(
[INFO] [stdout] 308 +                         schema::default_emulator_profiles::emulator_profile_id,
[INFO] [stdout] 309 +                     )),
[INFO] [stdout] 310 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 299 ~             diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::default_emulator_profiles::table)
[INFO] [stdout] 300 +                 .values(&default_profiles)
[INFO] [stdout] 301 +                 .on_conflict((
[INFO] [stdout] 302 +                     schema::default_emulator_profiles::platform_id,
[INFO] [stdout] 303 +                     schema::default_emulator_profiles::client_id,
[INFO] [stdout] 304 +                 ))
[INFO] [stdout] 305 +                 .do_update()
[INFO] [stdout] 306 +                 .set(
[INFO] [stdout] 307 +                     schema::default_emulator_profiles::emulator_profile_id.eq(excluded(
[INFO] [stdout] 308 +                         schema::default_emulator_profiles::emulator_profile_id,
[INFO] [stdout] 309 +                     )),
[INFO] [stdout] 310 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:299:13
[INFO] [stdout]     |
[INFO] [stdout] 299 | /             diesel::insert_into(schema::default_emulator_profiles::table)
[INFO] [stdout] 300 | |                 .values(&default_profiles)
[INFO] [stdout] 301 | |                 .on_conflict((
[INFO] [stdout] 302 | |                     schema::default_emulator_profiles::platform_id,
[INFO] [stdout] ...   |
[INFO] [stdout] 311 | |                 .get_results(&mut conn)
[INFO] [stdout] 312 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:313:27
[INFO] [stdout]     |
[INFO] [stdout] 313 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 313 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:395:14
[INFO] [stdout]     |
[INFO] [stdout] 395 |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 394 -         let local_emulator_configs = query
[INFO] [stdout] 395 -             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 394 +         let local_emulator_configs = diesel::RunQueryDsl::get_results(query, &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 394 -         let local_emulator_configs = query
[INFO] [stdout] 395 -             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 394 +         let local_emulator_configs = diesel_async::RunQueryDsl::get_results(query, &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:394:38
[INFO] [stdout]     |
[INFO] [stdout] 394 |           let local_emulator_configs = query
[INFO] [stdout]     |  ______________________________________^
[INFO] [stdout] 395 | |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 396 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 397 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 397 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:336:14
[INFO] [stdout]     |
[INFO] [stdout] 336 |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 334 ~         let default_profiles_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::default_emulator_profiles::table)
[INFO] [stdout] 335 +             .filter(schema::default_emulator_profiles::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 334 ~         let default_profiles_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::default_emulator_profiles::table)
[INFO] [stdout] 335 +             .filter(schema::default_emulator_profiles::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:334:40
[INFO] [stdout]     |
[INFO] [stdout] 334 |           let default_profiles_deleted = diesel::delete(schema::default_emulator_profiles::table)
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 335 | |             .filter(schema::default_emulator_profiles::platform_id.eq_any(platform_ids))
[INFO] [stdout] 336 | |             .get_results::<retrom::DefaultEmulatorProfile>(&mut conn)
[INFO] [stdout] 337 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:338:23
[INFO] [stdout]     |
[INFO] [stdout] 338 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 338 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:422:18
[INFO] [stdout]     |
[INFO] [stdout] 422 |                 .get_result::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 419 ~             let updated_config = diesel_async::RunQueryDsl::get_result(diesel::update(schema::local_emulator_configs::table)
[INFO] [stdout] 420 +                 .filter(schema::local_emulator_configs::id.eq(config.id))
[INFO] [stdout] 421 +                 .set(&config), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 419 ~             let updated_config = diesel::RunQueryDsl::get_result(diesel::update(schema::local_emulator_configs::table)
[INFO] [stdout] 420 +                 .filter(schema::local_emulator_configs::id.eq(config.id))
[INFO] [stdout] 421 +                 .set(&config), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:419:34
[INFO] [stdout]     |
[INFO] [stdout] 419 |               let updated_config = diesel::update(schema::local_emulator_configs::table)
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 420 | |                 .filter(schema::local_emulator_configs::id.eq(config.id))
[INFO] [stdout] 421 | |                 .set(&config)
[INFO] [stdout] 422 | |                 .get_result::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 423 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:424:27
[INFO] [stdout]     |
[INFO] [stdout] 424 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 424 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:361:14
[INFO] [stdout]     |
[INFO] [stdout] 361 |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 359 ~         let configs_created = diesel::RunQueryDsl::get_results(diesel::insert_into(schema::local_emulator_configs::table)
[INFO] [stdout] 360 +             .values(&configs), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 359 ~         let configs_created = diesel_async::RunQueryDsl::get_results(diesel::insert_into(schema::local_emulator_configs::table)
[INFO] [stdout] 360 +             .values(&configs), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:359:31
[INFO] [stdout]     |
[INFO] [stdout] 359 |           let configs_created = diesel::insert_into(schema::local_emulator_configs::table)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 360 | |             .values(&configs)
[INFO] [stdout] 361 | |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 362 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:363:23
[INFO] [stdout]     |
[INFO] [stdout] 363 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 363 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:448:14
[INFO] [stdout]     |
[INFO] [stdout] 448 |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 446 ~         let configs_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::local_emulator_configs::table)
[INFO] [stdout] 447 +             .filter(schema::local_emulator_configs::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 446 ~         let configs_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::local_emulator_configs::table)
[INFO] [stdout] 447 +             .filter(schema::local_emulator_configs::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:446:31
[INFO] [stdout]     |
[INFO] [stdout] 446 |           let configs_deleted = diesel::delete(schema::local_emulator_configs::table)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 447 | |             .filter(schema::local_emulator_configs::id.eq_any(ids))
[INFO] [stdout] 448 | |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 449 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:450:23
[INFO] [stdout]     |
[INFO] [stdout] 450 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 450 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:395:14
[INFO] [stdout]     |
[INFO] [stdout] 395 |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 394 -         let local_emulator_configs = query
[INFO] [stdout] 395 -             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 394 +         let local_emulator_configs = diesel::RunQueryDsl::get_results(query, &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 394 -         let local_emulator_configs = query
[INFO] [stdout] 395 -             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 394 +         let local_emulator_configs = diesel_async::RunQueryDsl::get_results(query, &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:394:38
[INFO] [stdout]     |
[INFO] [stdout] 394 |           let local_emulator_configs = query
[INFO] [stdout]     |  ______________________________________^
[INFO] [stdout] 395 | |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 396 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:397:23
[INFO] [stdout]     |
[INFO] [stdout] 397 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 397 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:422:18
[INFO] [stdout]     |
[INFO] [stdout] 422 |                 .get_result::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 419 ~             let updated_config = diesel_async::RunQueryDsl::get_result(diesel::update(schema::local_emulator_configs::table)
[INFO] [stdout] 420 +                 .filter(schema::local_emulator_configs::id.eq(config.id))
[INFO] [stdout] 421 +                 .set(&config), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 419 ~             let updated_config = diesel::RunQueryDsl::get_result(diesel::update(schema::local_emulator_configs::table)
[INFO] [stdout] 420 +                 .filter(schema::local_emulator_configs::id.eq(config.id))
[INFO] [stdout] 421 +                 .set(&config), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:419:34
[INFO] [stdout]     |
[INFO] [stdout] 419 |               let updated_config = diesel::update(schema::local_emulator_configs::table)
[INFO] [stdout]     |  __________________________________^
[INFO] [stdout] 420 | |                 .filter(schema::local_emulator_configs::id.eq(config.id))
[INFO] [stdout] 421 | |                 .set(&config)
[INFO] [stdout] 422 | |                 .get_result::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 423 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:424:27
[INFO] [stdout]     |
[INFO] [stdout] 424 |                 .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                           ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 424 |                 .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:448:14
[INFO] [stdout]     |
[INFO] [stdout] 448 |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout]     |              ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 446 ~         let configs_deleted = diesel::RunQueryDsl::get_results(diesel::delete(schema::local_emulator_configs::table)
[INFO] [stdout] 447 +             .filter(schema::local_emulator_configs::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 446 ~         let configs_deleted = diesel_async::RunQueryDsl::get_results(diesel::delete(schema::local_emulator_configs::table)
[INFO] [stdout] 447 +             .filter(schema::local_emulator_configs::id.eq_any(ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:446:31
[INFO] [stdout]     |
[INFO] [stdout] 446 |           let configs_deleted = diesel::delete(schema::local_emulator_configs::table)
[INFO] [stdout]     |  _______________________________^
[INFO] [stdout] 447 | |             .filter(schema::local_emulator_configs::id.eq_any(ids))
[INFO] [stdout] 448 | |             .get_results::<retrom::LocalEmulatorConfig>(&mut conn)
[INFO] [stdout] 449 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/emulators/mod.rs:450:23
[INFO] [stdout]     |
[INFO] [stdout] 450 |             .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                       ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 450 |             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |             .load::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]    |              ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 82 ~         let metadata = match diesel_async::RunQueryDsl::load(retrom_db::schema::game_metadata::table
[INFO] [stdout] 83 +             .filter(retrom_db::schema::game_metadata::game_id.eq_any(&game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 82 ~         let metadata = match diesel::RunQueryDsl::load(retrom_db::schema::game_metadata::table
[INFO] [stdout] 83 +             .filter(retrom_db::schema::game_metadata::game_id.eq_any(&game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]    |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:97:14
[INFO] [stdout]    |
[INFO] [stdout] 97 |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout]    |              ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         let games: Vec<Game> = diesel_async::RunQueryDsl::load(games1
[INFO] [stdout] 96 +             .filter(games1.field(schema::games::id).eq_any(game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         let games: Vec<Game> = diesel::RunQueryDsl::load(games1
[INFO] [stdout] 96 +             .filter(games1.field(schema::games::id).eq_any(game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |           let games: Vec<Game> = games1
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 96 | |             .filter(games1.field(schema::games::id).eq_any(game_ids))
[INFO] [stdout] 97 | |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout] 98 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             .map_err(|e| Status::internal(e.to_string()))?;
[INFO] [stdout]    |                       ^                   - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 99 |             .map_err(|e: /* Type */| Status::internal(e.to_string()))?;
[INFO] [stdout]    |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:101:58
[INFO] [stdout]     |
[INFO] [stdout] 101 |           let genre_maps: Vec<(GameGenreMap, GameGenre)> = GameGenreMap::belonging_to(&games)
[INFO] [stdout]     |  __________________________________________________________^
[INFO] [stdout] 102 | |             .inner_join(schema::game_genres::table)
[INFO] [stdout] 103 | |             .select((GameGenreMap::as_select(), GameGenre::as_select()))
[INFO] [stdout] 104 | |             .load(&mut conn)
[INFO] [stdout] 105 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:106:23
[INFO] [stdout]     |
[INFO] [stdout] 106 |             .map_err(|e| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                       ^                   - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 106 |             .map_err(|e: /* Type */| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:112:19
[INFO] [stdout]     |
[INFO] [stdout] 112 |             .map(|(maps, game)| {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 113 |                 let genres = maps
[INFO] [stdout]     |                              ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 112 |             .map(|(maps, game): (_, _)| {
[INFO] [stdout]     |                               ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 | /             SimilarGameMap::belonging_to(&games)
[INFO] [stdout] 124 | |                 .inner_join(games2.on(
[INFO] [stdout] 125 | |                     schema::similar_game_maps::similar_game_id.eq(games2.field(schema::games::id)),
[INFO] [stdout] 126 | |                 ))
[INFO] [stdout] ...   |
[INFO] [stdout] 131 | |                 .load(&mut conn)
[INFO] [stdout] 132 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 .map_err(|e| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                           ^                   - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 .map_err(|e: /* Type */| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 139 |             .map(|(maps, game)| {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 140 |                 let games: Vec<Game> = maps.into_iter().map(|map| map.1).collect();
[INFO] [stdout]     |                                        ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 139 |             .map(|(maps, game): (_, _)| {
[INFO] [stdout]     |                               ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:150:16
[INFO] [stdout]     |
[INFO] [stdout] 150 |             if meta.get_cache_dir().is_some() {
[INFO] [stdout]     |                ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:165:44
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     let cache_path = match media_opts.get_item_path().await {
[INFO] [stdout]     |                                            ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:165:25
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     let cache_path = match media_opts.get_item_path().await {
[INFO] [stdout]     |                         ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout] note: there are multiple different versions of crate `core` in the dependency graph
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/core/src/marker.rs:161:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is the expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.26/src/util/macro_util.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub trait Sized: core::marker::Sized {}
[INFO] [stdout]     |     ------------------------------------ this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required because it appears within the type `Path`
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/std/src/path.rs:2315:11
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:166:28
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         Ok(path) => path,
[INFO] [stdout]     |                            ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout] note: there are multiple different versions of crate `core` in the dependency graph
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/core/src/marker.rs:161:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is the expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.26/src/util/macro_util.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub trait Sized: core::marker::Sized {}
[INFO] [stdout]     |     ------------------------------------ this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required because it appears within the type `Path`
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/std/src/path.rs:2315:11
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:227:36
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p| p.file_name().map(|s| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                    ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p: /* Type */| p.file_name().map(|s| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:227:58
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p| p.file_name().map(|s| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                                          ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p| p.file_name().map(|s: /* Type */| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:329:18
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 .get_result::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 324 ~             let updated_row = match diesel::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::game_metadata::table)
[INFO] [stdout] 325 +                 .values(&metadata_row)
[INFO] [stdout] 326 +                 .on_conflict(retrom_db::schema::game_metadata::game_id)
[INFO] [stdout] 327 +                 .do_update()
[INFO] [stdout] 328 +                 .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 324 ~             let updated_row = match diesel_async::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::game_metadata::table)
[INFO] [stdout] 325 +                 .values(&metadata_row)
[INFO] [stdout] 326 +                 .on_conflict(retrom_db::schema::game_metadata::game_id)
[INFO] [stdout] 327 +                 .do_update()
[INFO] [stdout] 328 +                 .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:334:49
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                                 ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:362:14
[INFO] [stdout]     |
[INFO] [stdout] 362 |             .load::<retrom::PlatformMetadata>(&mut conn)
[INFO] [stdout]     |              ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 360 ~         let metadata = match diesel_async::RunQueryDsl::load(retrom_db::schema::platform_metadata::table
[INFO] [stdout] 361 +             .filter(retrom_db::schema::platform_metadata::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 360 ~         let metadata = match diesel::RunQueryDsl::load(retrom_db::schema::platform_metadata::table
[INFO] [stdout] 361 +             .filter(retrom_db::schema::platform_metadata::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:367:45
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:426:30
[INFO] [stdout]     |
[INFO] [stdout] 426 | ...                   .get_result::<retrom::PlatformMetadata>(&mut conn)
[INFO] [stdout]     |                        ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 421 ~                         diesel::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::platform_metadata::table)
[INFO] [stdout] 422 +                             .values(&metadata_row)
[INFO] [stdout] 423 +                             .on_conflict(retrom_db::schema::platform_metadata::platform_id)
[INFO] [stdout] 424 +                             .do_update()
[INFO] [stdout] 425 +                             .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 421 ~                         diesel_async::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::platform_metadata::table)
[INFO] [stdout] 422 +                             .values(&metadata_row)
[INFO] [stdout] 423 +                             .on_conflict(retrom_db::schema::platform_metadata::platform_id)
[INFO] [stdout] 424 +                             .do_update()
[INFO] [stdout] 425 +                             .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:465:14
[INFO] [stdout]     |
[INFO] [stdout] 465 |             .first::<retrom::Game>(&mut conn)
[INFO] [stdout]     |              ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 463 ~         let game = match diesel_async::RunQueryDsl::first(schema::games::table
[INFO] [stdout] 464 +             .find(query.game_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 463 ~         let game = match diesel::RunQueryDsl::first(schema::games::table
[INFO] [stdout] 464 +             .find(query.game_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:470:45
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:509:18
[INFO] [stdout]     |
[INFO] [stdout] 509 |                 .first::<retrom::Platform>(&mut conn)
[INFO] [stdout]     |                  ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 507 ~             let platform = match diesel_async::RunQueryDsl::first(schema::platforms::table
[INFO] [stdout] 508 +                 .find(query.platform_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 507 ~             let platform = match diesel::RunQueryDsl::first(schema::platforms::table
[INFO] [stdout] 508 +                 .find(query.platform_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:514:49
[INFO] [stdout]     |
[INFO] [stdout] 514 |                     return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                                 ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:605:14
[INFO] [stdout]     |
[INFO] [stdout] 605 |             .load(&mut conn)
[INFO] [stdout]     |              ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 602 ~         let games: Vec<retrom::Game> = match diesel_async::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 603 +             .filter(schema::games::id.eq_any(&game_ids))
[INFO] [stdout] 604 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 602 ~         let games: Vec<retrom::Game> = match diesel::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 603 +             .filter(schema::games::id.eq_any(&game_ids))
[INFO] [stdout] 604 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:610:45
[INFO] [stdout]     |
[INFO] [stdout] 610 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:674:30
[INFO] [stdout]     |
[INFO] [stdout] 674 | ...                   .execute(&mut conn)
[INFO] [stdout]     |                        ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 671 ~                         diesel_async::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 672 +                             .filter(schema::game_metadata::game_id.eq(game.id))
[INFO] [stdout] 673 +                             .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 671 ~                         diesel::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 672 +                             .filter(schema::game_metadata::game_id.eq(game.id))
[INFO] [stdout] 673 +                             .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:671:25
[INFO] [stdout]     |
[INFO] [stdout] 671 | /                         diesel::update(schema::game_metadata::table)
[INFO] [stdout] 672 | |                             .filter(schema::game_metadata::game_id.eq(game.id))
[INFO] [stdout] 673 | |                             .set(&updated_meta)
[INFO] [stdout] 674 | |                             .execute(&mut conn)
[INFO] [stdout] 675 | |                             .await
[INFO] [stdout]     | |__________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:676:39
[INFO] [stdout]     |
[INFO] [stdout] 676 | ...                   .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 676 |                             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/platforms.rs:53:60
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let platforms: Vec<retrom::Platform> = match query.load(&mut conn).await {
[INFO] [stdout]    |                                                            ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 53 -         let platforms: Vec<retrom::Platform> = match query.load(&mut conn).await {
[INFO] [stdout] 53 +         let platforms: Vec<retrom::Platform> = match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 53 -         let platforms: Vec<retrom::Platform> = match query.load(&mut conn).await {
[INFO] [stdout] 53 +         let platforms: Vec<retrom::Platform> = match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/platforms.rs:55:64
[INFO] [stdout]    |
[INFO] [stdout] 55 |             Err(why) => return Err(Status::new(Code::Internal, why.to_string())),
[INFO] [stdout]    |                                                                ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/platforms.rs:68:75
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 let metadata: Vec<retrom::PlatformMetadata> = match query.load(&mut conn).await {
[INFO] [stdout]    |                                                                           ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 68 -                 let metadata: Vec<retrom::PlatformMetadata> = match query.load(&mut conn).await {
[INFO] [stdout] 68 +                 let metadata: Vec<retrom::PlatformMetadata> = match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 68 -                 let metadata: Vec<retrom::PlatformMetadata> = match query.load(&mut conn).await {
[INFO] [stdout] 68 +                 let metadata: Vec<retrom::PlatformMetadata> = match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/platforms.rs:70:72
[INFO] [stdout]    |
[INFO] [stdout] 70 |                     Err(why) => return Err(Status::new(Code::Internal, why.to_string())),
[INFO] [stdout]    |                                                                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:106:22
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     .get_result::<retrom::Platform>(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 104 ~                 let current_platform = diesel_async::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 105 +                     .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 104 ~                 let current_platform = diesel::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 105 +                     .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:134:30
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout]     |                        ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 132 ~                         let games = diesel_async::RunQueryDsl::get_results(schema::games::table
[INFO] [stdout] 133 +                             .filter(schema::games::platform_id.eq(id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 132 ~                         let games = diesel::RunQueryDsl::get_results(schema::games::table
[INFO] [stdout] 133 +                             .filter(schema::games::platform_id.eq(id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:132:37
[INFO] [stdout]     |
[INFO] [stdout] 132 |                           let games = schema::games::table
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 133 | |                             .filter(schema::games::platform_id.eq(id))
[INFO] [stdout] 134 | |                             .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout] 135 | |                             .await
[INFO] [stdout]     | |__________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:136:39
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 136 |                             .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:155:29
[INFO] [stdout]     |
[INFO] [stdout] 155 | / ...                   diesel::update(
[INFO] [stdout] 156 | | ...                       schema::games::table.filter(schema::games::id.eq(game.id)),
[INFO] [stdout] 157 | | ...                   )
[INFO] [stdout] 158 | | ...                   .set(schema::games::path.eq(game_path))
[INFO] [stdout] 159 | | ...                   .execute(&mut conn)
[INFO] [stdout] 160 | | ...                   .await
[INFO] [stdout]     | |____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:161:39
[INFO] [stdout]     |
[INFO] [stdout] 161 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 161 |                             .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:163:46
[INFO] [stdout]     |
[INFO] [stdout] 163 |   ...                   let game_files = schema::game_files::table
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 164 | | ...                       .filter(schema::game_files::game_id.eq(game.id))
[INFO] [stdout] 165 | | ...                       .load::<GameFile>(&mut conn)
[INFO] [stdout] 166 | | ...                       .await
[INFO] [stdout]     | |________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:167:43
[INFO] [stdout]     |
[INFO] [stdout] 167 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 167 |                                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:188:33
[INFO] [stdout]     |
[INFO] [stdout] 188 | / ...                   diesel::update(
[INFO] [stdout] 189 | | ...                       schema::game_files::table
[INFO] [stdout] 190 | | ...                           .filter(schema::game_files::id.eq(game_file.id)),
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | | ...                   .execute(&mut conn)
[INFO] [stdout] 194 | | ...                   .await
[INFO] [stdout]     | |____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 195 |                                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:208:26
[INFO] [stdout]     |
[INFO] [stdout] 208 |                         .get_result(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 206 ~                     diesel_async::RunQueryDsl::get_result(diesel::update(schema::platforms::table.filter(schema::platforms::id.eq(id)))
[INFO] [stdout] 207 +                         .set(platform), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 206 ~                     diesel::RunQueryDsl::get_result(diesel::update(schema::platforms::table.filter(schema::platforms::id.eq(id)))
[INFO] [stdout] 207 +                         .set(platform), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:206:21
[INFO] [stdout]     |
[INFO] [stdout] 206 | /                     diesel::update(schema::platforms::table.filter(schema::platforms::id.eq(id)))
[INFO] [stdout] 207 | |                         .set(platform)
[INFO] [stdout] 208 | |                         .get_result(&mut conn)
[INFO] [stdout] 209 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:210:35
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                   ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 |                 .load(&mut conn)
[INFO] [stdout]     |                  ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 235 ~             let platforms: Vec<retrom::Platform> = diesel_async::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 236 +                 .filter(schema::platforms::id.eq_any(&request.ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 235 ~             let platforms: Vec<retrom::Platform> = diesel::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 236 +                 .filter(schema::platforms::id.eq_any(&request.ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:235:52
[INFO] [stdout]     |
[INFO] [stdout] 235 |               let platforms: Vec<retrom::Platform> = schema::platforms::table
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 236 | |                 .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 237 | |                 .load(&mut conn)
[INFO] [stdout] 238 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:241:44
[INFO] [stdout]     |
[INFO] [stdout] 241 |               let games: Vec<retrom::Game> = retrom::Game::belonging_to(&platforms)
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout] 242 | |                 .load(&mut conn)
[INFO] [stdout] 243 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:247:17
[INFO] [stdout]     |
[INFO] [stdout] 247 | /                 PlatformMetadata::belonging_to(&platforms)
[INFO] [stdout] 248 | |                     .load(&mut conn)
[INFO] [stdout] 249 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:252:52
[INFO] [stdout]     |
[INFO] [stdout] 252 |               let game_metadata: Vec<GameMetadata> = GameMetadata::belonging_to(&games)
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 253 | |                 .load(&mut conn)
[INFO] [stdout] 254 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:259:52
[INFO] [stdout]     |
[INFO] [stdout] 259 |             join_all(platform_metadata.iter().map(|m| m.clean_cache())).await;
[INFO] [stdout]     |                                                    ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 259 |             join_all(platform_metadata.iter().map(|m: /* Type */| m.clean_cache())).await;
[INFO] [stdout]     |                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:260:48
[INFO] [stdout]     |
[INFO] [stdout] 260 |             join_all(game_metadata.iter().map(|m| m.clean_cache())).await;
[INFO] [stdout]     |                                                ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 260 |             join_all(game_metadata.iter().map(|m: /* Type */| m.clean_cache())).await;
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |                 .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 270 ~                 let games_deleted = diesel_async::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 271 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 272 +                 )
[INFO] [stdout] 273 +                 .set((
[INFO] [stdout] 274 +                     schema::games::is_deleted.eq(true),
[INFO] [stdout] 275 +                     schema::games::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 276 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 270 ~                 let games_deleted = diesel::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 271 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 272 +                 )
[INFO] [stdout] 273 +                 .set((
[INFO] [stdout] 274 +                     schema::games::is_deleted.eq(true),
[INFO] [stdout] 275 +                     schema::games::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 276 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:270:37
[INFO] [stdout]     |
[INFO] [stdout] 270 |                   let games_deleted = diesel::update(
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 271 | |                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 272 | |                 )
[INFO] [stdout] 273 | |                 .set((
[INFO] [stdout] ...   |
[INFO] [stdout] 277 | |                 .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout] 278 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:279:27
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | /                 diesel::update(schema::game_files::table.filter(
[INFO] [stdout] 282 | |                     schema::game_files::game_id.eq_any(games_deleted.iter().map(|g| g.id)),
[INFO] [stdout] 283 | |                 ))
[INFO] [stdout] 284 | |                 .set((
[INFO] [stdout] ...   |
[INFO] [stdout] 288 | |                 .execute(&mut conn)
[INFO] [stdout] 289 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:290:27
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:301:18
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 .get_results(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 292 ~                 diesel_async::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 293 +                     schema::platforms::table
[INFO] [stdout] 294 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 295 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 296 +                 )
[INFO] [stdout] 297 +                 .set((
[INFO] [stdout] 298 +                     schema::platforms::is_deleted.eq(true),
[INFO] [stdout] 299 +                     schema::platforms::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 300 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 292 ~                 diesel::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 293 +                     schema::platforms::table
[INFO] [stdout] 294 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 295 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 296 +                 )
[INFO] [stdout] 297 +                 .set((
[INFO] [stdout] 298 +                     schema::platforms::is_deleted.eq(true),
[INFO] [stdout] 299 +                     schema::platforms::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 300 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:292:17
[INFO] [stdout]     |
[INFO] [stdout] 292 | /                 diesel::update(
[INFO] [stdout] 293 | |                     schema::platforms::table
[INFO] [stdout] 294 | |                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 295 | |                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] ...   |
[INFO] [stdout] 301 | |                 .get_results(&mut conn)
[INFO] [stdout] 302 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:303:27
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:309:18
[INFO] [stdout]     |
[INFO] [stdout] 309 |                 .execute(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 306 ~                 diesel::RunQueryDsl::execute(diesel::delete(
[INFO] [stdout] 307 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 308 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 306 ~                 diesel_async::RunQueryDsl::execute(diesel::delete(
[INFO] [stdout] 307 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 308 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 | /                 diesel::delete(
[INFO] [stdout] 307 | |                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 308 | |                 )
[INFO] [stdout] 309 | |                 .execute(&mut conn)
[INFO] [stdout] 310 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:311:27
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:318:18
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 .get_results(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 313 ~                 diesel::RunQueryDsl::get_results(diesel::delete(
[INFO] [stdout] 314 +                     schema::platforms::table
[INFO] [stdout] 315 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 316 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 317 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 313 ~                 diesel_async::RunQueryDsl::get_results(diesel::delete(
[INFO] [stdout] 314 +                     schema::platforms::table
[INFO] [stdout] 315 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 316 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 317 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 | /                 diesel::delete(
[INFO] [stdout] 314 | |                     schema::platforms::table
[INFO] [stdout] 315 | |                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 316 | |                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 317 | |                 )
[INFO] [stdout] 318 | |                 .get_results(&mut conn)
[INFO] [stdout] 319 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:320:27
[INFO] [stdout]     |
[INFO] [stdout] 320 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 320 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |             .load::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]    |              ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 82 ~         let metadata = match diesel_async::RunQueryDsl::load(retrom_db::schema::game_metadata::table
[INFO] [stdout] 83 +             .filter(retrom_db::schema::game_metadata::game_id.eq_any(&game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 82 ~         let metadata = match diesel::RunQueryDsl::load(retrom_db::schema::game_metadata::table
[INFO] [stdout] 83 +             .filter(retrom_db::schema::game_metadata::game_id.eq_any(&game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:89:45
[INFO] [stdout]    |
[INFO] [stdout] 89 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]    |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:97:14
[INFO] [stdout]    |
[INFO] [stdout] 97 |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout]    |              ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         let games: Vec<Game> = diesel_async::RunQueryDsl::load(games1
[INFO] [stdout] 96 +             .filter(games1.field(schema::games::id).eq_any(game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 95 ~         let games: Vec<Game> = diesel::RunQueryDsl::load(games1
[INFO] [stdout] 96 +             .filter(games1.field(schema::games::id).eq_any(game_ids)), &mut conn)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |           let games: Vec<Game> = games1
[INFO] [stdout]    |  ________________________________^
[INFO] [stdout] 96 | |             .filter(games1.field(schema::games::id).eq_any(game_ids))
[INFO] [stdout] 97 | |             .load::<retrom::Game>(&mut conn)
[INFO] [stdout] 98 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/metadata/mod.rs:99:23
[INFO] [stdout]    |
[INFO] [stdout] 99 |             .map_err(|e| Status::internal(e.to_string()))?;
[INFO] [stdout]    |                       ^                   - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 99 |             .map_err(|e: /* Type */| Status::internal(e.to_string()))?;
[INFO] [stdout]    |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:101:58
[INFO] [stdout]     |
[INFO] [stdout] 101 |           let genre_maps: Vec<(GameGenreMap, GameGenre)> = GameGenreMap::belonging_to(&games)
[INFO] [stdout]     |  __________________________________________________________^
[INFO] [stdout] 102 | |             .inner_join(schema::game_genres::table)
[INFO] [stdout] 103 | |             .select((GameGenreMap::as_select(), GameGenre::as_select()))
[INFO] [stdout] 104 | |             .load(&mut conn)
[INFO] [stdout] 105 | |             .await
[INFO] [stdout]     | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:106:23
[INFO] [stdout]     |
[INFO] [stdout] 106 |             .map_err(|e| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                       ^                   - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 106 |             .map_err(|e: /* Type */| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:112:19
[INFO] [stdout]     |
[INFO] [stdout] 112 |             .map(|(maps, game)| {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 113 |                 let genres = maps
[INFO] [stdout]     |                              ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 112 |             .map(|(maps, game): (_, _)| {
[INFO] [stdout]     |                               ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 | /             SimilarGameMap::belonging_to(&games)
[INFO] [stdout] 124 | |                 .inner_join(games2.on(
[INFO] [stdout] 125 | |                     schema::similar_game_maps::similar_game_id.eq(games2.field(schema::games::id)),
[INFO] [stdout] 126 | |                 ))
[INFO] [stdout] ...   |
[INFO] [stdout] 131 | |                 .load(&mut conn)
[INFO] [stdout] 132 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 .map_err(|e| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                           ^                   - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 .map_err(|e: /* Type */| Status::internal(e.to_string()))?;
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 139 |             .map(|(maps, game)| {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 140 |                 let games: Vec<Game> = maps.into_iter().map(|map| map.1).collect();
[INFO] [stdout]     |                                        ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 139 |             .map(|(maps, game): (_, _)| {
[INFO] [stdout]     |                               ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:150:16
[INFO] [stdout]     |
[INFO] [stdout] 150 |             if meta.get_cache_dir().is_some() {
[INFO] [stdout]     |                ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:165:44
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     let cache_path = match media_opts.get_item_path().await {
[INFO] [stdout]     |                                            ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:165:25
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     let cache_path = match media_opts.get_item_path().await {
[INFO] [stdout]     |                         ^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout] note: there are multiple different versions of crate `core` in the dependency graph
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/core/src/marker.rs:161:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is the expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.26/src/util/macro_util.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub trait Sized: core::marker::Sized {}
[INFO] [stdout]     |     ------------------------------------ this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required because it appears within the type `Path`
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/std/src/path.rs:2315:11
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:166:28
[INFO] [stdout]     |
[INFO] [stdout] 166 |                         Ok(path) => path,
[INFO] [stdout]     |                            ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `Path`, the trait `Sized` is not implemented for `[u8]`
[INFO] [stdout] note: there are multiple different versions of crate `core` in the dependency graph
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/core/src/marker.rs:161:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is the expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.26/src/util/macro_util.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub trait Sized: core::marker::Sized {}
[INFO] [stdout]     |     ------------------------------------ this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: required because it appears within the type `Path`
[INFO] [stdout]    --> /rustc/95813608313bff49cfc1afc393a946a3c085b772/library/std/src/path.rs:2315:11
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:227:36
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p| p.file_name().map(|s| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                    ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p: /* Type */| p.file_name().map(|s| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:227:58
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p| p.file_name().map(|s| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                                          ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         .and_then(|p| p.file_name().map(|s: /* Type */| s.to_string_lossy().to_string()));
[INFO] [stdout]     |                                                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:329:18
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 .get_result::<retrom::GameMetadata>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 324 ~             let updated_row = match diesel::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::game_metadata::table)
[INFO] [stdout] 325 +                 .values(&metadata_row)
[INFO] [stdout] 326 +                 .on_conflict(retrom_db::schema::game_metadata::game_id)
[INFO] [stdout] 327 +                 .do_update()
[INFO] [stdout] 328 +                 .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 324 ~             let updated_row = match diesel_async::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::game_metadata::table)
[INFO] [stdout] 325 +                 .values(&metadata_row)
[INFO] [stdout] 326 +                 .on_conflict(retrom_db::schema::game_metadata::game_id)
[INFO] [stdout] 327 +                 .do_update()
[INFO] [stdout] 328 +                 .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:334:49
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                                 ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:362:14
[INFO] [stdout]     |
[INFO] [stdout] 362 |             .load::<retrom::PlatformMetadata>(&mut conn)
[INFO] [stdout]     |              ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 360 ~         let metadata = match diesel_async::RunQueryDsl::load(retrom_db::schema::platform_metadata::table
[INFO] [stdout] 361 +             .filter(retrom_db::schema::platform_metadata::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 360 ~         let metadata = match diesel::RunQueryDsl::load(retrom_db::schema::platform_metadata::table
[INFO] [stdout] 361 +             .filter(retrom_db::schema::platform_metadata::platform_id.eq_any(platform_ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:367:45
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:426:30
[INFO] [stdout]     |
[INFO] [stdout] 426 | ...                   .get_result::<retrom::PlatformMetadata>(&mut conn)
[INFO] [stdout]     |                        ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement<T, U, Op, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 421 ~                         diesel::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::platform_metadata::table)
[INFO] [stdout] 422 +                             .values(&metadata_row)
[INFO] [stdout] 423 +                             .on_conflict(retrom_db::schema::platform_metadata::platform_id)
[INFO] [stdout] 424 +                             .do_update()
[INFO] [stdout] 425 +                             .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 421 ~                         diesel_async::RunQueryDsl::get_result(diesel::insert_into(retrom_db::schema::platform_metadata::table)
[INFO] [stdout] 422 +                             .values(&metadata_row)
[INFO] [stdout] 423 +                             .on_conflict(retrom_db::schema::platform_metadata::platform_id)
[INFO] [stdout] 424 +                             .do_update()
[INFO] [stdout] 425 +                             .set(&metadata_row), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:465:14
[INFO] [stdout]     |
[INFO] [stdout] 465 |             .first::<retrom::Game>(&mut conn)
[INFO] [stdout]     |              ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 463 ~         let game = match diesel_async::RunQueryDsl::first(schema::games::table
[INFO] [stdout] 464 +             .find(query.game_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 463 ~         let game = match diesel::RunQueryDsl::first(schema::games::table
[INFO] [stdout] 464 +             .find(query.game_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:470:45
[INFO] [stdout]     |
[INFO] [stdout] 470 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:509:18
[INFO] [stdout]     |
[INFO] [stdout] 509 |                 .first::<retrom::Platform>(&mut conn)
[INFO] [stdout]     |                  ^^^^^ multiple `first` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 507 ~             let platform = match diesel_async::RunQueryDsl::first(schema::platforms::table
[INFO] [stdout] 508 +                 .find(query.platform_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 507 ~             let platform = match diesel::RunQueryDsl::first(schema::platforms::table
[INFO] [stdout] 508 +                 .find(query.platform_id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:514:49
[INFO] [stdout]     |
[INFO] [stdout] 514 |                     return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                                 ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:605:14
[INFO] [stdout]     |
[INFO] [stdout] 605 |             .load(&mut conn)
[INFO] [stdout]     |              ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 602 ~         let games: Vec<retrom::Game> = match diesel_async::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 603 +             .filter(schema::games::id.eq_any(&game_ids))
[INFO] [stdout] 604 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 602 ~         let games: Vec<retrom::Game> = match diesel::RunQueryDsl::load(schema::games::table
[INFO] [stdout] 603 +             .filter(schema::games::id.eq_any(&game_ids))
[INFO] [stdout] 604 +             .filter(schema::games::steam_app_id.is_not_null()), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:610:45
[INFO] [stdout]     |
[INFO] [stdout] 610 |                 return Err(Status::internal(why.to_string()));
[INFO] [stdout]     |                                             ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:674:30
[INFO] [stdout]     |
[INFO] [stdout] 674 | ...                   .execute(&mut conn)
[INFO] [stdout]     |                        ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 671 ~                         diesel_async::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 672 +                             .filter(schema::game_metadata::game_id.eq(game.id))
[INFO] [stdout] 673 +                             .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 671 ~                         diesel::RunQueryDsl::execute(diesel::update(schema::game_metadata::table)
[INFO] [stdout] 672 +                             .filter(schema::game_metadata::game_id.eq(game.id))
[INFO] [stdout] 673 +                             .set(&updated_meta), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:671:25
[INFO] [stdout]     |
[INFO] [stdout] 671 | /                         diesel::update(schema::game_metadata::table)
[INFO] [stdout] 672 | |                             .filter(schema::game_metadata::game_id.eq(game.id))
[INFO] [stdout] 673 | |                             .set(&updated_meta)
[INFO] [stdout] 674 | |                             .execute(&mut conn)
[INFO] [stdout] 675 | |                             .await
[INFO] [stdout]     | |__________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/metadata/mod.rs:676:39
[INFO] [stdout]     |
[INFO] [stdout] 676 | ...                   .map_err(|why| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                   --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 676 |                             .map_err(|why: /* Type */| Status::internal(why.to_string()))?;
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/platforms.rs:53:60
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let platforms: Vec<retrom::Platform> = match query.load(&mut conn).await {
[INFO] [stdout]    |                                                            ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 53 -         let platforms: Vec<retrom::Platform> = match query.load(&mut conn).await {
[INFO] [stdout] 53 +         let platforms: Vec<retrom::Platform> = match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 53 -         let platforms: Vec<retrom::Platform> = match query.load(&mut conn).await {
[INFO] [stdout] 53 +         let platforms: Vec<retrom::Platform> = match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/platforms.rs:55:64
[INFO] [stdout]    |
[INFO] [stdout] 55 |             Err(why) => return Err(Status::new(Code::Internal, why.to_string())),
[INFO] [stdout]    |                                                                ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]   --> src/grpc/platforms.rs:68:75
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 let metadata: Vec<retrom::PlatformMetadata> = match query.load(&mut conn).await {
[INFO] [stdout]    |                                                                           ^^^^ multiple `load` found
[INFO] [stdout]    |
[INFO] [stdout]    = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `BoxedSelectStatement<'_, ST, QS, DB, GB>`
[INFO] [stdout]    = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]    |
[INFO] [stdout] 68 -                 let metadata: Vec<retrom::PlatformMetadata> = match query.load(&mut conn).await {
[INFO] [stdout] 68 +                 let metadata: Vec<retrom::PlatformMetadata> = match diesel::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]    |
[INFO] [stdout] 68 -                 let metadata: Vec<retrom::PlatformMetadata> = match query.load(&mut conn).await {
[INFO] [stdout] 68 +                 let metadata: Vec<retrom::PlatformMetadata> = match diesel_async::RunQueryDsl::load(query, &mut conn).await {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grpc/platforms.rs:70:72
[INFO] [stdout]    |
[INFO] [stdout] 70 |                     Err(why) => return Err(Status::new(Code::Internal, why.to_string())),
[INFO] [stdout]    |                                                                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:106:22
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     .get_result::<retrom::Platform>(&mut conn)
[INFO] [stdout]     |                      ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 104 ~                 let current_platform = diesel_async::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 105 +                     .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 104 ~                 let current_platform = diesel::RunQueryDsl::get_result(schema::platforms::table
[INFO] [stdout] 105 +                     .find(id), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:134:30
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...                   .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout]     |                        ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 132 ~                         let games = diesel_async::RunQueryDsl::get_results(schema::games::table
[INFO] [stdout] 133 +                             .filter(schema::games::platform_id.eq(id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 132 ~                         let games = diesel::RunQueryDsl::get_results(schema::games::table
[INFO] [stdout] 133 +                             .filter(schema::games::platform_id.eq(id)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:132:37
[INFO] [stdout]     |
[INFO] [stdout] 132 |                           let games = schema::games::table
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 133 | |                             .filter(schema::games::platform_id.eq(id))
[INFO] [stdout] 134 | |                             .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout] 135 | |                             .await
[INFO] [stdout]     | |__________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:136:39
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 136 |                             .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:155:29
[INFO] [stdout]     |
[INFO] [stdout] 155 | / ...                   diesel::update(
[INFO] [stdout] 156 | | ...                       schema::games::table.filter(schema::games::id.eq(game.id)),
[INFO] [stdout] 157 | | ...                   )
[INFO] [stdout] 158 | | ...                   .set(schema::games::path.eq(game_path))
[INFO] [stdout] 159 | | ...                   .execute(&mut conn)
[INFO] [stdout] 160 | | ...                   .await
[INFO] [stdout]     | |____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:161:39
[INFO] [stdout]     |
[INFO] [stdout] 161 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 161 |                             .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:163:46
[INFO] [stdout]     |
[INFO] [stdout] 163 |   ...                   let game_files = schema::game_files::table
[INFO] [stdout]     |  ________________________________________^
[INFO] [stdout] 164 | | ...                       .filter(schema::game_files::game_id.eq(game.id))
[INFO] [stdout] 165 | | ...                       .load::<GameFile>(&mut conn)
[INFO] [stdout] 166 | | ...                       .await
[INFO] [stdout]     | |________________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:167:43
[INFO] [stdout]     |
[INFO] [stdout] 167 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 167 |                                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:188:33
[INFO] [stdout]     |
[INFO] [stdout] 188 | / ...                   diesel::update(
[INFO] [stdout] 189 | | ...                       schema::game_files::table
[INFO] [stdout] 190 | | ...                           .filter(schema::game_files::id.eq(game_file.id)),
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | | ...                   .execute(&mut conn)
[INFO] [stdout] 194 | | ...                   .await
[INFO] [stdout]     | |____________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:195:43
[INFO] [stdout]     |
[INFO] [stdout] 195 | ...                   .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                 ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 195 |                                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:208:26
[INFO] [stdout]     |
[INFO] [stdout] 208 |                         .get_result(&mut conn)
[INFO] [stdout]     |                          ^^^^^^^^^^ multiple `get_result` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 206 ~                     diesel_async::RunQueryDsl::get_result(diesel::update(schema::platforms::table.filter(schema::platforms::id.eq(id)))
[INFO] [stdout] 207 +                         .set(platform), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 206 ~                     diesel::RunQueryDsl::get_result(diesel::update(schema::platforms::table.filter(schema::platforms::id.eq(id)))
[INFO] [stdout] 207 +                         .set(platform), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:206:21
[INFO] [stdout]     |
[INFO] [stdout] 206 | /                     diesel::update(schema::platforms::table.filter(schema::platforms::id.eq(id)))
[INFO] [stdout] 207 | |                         .set(platform)
[INFO] [stdout] 208 | |                         .get_result(&mut conn)
[INFO] [stdout] 209 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:210:35
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                   ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 210 |                         .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 |                 .load(&mut conn)
[INFO] [stdout]     |                  ^^^^ multiple `load` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement<F, S, D, W, O, LOf, G, H, LC>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 235 ~             let platforms: Vec<retrom::Platform> = diesel_async::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 236 +                 .filter(schema::platforms::id.eq_any(&request.ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 235 ~             let platforms: Vec<retrom::Platform> = diesel::RunQueryDsl::load(schema::platforms::table
[INFO] [stdout] 236 +                 .filter(schema::platforms::id.eq_any(&request.ids)), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:235:52
[INFO] [stdout]     |
[INFO] [stdout] 235 |               let platforms: Vec<retrom::Platform> = schema::platforms::table
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 236 | |                 .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 237 | |                 .load(&mut conn)
[INFO] [stdout] 238 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:241:44
[INFO] [stdout]     |
[INFO] [stdout] 241 |               let games: Vec<retrom::Game> = retrom::Game::belonging_to(&platforms)
[INFO] [stdout]     |  ____________________________________________^
[INFO] [stdout] 242 | |                 .load(&mut conn)
[INFO] [stdout] 243 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:247:17
[INFO] [stdout]     |
[INFO] [stdout] 247 | /                 PlatformMetadata::belonging_to(&platforms)
[INFO] [stdout] 248 | |                     .load(&mut conn)
[INFO] [stdout] 249 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:252:52
[INFO] [stdout]     |
[INFO] [stdout] 252 |               let game_metadata: Vec<GameMetadata> = GameMetadata::belonging_to(&games)
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 253 | |                 .load(&mut conn)
[INFO] [stdout] 254 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:259:52
[INFO] [stdout]     |
[INFO] [stdout] 259 |             join_all(platform_metadata.iter().map(|m| m.clean_cache())).await;
[INFO] [stdout]     |                                                    ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 259 |             join_all(platform_metadata.iter().map(|m: /* Type */| m.clean_cache())).await;
[INFO] [stdout]     |                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:260:48
[INFO] [stdout]     |
[INFO] [stdout] 260 |             join_all(game_metadata.iter().map(|m| m.clean_cache())).await;
[INFO] [stdout]     |                                                ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 260 |             join_all(game_metadata.iter().map(|m: /* Type */| m.clean_cache())).await;
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |                 .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 270 ~                 let games_deleted = diesel_async::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 271 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 272 +                 )
[INFO] [stdout] 273 +                 .set((
[INFO] [stdout] 274 +                     schema::games::is_deleted.eq(true),
[INFO] [stdout] 275 +                     schema::games::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 276 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 270 ~                 let games_deleted = diesel::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 271 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 272 +                 )
[INFO] [stdout] 273 +                 .set((
[INFO] [stdout] 274 +                     schema::games::is_deleted.eq(true),
[INFO] [stdout] 275 +                     schema::games::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 276 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:270:37
[INFO] [stdout]     |
[INFO] [stdout] 270 |                   let games_deleted = diesel::update(
[INFO] [stdout]     |  _____________________________________^
[INFO] [stdout] 271 | |                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 272 | |                 )
[INFO] [stdout] 273 | |                 .set((
[INFO] [stdout] ...   |
[INFO] [stdout] 277 | |                 .get_results::<retrom::Game>(&mut conn)
[INFO] [stdout] 278 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:279:27
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | /                 diesel::update(schema::game_files::table.filter(
[INFO] [stdout] 282 | |                     schema::game_files::game_id.eq_any(games_deleted.iter().map(|g| g.id)),
[INFO] [stdout] 283 | |                 ))
[INFO] [stdout] 284 | |                 .set((
[INFO] [stdout] ...   |
[INFO] [stdout] 288 | |                 .execute(&mut conn)
[INFO] [stdout] 289 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:290:27
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 290 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:301:18
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 .get_results(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `UpdateStatement<T, U, V, Ret>`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 292 ~                 diesel_async::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 293 +                     schema::platforms::table
[INFO] [stdout] 294 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 295 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 296 +                 )
[INFO] [stdout] 297 +                 .set((
[INFO] [stdout] 298 +                     schema::platforms::is_deleted.eq(true),
[INFO] [stdout] 299 +                     schema::platforms::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 300 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 292 ~                 diesel::RunQueryDsl::get_results(diesel::update(
[INFO] [stdout] 293 +                     schema::platforms::table
[INFO] [stdout] 294 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 295 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 296 +                 )
[INFO] [stdout] 297 +                 .set((
[INFO] [stdout] 298 +                     schema::platforms::is_deleted.eq(true),
[INFO] [stdout] 299 +                     schema::platforms::deleted_at.eq(diesel::dsl::now),
[INFO] [stdout] 300 +                 )), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:292:17
[INFO] [stdout]     |
[INFO] [stdout] 292 | /                 diesel::update(
[INFO] [stdout] 293 | |                     schema::platforms::table
[INFO] [stdout] 294 | |                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 295 | |                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] ...   |
[INFO] [stdout] 301 | |                 .get_results(&mut conn)
[INFO] [stdout] 302 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:303:27
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:309:18
[INFO] [stdout]     |
[INFO] [stdout] 309 |                 .execute(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^ multiple `execute` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 306 ~                 diesel::RunQueryDsl::execute(diesel::delete(
[INFO] [stdout] 307 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 308 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 306 ~                 diesel_async::RunQueryDsl::execute(diesel::delete(
[INFO] [stdout] 307 +                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 308 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 | /                 diesel::delete(
[INFO] [stdout] 307 | |                     schema::games::table.filter(schema::games::platform_id.eq_any(&request.ids)),
[INFO] [stdout] 308 | |                 )
[INFO] [stdout] 309 | |                 .execute(&mut conn)
[INFO] [stdout] 310 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:311:27
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/grpc/platforms.rs:318:18
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 .get_results(&mut conn)
[INFO] [stdout]     |                  ^^^^^^^^^^^ multiple `get_results` found
[INFO] [stdout]     |
[INFO] [stdout]     = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `DeleteStatement<T, U, Ret>`
[INFO] [stdout]     = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T`
[INFO] [stdout] help: disambiguate the method for candidate #1
[INFO] [stdout]     |
[INFO] [stdout] 313 ~                 diesel::RunQueryDsl::get_results(diesel::delete(
[INFO] [stdout] 314 +                     schema::platforms::table
[INFO] [stdout] 315 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 316 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 317 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] help: disambiguate the method for candidate #2
[INFO] [stdout]     |
[INFO] [stdout] 313 ~                 diesel_async::RunQueryDsl::get_results(diesel::delete(
[INFO] [stdout] 314 +                     schema::platforms::table
[INFO] [stdout] 315 +                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 316 +                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 317 +                 ), &mut conn)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 | /                 diesel::delete(
[INFO] [stdout] 314 | |                     schema::platforms::table
[INFO] [stdout] 315 | |                         .filter(schema::platforms::id.eq_any(&request.ids))
[INFO] [stdout] 316 | |                         .filter(schema::platforms::third_party.eq(false)),
[INFO] [stdout] 317 | |                 )
[INFO] [stdout] 318 | |                 .get_results(&mut conn)
[INFO] [stdout] 319 | |                 .await
[INFO] [stdout]     | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grpc/platforms.rs:320:27
[INFO] [stdout]     |
[INFO] [stdout] 320 |                 .map_err(|why| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                           ^^^                              --- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 320 |                 .map_err(|why: /* Type */| Status::new(Code::Internal, why.to_string()))?
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `params` is assigned to, but never used
[INFO] [stdout]    --> src/media_cache/mod.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut params = CSParameters::new();
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_params` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `params` is never read
[INFO] [stdout]    --> src/media_cache/mod.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         params.keep_metadata = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0034, E0277, E0282.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0034`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `retrom-service` (lib test) due to 156 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable `params` is assigned to, but never used
[INFO] [stdout]    --> src/media_cache/mod.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut params = CSParameters::new();
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_params` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `params` is never read
[INFO] [stdout]    --> src/media_cache/mod.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         params.keep_metadata = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0034, E0277, E0282.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0034`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `retrom-service` (lib) due to 156 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "4445a7a06af00bd9d0f2a37426190f5b95abbfe606773d505e370f5aaf51e0e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4445a7a06af00bd9d0f2a37426190f5b95abbfe606773d505e370f5aaf51e0e1", kill_on_drop: false }`
[INFO] [stdout] 4445a7a06af00bd9d0f2a37426190f5b95abbfe606773d505e370f5aaf51e0e1
