[INFO] fetching crate wae-authentication 0.0.2... [INFO] testing wae-authentication-0.0.2 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate wae-authentication 0.0.2 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate wae-authentication 0.0.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate wae-authentication 0.0.2 [INFO] tweaked toml for crates.io crate wae-authentication 0.0.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate wae-authentication 0.0.2 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate wae-authentication 0.0.2 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6370503e74cb1eff90def8f084187820fd3e5c06328a59d4d02b9cb8feb8e7aa [INFO] running `Command { std: "docker" "start" "-a" "6370503e74cb1eff90def8f084187820fd3e5c06328a59d4d02b9cb8feb8e7aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6370503e74cb1eff90def8f084187820fd3e5c06328a59d4d02b9cb8feb8e7aa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6370503e74cb1eff90def8f084187820fd3e5c06328a59d4d02b9cb8feb8e7aa", kill_on_drop: false }` [INFO] [stdout] 6370503e74cb1eff90def8f084187820fd3e5c06328a59d4d02b9cb8feb8e7aa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 50c80740bbc01e79791cb41967e3dd038c1bb631d59e4cddf6a06f1c21aded00 [INFO] running `Command { std: "docker" "start" "-a" "50c80740bbc01e79791cb41967e3dd038c1bb631d59e4cddf6a06f1c21aded00", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rust_decimal_macros v1.40.0 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling blowfish v0.9.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling bcrypt v0.19.0 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling wae-types v0.0.2 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling wae-crypto v0.0.2 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling wae-request v0.0.2 [INFO] [stderr] Compiling wae-authentication v0.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/totp/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use algorithm::*; [INFO] [stdout] | ^^^^^^^^^^^^ the name `TotpResult` in the type namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use service::*; [INFO] [stdout] | ---------- but the name `TotpResult` in the type namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `session_id` is never read [INFO] [stdout] --> src/csrf/service.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 12 | struct CsrfTokenRecord { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | session_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CsrfTokenRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WECHAT_REFRESH_TOKEN_URL` is never used [INFO] [stdout] --> src/oauth2/providers/wechat.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const WECHAT_REFRESH_TOKEN_URL: &str = "https://api.weixin.qq.com/sns/oauth2/refresh_token"; [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/lib.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | async fn login(&self, credentials: &Credentials) -> AuthResult; [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] 199 - async fn login(&self, credentials: &Credentials) -> AuthResult; [INFO] [stdout] 199 + fn login(&self, credentials: &Credentials) -> impl std::future::Future> + Send; [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/lib.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | async fn logout(&self, token: &str) -> AuthResult<()>; [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] 205 - async fn logout(&self, token: &str) -> AuthResult<()>; [INFO] [stdout] 205 + fn logout(&self, token: &str) -> impl std::future::Future> + Send; [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/lib.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | async fn refresh_token(&self, refresh_token: &str) -> AuthResult; [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] 211 - async fn refresh_token(&self, refresh_token: &str) -> AuthResult; [INFO] [stdout] 211 + fn refresh_token(&self, refresh_token: &str) -> impl std::future::Future> + Send; [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/lib.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | async fn validate_token(&self, token: &str) -> AuthResult; [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] 217 - async fn validate_token(&self, token: &str) -> AuthResult; [INFO] [stdout] 217 + fn validate_token(&self, token: &str) -> impl std::future::Future> + Send; [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/lib.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | async fn create_user(&self, request: &CreateUserRequest) -> AuthResult; [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] 223 - async fn create_user(&self, request: &CreateUserRequest) -> AuthResult; [INFO] [stdout] 223 + fn create_user(&self, request: &CreateUserRequest) -> impl std::future::Future> + Send; [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/lib.rs:229:5 [INFO] [stdout] | [INFO] [stdout] 229 | async fn get_user(&self, user_id: &str) -> AuthResult; [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] 229 - async fn get_user(&self, user_id: &str) -> AuthResult; [INFO] [stdout] 229 + fn get_user(&self, user_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | async fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> AuthResult; [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] 236 - async fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> AuthResult; [INFO] [stdout] 236 + fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> impl std::future::Future> + Send; [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/lib.rs:242:5 [INFO] [stdout] | [INFO] [stdout] 242 | async fn delete_user(&self, user_id: &str) -> AuthResult<()>; [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] 242 - async fn delete_user(&self, user_id: &str) -> AuthResult<()>; [INFO] [stdout] 242 + fn delete_user(&self, user_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | async fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> AuthResult<()>; [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] 249 - async fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> AuthResult<()>; [INFO] [stdout] 249 + fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> impl std::future::Future> + Send; [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/lib.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | async fn reset_password(&self, identifier: &str) -> AuthResult<()>; [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] 255 - async fn reset_password(&self, identifier: &str) -> AuthResult<()>; [INFO] [stdout] 255 + fn reset_password(&self, identifier: &str) -> impl std::future::Future> + Send; [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/lib.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | async fn check_permission(&self, user_id: &str, permission: &str) -> AuthResult; [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] 262 - async fn check_permission(&self, user_id: &str, permission: &str) -> AuthResult; [INFO] [stdout] 262 + fn check_permission(&self, user_id: &str, permission: &str) -> impl std::future::Future> + Send; [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/lib.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | async fn get_user_roles(&self, user_id: &str) -> AuthResult>; [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] 268 - async fn get_user_roles(&self, user_id: &str) -> AuthResult>; [INFO] [stdout] 268 + fn get_user_roles(&self, user_id: &str) -> impl std::future::Future>> + Send; [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/lib.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | async fn assign_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [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] 275 - async fn assign_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [INFO] [stdout] 275 + fn assign_role(&self, user_id: &str, role_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 282 | async fn remove_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [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] 282 - async fn remove_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [INFO] [stdout] 282 + fn remove_role(&self, user_id: &str, role_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:295:5 [INFO] [stdout] | [INFO] [stdout] 295 | async fn validate_api_key(&self, api_key: &str) -> AuthResult; [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] 295 - async fn validate_api_key(&self, api_key: &str) -> AuthResult; [INFO] [stdout] 295 + fn validate_api_key(&self, api_key: &str) -> impl std::future::Future> + Send; [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/lib.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 303 | async fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> AuthResult; [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] 303 - async fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> AuthResult; [INFO] [stdout] 303 + fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> impl std::future::Future> + Send; [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/lib.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | async fn revoke_api_key(&self, api_key: &str) -> AuthResult<()>; [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] 309 - async fn revoke_api_key(&self, api_key: &str) -> AuthResult<()>; [INFO] [stdout] 309 + fn revoke_api_key(&self, api_key: &str) -> impl std::future::Future> + Send; [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/lib.rs:315:5 [INFO] [stdout] | [INFO] [stdout] 315 | async fn list_api_keys(&self, user_id: &str) -> AuthResult>; [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] 315 - async fn list_api_keys(&self, user_id: &str) -> AuthResult>; [INFO] [stdout] 315 + fn list_api_keys(&self, user_id: &str) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.53s [INFO] running `Command { std: "docker" "inspect" "50c80740bbc01e79791cb41967e3dd038c1bb631d59e4cddf6a06f1c21aded00", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "50c80740bbc01e79791cb41967e3dd038c1bb631d59e4cddf6a06f1c21aded00", kill_on_drop: false }` [INFO] [stdout] 50c80740bbc01e79791cb41967e3dd038c1bb631d59e4cddf6a06f1c21aded00 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 96e1379710773b86cd72876e448ae828610b2eb164484c39e08b302b2529ffde [INFO] running `Command { std: "docker" "start" "-a" "96e1379710773b86cd72876e448ae828610b2eb164484c39e08b302b2529ffde", kill_on_drop: false }` [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/totp/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use algorithm::*; [INFO] [stdout] | ^^^^^^^^^^^^ the name `TotpResult` in the type namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use service::*; [INFO] [stdout] | ---------- but the name `TotpResult` in the type namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `session_id` is never read [INFO] [stdout] --> src/csrf/service.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 12 | struct CsrfTokenRecord { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | session_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CsrfTokenRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WECHAT_REFRESH_TOKEN_URL` is never used [INFO] [stdout] --> src/oauth2/providers/wechat.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const WECHAT_REFRESH_TOKEN_URL: &str = "https://api.weixin.qq.com/sns/oauth2/refresh_token"; [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/lib.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | async fn login(&self, credentials: &Credentials) -> AuthResult; [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] 199 - async fn login(&self, credentials: &Credentials) -> AuthResult; [INFO] [stdout] 199 + fn login(&self, credentials: &Credentials) -> impl std::future::Future> + Send; [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/lib.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | async fn logout(&self, token: &str) -> AuthResult<()>; [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] 205 - async fn logout(&self, token: &str) -> AuthResult<()>; [INFO] [stdout] 205 + fn logout(&self, token: &str) -> impl std::future::Future> + Send; [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/lib.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | async fn refresh_token(&self, refresh_token: &str) -> AuthResult; [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] 211 - async fn refresh_token(&self, refresh_token: &str) -> AuthResult; [INFO] [stdout] 211 + fn refresh_token(&self, refresh_token: &str) -> impl std::future::Future> + Send; [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/lib.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | async fn validate_token(&self, token: &str) -> AuthResult; [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] 217 - async fn validate_token(&self, token: &str) -> AuthResult; [INFO] [stdout] 217 + fn validate_token(&self, token: &str) -> impl std::future::Future> + Send; [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/lib.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | async fn create_user(&self, request: &CreateUserRequest) -> AuthResult; [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] 223 - async fn create_user(&self, request: &CreateUserRequest) -> AuthResult; [INFO] [stdout] 223 + fn create_user(&self, request: &CreateUserRequest) -> impl std::future::Future> + Send; [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/lib.rs:229:5 [INFO] [stdout] | [INFO] [stdout] 229 | async fn get_user(&self, user_id: &str) -> AuthResult; [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] 229 - async fn get_user(&self, user_id: &str) -> AuthResult; [INFO] [stdout] 229 + fn get_user(&self, user_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | async fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> AuthResult; [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] 236 - async fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> AuthResult; [INFO] [stdout] 236 + fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> impl std::future::Future> + Send; [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/lib.rs:242:5 [INFO] [stdout] | [INFO] [stdout] 242 | async fn delete_user(&self, user_id: &str) -> AuthResult<()>; [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] 242 - async fn delete_user(&self, user_id: &str) -> AuthResult<()>; [INFO] [stdout] 242 + fn delete_user(&self, user_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | async fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> AuthResult<()>; [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] 249 - async fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> AuthResult<()>; [INFO] [stdout] 249 + fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> impl std::future::Future> + Send; [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/lib.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | async fn reset_password(&self, identifier: &str) -> AuthResult<()>; [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] 255 - async fn reset_password(&self, identifier: &str) -> AuthResult<()>; [INFO] [stdout] 255 + fn reset_password(&self, identifier: &str) -> impl std::future::Future> + Send; [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/lib.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | async fn check_permission(&self, user_id: &str, permission: &str) -> AuthResult; [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] 262 - async fn check_permission(&self, user_id: &str, permission: &str) -> AuthResult; [INFO] [stdout] 262 + fn check_permission(&self, user_id: &str, permission: &str) -> impl std::future::Future> + Send; [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/lib.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | async fn get_user_roles(&self, user_id: &str) -> AuthResult>; [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] 268 - async fn get_user_roles(&self, user_id: &str) -> AuthResult>; [INFO] [stdout] 268 + fn get_user_roles(&self, user_id: &str) -> impl std::future::Future>> + Send; [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/lib.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | async fn assign_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [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] 275 - async fn assign_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [INFO] [stdout] 275 + fn assign_role(&self, user_id: &str, role_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 282 | async fn remove_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [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] 282 - async fn remove_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [INFO] [stdout] 282 + fn remove_role(&self, user_id: &str, role_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:295:5 [INFO] [stdout] | [INFO] [stdout] 295 | async fn validate_api_key(&self, api_key: &str) -> AuthResult; [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] 295 - async fn validate_api_key(&self, api_key: &str) -> AuthResult; [INFO] [stdout] 295 + fn validate_api_key(&self, api_key: &str) -> impl std::future::Future> + Send; [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/lib.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 303 | async fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> AuthResult; [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] 303 - async fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> AuthResult; [INFO] [stdout] 303 + fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> impl std::future::Future> + Send; [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/lib.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | async fn revoke_api_key(&self, api_key: &str) -> AuthResult<()>; [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] 309 - async fn revoke_api_key(&self, api_key: &str) -> AuthResult<()>; [INFO] [stdout] 309 + fn revoke_api_key(&self, api_key: &str) -> impl std::future::Future> + Send; [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/lib.rs:315:5 [INFO] [stdout] | [INFO] [stdout] 315 | async fn list_api_keys(&self, user_id: &str) -> AuthResult>; [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] 315 - async fn list_api_keys(&self, user_id: &str) -> AuthResult>; [INFO] [stdout] 315 + fn list_api_keys(&self, user_id: &str) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wae-authentication v0.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `wae_authentication::*` [INFO] [stdout] --> tests/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use wae_authentication::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find type `JwtHeader` in this scope [INFO] [stdout] --> tests/jwt_codec_tests.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 20 | let header = JwtHeader::new("HS256"); [INFO] [stdout] | ^^^^^^^^^ use of undeclared type `JwtHeader` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 1 + use wae_authentication::jwt::JwtHeader; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `encode_jwt` in this scope [INFO] [stdout] --> tests/jwt_codec_tests.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | let token = encode_jwt(&header, &claims, secret).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 + use wae_authentication::jwt::encode_jwt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `decode_jwt` in this scope [INFO] [stdout] --> tests/jwt_codec_tests.rs:22:31 [INFO] [stdout] | [INFO] [stdout] 22 | let decoded: TestClaims = decode_jwt(&token, secret, true).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 + use wae_authentication::jwt::decode_jwt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0603]: module `codec` is private [INFO] [stdout] --> tests/jwt_codec_tests.rs:2:30 [INFO] [stdout] | [INFO] [stdout] 2 | use wae_authentication::jwt::codec::*; [INFO] [stdout] | ^^^^^ private module [INFO] [stdout] | [INFO] [stdout] note: the module `codec` is defined here [INFO] [stdout] --> src/jwt/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | mod codec; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0433, E0603. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] [INFO] [stderr] error: could not compile `wae-authentication` (test "jwt_codec_tests") due to 4 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: ambiguous glob re-exports [INFO] [stdout] --> src/totp/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use algorithm::*; [INFO] [stdout] | ^^^^^^^^^^^^ the name `TotpResult` in the type namespace is first re-exported here [INFO] [stdout] ... [INFO] [stdout] 13 | pub use service::*; [INFO] [stdout] | ---------- but the name `TotpResult` in the type namespace is also re-exported here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ambiguous_glob_reexports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `session_id` is never read [INFO] [stdout] --> src/csrf/service.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 12 | struct CsrfTokenRecord { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | session_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CsrfTokenRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WECHAT_REFRESH_TOKEN_URL` is never used [INFO] [stdout] --> src/oauth2/providers/wechat.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const WECHAT_REFRESH_TOKEN_URL: &str = "https://api.weixin.qq.com/sns/oauth2/refresh_token"; [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/lib.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 199 | async fn login(&self, credentials: &Credentials) -> AuthResult; [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] 199 - async fn login(&self, credentials: &Credentials) -> AuthResult; [INFO] [stdout] 199 + fn login(&self, credentials: &Credentials) -> impl std::future::Future> + Send; [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/lib.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | async fn logout(&self, token: &str) -> AuthResult<()>; [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] 205 - async fn logout(&self, token: &str) -> AuthResult<()>; [INFO] [stdout] 205 + fn logout(&self, token: &str) -> impl std::future::Future> + Send; [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/lib.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | async fn refresh_token(&self, refresh_token: &str) -> AuthResult; [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] 211 - async fn refresh_token(&self, refresh_token: &str) -> AuthResult; [INFO] [stdout] 211 + fn refresh_token(&self, refresh_token: &str) -> impl std::future::Future> + Send; [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/lib.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 217 | async fn validate_token(&self, token: &str) -> AuthResult; [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] 217 - async fn validate_token(&self, token: &str) -> AuthResult; [INFO] [stdout] 217 + fn validate_token(&self, token: &str) -> impl std::future::Future> + Send; [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/lib.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | async fn create_user(&self, request: &CreateUserRequest) -> AuthResult; [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] 223 - async fn create_user(&self, request: &CreateUserRequest) -> AuthResult; [INFO] [stdout] 223 + fn create_user(&self, request: &CreateUserRequest) -> impl std::future::Future> + Send; [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/lib.rs:229:5 [INFO] [stdout] | [INFO] [stdout] 229 | async fn get_user(&self, user_id: &str) -> AuthResult; [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] 229 - async fn get_user(&self, user_id: &str) -> AuthResult; [INFO] [stdout] 229 + fn get_user(&self, user_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | async fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> AuthResult; [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] 236 - async fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> AuthResult; [INFO] [stdout] 236 + fn update_user(&self, user_id: &str, request: &UpdateUserRequest) -> impl std::future::Future> + Send; [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/lib.rs:242:5 [INFO] [stdout] | [INFO] [stdout] 242 | async fn delete_user(&self, user_id: &str) -> AuthResult<()>; [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] 242 - async fn delete_user(&self, user_id: &str) -> AuthResult<()>; [INFO] [stdout] 242 + fn delete_user(&self, user_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | async fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> AuthResult<()>; [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] 249 - async fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> AuthResult<()>; [INFO] [stdout] 249 + fn change_password(&self, user_id: &str, request: &ChangePasswordRequest) -> impl std::future::Future> + Send; [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/lib.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | async fn reset_password(&self, identifier: &str) -> AuthResult<()>; [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] 255 - async fn reset_password(&self, identifier: &str) -> AuthResult<()>; [INFO] [stdout] 255 + fn reset_password(&self, identifier: &str) -> impl std::future::Future> + Send; [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/lib.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | async fn check_permission(&self, user_id: &str, permission: &str) -> AuthResult; [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] 262 - async fn check_permission(&self, user_id: &str, permission: &str) -> AuthResult; [INFO] [stdout] 262 + fn check_permission(&self, user_id: &str, permission: &str) -> impl std::future::Future> + Send; [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/lib.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | async fn get_user_roles(&self, user_id: &str) -> AuthResult>; [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] 268 - async fn get_user_roles(&self, user_id: &str) -> AuthResult>; [INFO] [stdout] 268 + fn get_user_roles(&self, user_id: &str) -> impl std::future::Future>> + Send; [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/lib.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | async fn assign_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [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] 275 - async fn assign_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [INFO] [stdout] 275 + fn assign_role(&self, user_id: &str, role_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 282 | async fn remove_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [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] 282 - async fn remove_role(&self, user_id: &str, role_id: &str) -> AuthResult<()>; [INFO] [stdout] 282 + fn remove_role(&self, user_id: &str, role_id: &str) -> impl std::future::Future> + Send; [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/lib.rs:295:5 [INFO] [stdout] | [INFO] [stdout] 295 | async fn validate_api_key(&self, api_key: &str) -> AuthResult; [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] 295 - async fn validate_api_key(&self, api_key: &str) -> AuthResult; [INFO] [stdout] 295 + fn validate_api_key(&self, api_key: &str) -> impl std::future::Future> + Send; [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/lib.rs:303:5 [INFO] [stdout] | [INFO] [stdout] 303 | async fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> AuthResult; [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] 303 - async fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> AuthResult; [INFO] [stdout] 303 + fn create_api_key(&self, user_id: &str, name: &str, expires_in: Option) -> impl std::future::Future> + Send; [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/lib.rs:309:5 [INFO] [stdout] | [INFO] [stdout] 309 | async fn revoke_api_key(&self, api_key: &str) -> AuthResult<()>; [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] 309 - async fn revoke_api_key(&self, api_key: &str) -> AuthResult<()>; [INFO] [stdout] 309 + fn revoke_api_key(&self, api_key: &str) -> impl std::future::Future> + Send; [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/lib.rs:315:5 [INFO] [stdout] | [INFO] [stdout] 315 | async fn list_api_keys(&self, user_id: &str) -> AuthResult>; [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] 315 - async fn list_api_keys(&self, user_id: &str) -> AuthResult>; [INFO] [stdout] 315 + fn list_api_keys(&self, user_id: &str) -> impl std::future::Future>> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "96e1379710773b86cd72876e448ae828610b2eb164484c39e08b302b2529ffde", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96e1379710773b86cd72876e448ae828610b2eb164484c39e08b302b2529ffde", kill_on_drop: false }` [INFO] [stdout] 96e1379710773b86cd72876e448ae828610b2eb164484c39e08b302b2529ffde