[INFO] cloning repository https://github.com/akay25/mangoengine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/akay25/mangoengine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fakay25%2Fmangoengine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fakay25%2Fmangoengine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] daae8214dc79bf69b402d882fa54ec19de7c46ab
[INFO] checking akay25/mangoengine against c397dae808f70caebab1fc4e11b3edf7e59f58c7 for pr-158759-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fakay25%2Fmangoengine" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/akay25/mangoengine
[INFO] finished tweaking git repo https://github.com/akay25/mangoengine
[INFO] tweaked toml for git repo https://github.com/akay25/mangoengine written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/akay25/mangoengine on toolchain c397dae808f70caebab1fc4e11b3edf7e59f58c7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/akay25/mangoengine 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" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded typed-builder v0.22.0
[INFO] [stderr]   Downloaded uuid v1.23.0
[INFO] [stderr]   Downloaded rustc_version_runtime v0.3.0
[INFO] [stderr]   Downloaded take_mut v0.2.2
[INFO] [stderr]   Downloaded mongodb-internal-macros v3.5.2
[INFO] [stderr]   Downloaded typed-builder-macro v0.22.0
[INFO] [stderr]   Downloaded mongocrypt v0.3.2
[INFO] [stderr]   Downloaded mongocrypt-sys v0.1.5+1.15.1
[INFO] [stderr]   Downloaded serde_with_macros v3.18.0
[INFO] [stderr]   Downloaded derive-where v1.6.1
[INFO] [stderr]   Downloaded indexmap v2.13.1
[INFO] [stderr]   Downloaded bson v2.15.0
[INFO] [stderr]   Downloaded serde_with v3.18.0
[INFO] [stderr]   Downloaded mongodb v3.5.2
[INFO] [stderr]   Downloaded tokio v1.51.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b
[INFO] running `Command { std: "docker" "start" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b" "/opt/rustwide/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b" "/opt/rustwide/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]     Checking indexmap v2.13.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]    Compiling rustc_version_runtime v0.3.0
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking stringprep v0.1.5
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling derive-syn-parse v0.2.0
[INFO] [stderr]    Compiling macro_magic_core_macros v0.5.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking tokio v1.51.0
[INFO] [stderr]    Compiling macro_magic_core v0.5.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling typed-builder-macro v0.22.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling macro_magic_macros v0.5.1
[INFO] [stderr]    Compiling macro_magic v0.5.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking typed-builder v0.22.0
[INFO] [stderr]    Compiling mongodb-internal-macros v3.5.2
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling serde_with_macros v3.18.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling derive-where v1.6.1
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling mangoengine_macros v0.1.0 (/opt/rustwide/workdir/mangoengine_macros)
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking serde_with v3.18.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking bson v2.15.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking mongodb v3.5.2
[INFO] [stderr]     Checking mangoengine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Client`, `bson::doc`, and `options::ClientOptions`
[INFO] [stdout]  --> src/connect_options.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use mongodb::{bson::doc, options::ClientOptions, Client, Database};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `info`
[INFO] [stdout]  --> src/connect_options.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, error, info};
[INFO] [stdout]   |               ^^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/db_collection_row_trait.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info};
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/db_collection_row_trait_from_raw.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info};
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/utils.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, error, info};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Client`, `bson::doc`, and `options::ClientOptions`
[INFO] [stdout]  --> src/connect_options.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use mongodb::{bson::doc, options::ClientOptions, Client, Database};
[INFO] [stdout]   |               ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `info`
[INFO] [stdout]  --> src/connect_options.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, error, info};
[INFO] [stdout]   |               ^^^^^  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/db_collection_row_trait.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info};
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/db_collection_row_trait_from_raw.rs:8:29
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, error, info};
[INFO] [stdout]   |                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/utils.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, error, info};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DB` is never used
[INFO] [stdout]  --> src/connect_options.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static DB: OnceLock<Database> = OnceLock::new();
[INFO] [stdout]   |        ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     async fn get_collection() -> Collection<T> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 25 ~     fn get_collection() -> impl std::future::Future<Output = Collection<T>> + Send {async {
[INFO] [stdout] 26 |         Self::collection_cell()
[INFO] [stdout] ...
[INFO] [stdout] 29 |             .clone_with_type()
[INFO] [stdout] 30 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     async fn create(new_doc: &T) -> bool {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 33 ~     fn create(new_doc: &T) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 34 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 43 |         }
[INFO] [stdout] 44 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     async fn find(filter: Document, optional_sort_query: Option<Document>) -> Vec<T> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 48 ~     fn find(filter: Document, optional_sort_query: Option<Document>) -> impl std::future::Future<Output = Vec<T>> + Send {async {
[INFO] [stdout] 49 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 60 |         rows
[INFO] [stdout] 61 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     async fn find_one(filter: Document, optional_sort_query: Option<Document>) -> Option<T> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 63 ~     fn find_one(filter: Document, optional_sort_query: Option<Document>) -> impl std::future::Future<Output = Option<T>> + Send {async {
[INFO] [stdout] 64 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 78 |         }
[INFO] [stdout] 79 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     async fn update_one(query: Document, update: Document) -> bool {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 81 ~     fn update_one(query: Document, update: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 82 |         let update_query = doc! {"$set": update};
[INFO] [stdout] ...
[INFO] [stdout] 97 |         }
[INFO] [stdout] 98 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     async fn delete_one(query: Document) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 100 ~     fn delete_one(query: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 101 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 115 |         }
[INFO] [stdout] 116 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     async fn count(query: Document) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 118 ~     fn count(query: Document) -> impl std::future::Future<Output = Option<u64>> + Send {async {
[INFO] [stdout] 119 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 127 |         }
[INFO] [stdout] 128 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     async fn aggregate(pipeline: Vec<Document>) -> Vec<Document> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 130 ~     fn aggregate(pipeline: Vec<Document>) -> impl std::future::Future<Output = Vec<Document>> + Send {async {
[INFO] [stdout] 131 |         let collection: Collection<T> = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 138 |         rows
[INFO] [stdout] 139 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     async fn save(&self) -> bool
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 144 ~     fn save(&self) -> impl std::future::Future<Output = bool> + Send
[INFO] [stdout] 145 |     where
[INFO] [stdout] 146 |         Self: Serialize,
[INFO] [stdout] 147 ~     {async {
[INFO] [stdout] 148 |         let update_doc = match mongodb::bson::to_bson(self) {
[INFO] [stdout] ...
[INFO] [stdout] 156 |         Self::update_one(doc! {"_id": self.get_id()}, update_doc).await
[INFO] [stdout] 157 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     async fn delete(&self) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 159 ~     fn delete(&self) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 160 |         Self::delete_one(doc! {"_id": self.get_id()}).await
[INFO] [stdout] 161 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn get_collection() -> Collection<RawType> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 30 ~     fn get_collection() -> impl std::future::Future<Output = Collection<RawType>> + Send {async {
[INFO] [stdout] 31 |         Self::collection_cell()
[INFO] [stdout] ...
[INFO] [stdout] 34 |             .clone_with_type()
[INFO] [stdout] 35 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn create(new_doc: RawType) -> bool {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 38 ~     fn create(new_doc: RawType) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 39 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 48 |         }
[INFO] [stdout] 49 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     async fn find(filter: Document, optional_sort_query: Option<Document>) -> Vec<ActualType> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 52 ~     fn find(filter: Document, optional_sort_query: Option<Document>) -> impl std::future::Future<Output = Vec<ActualType>> + Send {async {
[INFO] [stdout] 53 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 72 |         }
[INFO] [stdout] 73 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     async fn find_one(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 75 ~     fn find_one(
[INFO] [stdout] 76 |         filter: Document,
[INFO] [stdout] 77 |         optional_sort_query: Option<Document>,
[INFO] [stdout] 78 ~     ) -> impl std::future::Future<Output = Option<ActualType>> + Send {async {
[INFO] [stdout] 79 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 93 |         }
[INFO] [stdout] 94 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 |     async fn update_one(query: Document, update: Document) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout]  97 ~     fn update_one(query: Document, update: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout]  98 |         let update_query = doc! {"$set": update};
[INFO] [stdout] ...
[INFO] [stdout] 113 |         }
[INFO] [stdout] 114 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     async fn delete_one(query: Document) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 117 ~     fn delete_one(query: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 118 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 132 |         }
[INFO] [stdout] 133 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 136 |     async fn count(query: Document) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 136 ~     fn count(query: Document) -> impl std::future::Future<Output = Option<u64>> + Send {async {
[INFO] [stdout] 137 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 145 |         }
[INFO] [stdout] 146 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     async fn aggregate(pipeline: Vec<Document>) -> Vec<Document> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 149 ~     fn aggregate(pipeline: Vec<Document>) -> impl std::future::Future<Output = Vec<Document>> + Send {async {
[INFO] [stdout] 150 |         let collection: Collection<RawType> = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 160 |         }
[INFO] [stdout] 161 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     async fn save(&self) -> bool
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 167 ~     fn save(&self) -> impl std::future::Future<Output = bool> + Send
[INFO] [stdout] 168 |     where
[INFO] [stdout] 169 |         Self: Serialize,
[INFO] [stdout] 170 ~     {async {
[INFO] [stdout] 171 |         let update_doc = match mongodb::bson::to_bson(self) {
[INFO] [stdout] ...
[INFO] [stdout] 179 |         Self::update_one(doc! {"_id": self.get_id()}, update_doc).await
[INFO] [stdout] 180 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     async fn delete(&self) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 183 ~     fn delete(&self) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 184 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 197 |         }
[INFO] [stdout] 198 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DB` is never used
[INFO] [stdout]  --> src/connect_options.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static DB: OnceLock<Database> = OnceLock::new();
[INFO] [stdout]   |        ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     async fn get_collection() -> Collection<T> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 25 ~     fn get_collection() -> impl std::future::Future<Output = Collection<T>> + Send {async {
[INFO] [stdout] 26 |         Self::collection_cell()
[INFO] [stdout] ...
[INFO] [stdout] 29 |             .clone_with_type()
[INFO] [stdout] 30 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     async fn create(new_doc: &T) -> bool {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 33 ~     fn create(new_doc: &T) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 34 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 43 |         }
[INFO] [stdout] 44 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     async fn find(filter: Document, optional_sort_query: Option<Document>) -> Vec<T> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 48 ~     fn find(filter: Document, optional_sort_query: Option<Document>) -> impl std::future::Future<Output = Vec<T>> + Send {async {
[INFO] [stdout] 49 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 60 |         rows
[INFO] [stdout] 61 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     async fn find_one(filter: Document, optional_sort_query: Option<Document>) -> Option<T> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 63 ~     fn find_one(filter: Document, optional_sort_query: Option<Document>) -> impl std::future::Future<Output = Option<T>> + Send {async {
[INFO] [stdout] 64 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 78 |         }
[INFO] [stdout] 79 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     async fn update_one(query: Document, update: Document) -> bool {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 81 ~     fn update_one(query: Document, update: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 82 |         let update_query = doc! {"$set": update};
[INFO] [stdout] ...
[INFO] [stdout] 97 |         }
[INFO] [stdout] 98 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     async fn delete_one(query: Document) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 100 ~     fn delete_one(query: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 101 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 115 |         }
[INFO] [stdout] 116 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     async fn count(query: Document) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 118 ~     fn count(query: Document) -> impl std::future::Future<Output = Option<u64>> + Send {async {
[INFO] [stdout] 119 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 127 |         }
[INFO] [stdout] 128 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 130 |     async fn aggregate(pipeline: Vec<Document>) -> Vec<Document> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 130 ~     fn aggregate(pipeline: Vec<Document>) -> impl std::future::Future<Output = Vec<Document>> + Send {async {
[INFO] [stdout] 131 |         let collection: Collection<T> = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 138 |         rows
[INFO] [stdout] 139 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     async fn save(&self) -> bool
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 144 ~     fn save(&self) -> impl std::future::Future<Output = bool> + Send
[INFO] [stdout] 145 |     where
[INFO] [stdout] 146 |         Self: Serialize,
[INFO] [stdout] 147 ~     {async {
[INFO] [stdout] 148 |         let update_doc = match mongodb::bson::to_bson(self) {
[INFO] [stdout] ...
[INFO] [stdout] 156 |         Self::update_one(doc! {"_id": self.get_id()}, update_doc).await
[INFO] [stdout] 157 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     async fn delete(&self) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 159 ~     fn delete(&self) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 160 |         Self::delete_one(doc! {"_id": self.get_id()}).await
[INFO] [stdout] 161 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     async fn get_collection() -> Collection<RawType> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 30 ~     fn get_collection() -> impl std::future::Future<Output = Collection<RawType>> + Send {async {
[INFO] [stdout] 31 |         Self::collection_cell()
[INFO] [stdout] ...
[INFO] [stdout] 34 |             .clone_with_type()
[INFO] [stdout] 35 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn create(new_doc: RawType) -> bool {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 38 ~     fn create(new_doc: RawType) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 39 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 48 |         }
[INFO] [stdout] 49 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     async fn find(filter: Document, optional_sort_query: Option<Document>) -> Vec<ActualType> {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 52 ~     fn find(filter: Document, optional_sort_query: Option<Document>) -> impl std::future::Future<Output = Vec<ActualType>> + Send {async {
[INFO] [stdout] 53 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 72 |         }
[INFO] [stdout] 73 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/db_collection_row_trait_from_raw.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     async fn find_one(
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]    |
[INFO] [stdout] 75 ~     fn find_one(
[INFO] [stdout] 76 |         filter: Document,
[INFO] [stdout] 77 |         optional_sort_query: Option<Document>,
[INFO] [stdout] 78 ~     ) -> impl std::future::Future<Output = Option<ActualType>> + Send {async {
[INFO] [stdout] 79 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 93 |         }
[INFO] [stdout] 94 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  97 |     async fn update_one(query: Document, update: Document) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout]  97 ~     fn update_one(query: Document, update: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout]  98 |         let update_query = doc! {"$set": update};
[INFO] [stdout] ...
[INFO] [stdout] 113 |         }
[INFO] [stdout] 114 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     async fn delete_one(query: Document) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 117 ~     fn delete_one(query: Document) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 118 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 132 |         }
[INFO] [stdout] 133 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 136 |     async fn count(query: Document) -> Option<u64> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 136 ~     fn count(query: Document) -> impl std::future::Future<Output = Option<u64>> + Send {async {
[INFO] [stdout] 137 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 145 |         }
[INFO] [stdout] 146 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     async fn aggregate(pipeline: Vec<Document>) -> Vec<Document> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 149 ~     fn aggregate(pipeline: Vec<Document>) -> impl std::future::Future<Output = Vec<Document>> + Send {async {
[INFO] [stdout] 150 |         let collection: Collection<RawType> = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 160 |         }
[INFO] [stdout] 161 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     async fn save(&self) -> bool
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 167 ~     fn save(&self) -> impl std::future::Future<Output = bool> + Send
[INFO] [stdout] 168 |     where
[INFO] [stdout] 169 |         Self: Serialize,
[INFO] [stdout] 170 ~     {async {
[INFO] [stdout] 171 |         let update_doc = match mongodb::bson::to_bson(self) {
[INFO] [stdout] ...
[INFO] [stdout] 179 |         Self::update_one(doc! {"_id": self.get_id()}, update_doc).await
[INFO] [stdout] 180 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/db_collection_row_trait_from_raw.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     async fn delete(&self) -> bool {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 183 ~     fn delete(&self) -> impl std::future::Future<Output = bool> + Send {async {
[INFO] [stdout] 184 |         let collection = Self::get_collection().await;
[INFO] [stdout] ...
[INFO] [stdout] 197 |         }
[INFO] [stdout] 198 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b", kill_on_drop: false }`
[INFO] [stdout] 4d89d673351db9e8bdf7e449596b9db61f943029d253e11507e5b94ff840574b
