[INFO] fetching crate r2d2_mysql_batis 0.1.4...
[INFO] checking r2d2_mysql_batis-0.1.4 against 018018e881e2db0956f229dbb543e21f058d1ce7 for pr-162600
[INFO] extracting crate r2d2_mysql_batis 0.1.4 into /workspace/builds/worker-2-tc1/source
[INFO] removed /workspace/builds/worker-2-tc1/source/.cargo/config
[INFO] started tweaking crates.io crate r2d2_mysql_batis 0.1.4
[INFO] finished tweaking crates.io crate r2d2_mysql_batis 0.1.4
[INFO] tweaked toml for crates.io crate r2d2_mysql_batis 0.1.4 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate r2d2_mysql_batis 0.1.4 on toolchain 018018e881e2db0956f229dbb543e21f058d1ce7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 239 packages to highest compatible versions
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding r2d2_mysql v24.0.0 (available: v28.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `r2d2_mysql_batis` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded scheduled-thread-pool v0.2.7
[INFO] [stderr]   Downloaded r2d2_mysql v24.0.0
[INFO] [stderr]   Downloaded frunk v0.4.4
[INFO] [stderr]   Downloaded r2d2 v0.8.10
[INFO] [stderr]   Downloaded bufstream v0.1.4
[INFO] [stderr]   Downloaded saturating v0.1.0
[INFO] [stderr]   Downloaded mysql_common v0.30.6
[INFO] [stderr]   Downloaded frunk_proc_macro_helpers v0.1.5
[INFO] [stderr]   Downloaded mysql-common-derive v0.30.2
[INFO] [stderr]   Downloaded bindgen v0.73.2
[INFO] [stderr]   Downloaded bigdecimal v0.3.1
[INFO] [stderr]   Downloaded named_pipe v0.4.1
[INFO] [stderr]   Downloaded pem v2.0.1
[INFO] [stderr]   Downloaded r2d2_mysql_batis_macros v0.1.0
[INFO] [stderr]   Downloaded lexical v6.1.1
[INFO] [stderr]   Downloaded io-enum v1.2.1
[INFO] [stderr]   Downloaded frunk_core v0.5.0
[INFO] [stderr]   Downloaded subprocess v0.2.15
[INFO] [stderr]   Downloaded mysql v24.0.0
[INFO] [stderr]   Downloaded frunk_core v0.4.4
[INFO] [stderr]   Downloaded frunk_proc_macros v0.1.5
[INFO] [stderr]   Downloaded frunk_derives v0.4.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7
[INFO] running `Command { std: "docker" "start" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7", 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" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7" "/opt/rustwide/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7", 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" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7" "/opt/rustwide/cargo-home/bin/cargo" "+018018e881e2db0956f229dbb543e21f058d1ce7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `r2d2_mysql_batis` (manifest) generated 1 warning
[INFO] [stderr]     Checking smallvec v1.16.1
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]     Checking lexical-util v0.8.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling bindgen v0.73.2
[INFO] [stderr]    Compiling frunk_core v0.5.0
[INFO] [stderr]    Compiling libz-sys v1.1.29
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling rustc-hash v2.1.3
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking icu_normalizer v2.3.0
[INFO] [stderr]     Checking aho-corasick v1.1.5
[INFO] [stderr]    Compiling subprocess v0.2.15
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling clang-sys v1.9.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]     Checking lexical-write-integer v0.8.5
[INFO] [stderr]     Checking lexical-parse-integer v0.8.6
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking num-integer v0.1.47
[INFO] [stderr]     Checking lexical-parse-float v0.8.5
[INFO] [stderr]     Checking lexical-write-float v0.8.5
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking crossbeam-epoch v0.9.21
[INFO] [stderr]     Checking num-bigint v0.4.8
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking lexical-core v0.8.5
[INFO] [stderr]     Checking frunk_core v0.4.4
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking time v0.3.55
[INFO] [stderr]     Checking lexical v6.1.1
[INFO] [stderr]     Checking flate2 v1.1.10
[INFO] [stderr]     Checking rust_decimal v1.43.0
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking bitvec v1.1.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking crossbeam-channel v0.5.17
[INFO] [stderr]     Checking crossbeam-queue v0.3.14
[INFO] [stderr]     Checking bigdecimal v0.3.1
[INFO] [stderr]     Checking saturating v0.1.0
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling mysql v24.0.0
[INFO] [stderr]     Checking uuid v1.26.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking lru v0.10.1
[INFO] [stderr]     Checking pem v2.0.1
[INFO] [stderr]     Checking crossbeam v0.8.5
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking scheduled-thread-pool v0.2.7
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking bufstream v0.1.4
[INFO] [stderr]     Checking r2d2 v0.8.10
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]    Compiling r2d2_mysql_batis_macros v0.1.0
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]    Compiling frunk_proc_macro_helpers v0.1.5
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling derive_utils v0.15.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling frunk_derives v0.4.4
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling frunk_proc_macros v0.1.5
[INFO] [stderr]    Compiling io-enum v1.2.1
[INFO] [stderr]     Checking frunk v0.4.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling mysql-common-derive v0.30.2
[INFO] [stderr]    Compiling mysql_common v0.30.6
[INFO] [stderr]     Checking r2d2_mysql v24.0.0
[INFO] [stderr]     Checking r2d2_mysql_batis v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/service/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     async fn query(query_sql: String) -> Result<Vec<Self>, BoxErr> {
[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] 14 ~     fn query(query_sql: String) -> impl std::future::Future<Output = Result<Vec<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 15 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 25 |         }).await?
[INFO] [stdout] 26 ~     } }
[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/service/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     async fn jpa_query(query_sql: String, params: Params) -> Result<Vec<Self>, BoxErr> {
[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] 29 ~     fn jpa_query(query_sql: String, params: Params) -> impl std::future::Future<Output = Result<Vec<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 30 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 40 |         }).await?
[INFO] [stdout] 41 ~     } }
[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/service/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     async fn list() -> Result<Vec<Self>, BoxErr> {
[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] 44 ~     fn list() -> impl std::future::Future<Output = Result<Vec<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 45 |         Self::query(format!("SELECT * FROM `{}` ORDER BY `{}` ASC", Self::table_name(), Self::primary_key())).await
[INFO] [stdout] 46 ~     } }
[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/service/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn find_by_id(id: u64) -> Result<Option<Self>, BoxErr> {
[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] 49 ~     fn find_by_id(id: u64) -> impl std::future::Future<Output = Result<Option<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 50 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 58 |         }).await?
[INFO] [stdout] 59 ~     } }
[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/service/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     async fn add(mut self) -> Result<Self, BoxErr> {
[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] 62 ~     fn add(mut self) -> impl std::future::Future<Output = Result<Self, BoxErr>> + Send {async {
[INFO] [stdout] 63 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 68 |         }).await?
[INFO] [stdout] 69 ~     } }
[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/service/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     async fn edit(self) -> Result<Self, BoxErr> {
[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] 72 ~     fn edit(self) -> impl std::future::Future<Output = Result<Self, BoxErr>> + Send {async {
[INFO] [stdout] 73 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 77 |         }).await?
[INFO] [stdout] 78 ~     } }
[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/service/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     async fn remove(id: u64) -> Result<(), BoxErr> {
[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 remove(id: u64) -> impl std::future::Future<Output = Result<(), BoxErr>> + Send {async {
[INFO] [stdout] 82 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 86 |         }).await?
[INFO] [stdout] 87 ~     } }
[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/service/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     async fn query(query_sql: String) -> Result<Vec<Self>, BoxErr> {
[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] 14 ~     fn query(query_sql: String) -> impl std::future::Future<Output = Result<Vec<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 15 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 25 |         }).await?
[INFO] [stdout] 26 ~     } }
[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/service/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     async fn jpa_query(query_sql: String, params: Params) -> Result<Vec<Self>, BoxErr> {
[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] 29 ~     fn jpa_query(query_sql: String, params: Params) -> impl std::future::Future<Output = Result<Vec<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 30 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 40 |         }).await?
[INFO] [stdout] 41 ~     } }
[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/service/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     async fn list() -> Result<Vec<Self>, BoxErr> {
[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] 44 ~     fn list() -> impl std::future::Future<Output = Result<Vec<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 45 |         Self::query(format!("SELECT * FROM `{}` ORDER BY `{}` ASC", Self::table_name(), Self::primary_key())).await
[INFO] [stdout] 46 ~     } }
[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/service/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     async fn find_by_id(id: u64) -> Result<Option<Self>, BoxErr> {
[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] 49 ~     fn find_by_id(id: u64) -> impl std::future::Future<Output = Result<Option<Self>, BoxErr>> + Send {async {
[INFO] [stdout] 50 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 58 |         }).await?
[INFO] [stdout] 59 ~     } }
[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/service/mod.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     async fn add(mut self) -> Result<Self, BoxErr> {
[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] 62 ~     fn add(mut self) -> impl std::future::Future<Output = Result<Self, BoxErr>> + Send {async {
[INFO] [stdout] 63 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 68 |         }).await?
[INFO] [stdout] 69 ~     } }
[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/service/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     async fn edit(self) -> Result<Self, BoxErr> {
[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] 72 ~     fn edit(self) -> impl std::future::Future<Output = Result<Self, BoxErr>> + Send {async {
[INFO] [stdout] 73 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 77 |         }).await?
[INFO] [stdout] 78 ~     } }
[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/service/mod.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     async fn remove(id: u64) -> Result<(), BoxErr> {
[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 remove(id: u64) -> impl std::future::Future<Output = Result<(), BoxErr>> + Send {async {
[INFO] [stdout] 82 |         let mut coon = mysql::get_coon().await?;
[INFO] [stdout] ...
[INFO] [stdout] 86 |         }).await?
[INFO] [stdout] 87 ~     } }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.19s
[INFO] running `Command { std: "docker" "inspect" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7", kill_on_drop: false }`
[INFO] [stdout] 71057de2078032371a3e8dc7b11b48c157c1fc1d04cbaa861950bb7b698f50e7
