[INFO] fetching crate bmbp_auth 0.0.2... [INFO] testing bmbp_auth-0.0.2 against try#b83b707f97d809763b7861afa7638871f3339a33 for pr-145838-1 [INFO] extracting crate bmbp_auth 0.0.2 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate bmbp_auth 0.0.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate bmbp_auth 0.0.2 [INFO] tweaked toml for crates.io crate bmbp_auth 0.0.2 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate bmbp_auth 0.0.2 on toolchain b83b707f97d809763b7861afa7638871f3339a33 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "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" "+b83b707f97d809763b7861afa7638871f3339a33" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 77 packages to latest compatible versions [INFO] [stderr] Adding bmbp_marco_bean v0.0.6 (available: v0.0.15) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 02c2105325bb6c0b6dc9a4ad81f76fb0be96ab123f1726291ab0da4567e6d028 [INFO] running `Command { std: "docker" "start" "-a" "02c2105325bb6c0b6dc9a4ad81f76fb0be96ab123f1726291ab0da4567e6d028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "02c2105325bb6c0b6dc9a4ad81f76fb0be96ab123f1726291ab0da4567e6d028", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "02c2105325bb6c0b6dc9a4ad81f76fb0be96ab123f1726291ab0da4567e6d028", kill_on_drop: false }` [INFO] [stdout] 02c2105325bb6c0b6dc9a4ad81f76fb0be96ab123f1726291ab0da4567e6d028 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 949a4d6d1750595a62d808012f5f6c981a163870ff2f3ed5bc17e3e73956d73e [INFO] running `Command { std: "docker" "start" "-a" "949a4d6d1750595a62d808012f5f6c981a163870ff2f3ed5bc17e3e73956d73e", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling case_style v0.2.1 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling bmbp_marco_util v0.0.6 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling bmbp_marco_bean v0.0.6 [INFO] [stderr] Compiling bmbp_auth v0.0.2 (/opt/rustwide/workdir) [INFO] [stdout] AAAAAAAAA=====>#[derive(Default, Debug, Clone, Serialize, Deserialize)] [INFO] [stdout] #[serde(rename_all = "camelCase")] #[serde(default)] pub struct BmbpAuthErr [INFO] [stdout] { [INFO] [stdout] code : Option < String > , msg : Option < String > , kind : [INFO] [stdout] BmbpAuthErrType, [INFO] [stdout] } impl BmbpAuthErr [INFO] [stdout] { [INFO] [stdout] pub fn new() -> Self { Self :: default() } pub fn [INFO] [stdout] set_code(& mut self, value : Option < String >) -> & mut Self [INFO] [stdout] { self.code = value; self } pub fn get_code(& self) -> & Option < String > [INFO] [stdout] { & self.code } pub fn get_mut_code(& mut self) -> & mut Option < String > [INFO] [stdout] { & mut self.code } pub fn set_msg(& mut self, value : Option < String >) [INFO] [stdout] -> & mut Self { self.msg = value; self } pub fn get_msg(& self) -> & [INFO] [stdout] Option < String > { & self.msg } pub fn get_mut_msg(& mut self) -> & mut [INFO] [stdout] Option < String > { & mut self.msg } pub fn [INFO] [stdout] set_kind(& mut self, value : BmbpAuthErrType) -> & mut Self [INFO] [stdout] { self.kind = value; self } pub fn get_kind(& self) -> & BmbpAuthErrType [INFO] [stdout] { & self.kind } pub fn get_mut_kind(& mut self) -> & mut BmbpAuthErrType [INFO] [stdout] { & mut self.kind } [INFO] [stdout] } [INFO] [stdout] warning: unused import: `OnceLock` [INFO] [stdout] --> src/cache.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, LazyLock, OnceLock, RwLock}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt` [INFO] [stdout] --> src/lib.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::io::AsyncWriteExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.81s [INFO] running `Command { std: "docker" "inspect" "949a4d6d1750595a62d808012f5f6c981a163870ff2f3ed5bc17e3e73956d73e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "949a4d6d1750595a62d808012f5f6c981a163870ff2f3ed5bc17e3e73956d73e", kill_on_drop: false }` [INFO] [stdout] 949a4d6d1750595a62d808012f5f6c981a163870ff2f3ed5bc17e3e73956d73e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a923d4f5400276605832c95fb5bd47d3cc3ec0b94c0609a7272f62fc91714be5 [INFO] running `Command { std: "docker" "start" "-a" "a923d4f5400276605832c95fb5bd47d3cc3ec0b94c0609a7272f62fc91714be5", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `OnceLock` [INFO] [stdout] --> src/cache.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, LazyLock, OnceLock, RwLock}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt` [INFO] [stdout] --> src/lib.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::io::AsyncWriteExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling bmbp_auth v0.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `user` [INFO] [stdout] --> tests/test_bean.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | let user = BmbpUser::default(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] AAAAAAAAA=====>#[derive(Default, Debug, Clone, Serialize, Deserialize)] [INFO] [stdout] #[serde(rename_all = "camelCase")] #[serde(default)] pub struct BmbpAuthErr [INFO] [stdout] { [INFO] [stdout] code : Option < String > , msg : Option < String > , kind : [INFO] [stdout] BmbpAuthErrType, [INFO] [stdout] } impl BmbpAuthErr [INFO] [stdout] { [INFO] [stdout] pub fn new() -> Self { Self :: default() } pub fn [INFO] [stdout] set_code(& mut self, value : Option < String >) -> & mut Self [INFO] [stdout] { self.code = value; self } pub fn get_code(& self) -> & Option < String > [INFO] [stdout] { & self.code } pub fn get_mut_code(& mut self) -> & mut Option < String > [INFO] [stdout] { & mut self.code } pub fn set_msg(& mut self, value : Option < String >) [INFO] [stdout] -> & mut Self { self.msg = value; self } pub fn get_msg(& self) -> & [INFO] [stdout] Option < String > { & self.msg } pub fn get_mut_msg(& mut self) -> & mut [INFO] [stdout] Option < String > { & mut self.msg } pub fn [INFO] [stdout] set_kind(& mut self, value : BmbpAuthErrType) -> & mut Self [INFO] [stdout] { self.kind = value; self } pub fn get_kind(& self) -> & BmbpAuthErrType [INFO] [stdout] { & self.kind } pub fn get_mut_kind(& mut self) -> & mut BmbpAuthErrType [INFO] [stdout] { & mut self.kind } [INFO] [stdout] } [INFO] [stdout] warning: unused import: `OnceLock` [INFO] [stdout] --> src/cache.rs:1:32 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, LazyLock, OnceLock, RwLock}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt` [INFO] [stdout] --> src/lib.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::io::AsyncWriteExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.29s [INFO] running `Command { std: "docker" "inspect" "a923d4f5400276605832c95fb5bd47d3cc3ec0b94c0609a7272f62fc91714be5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a923d4f5400276605832c95fb5bd47d3cc3ec0b94c0609a7272f62fc91714be5", kill_on_drop: false }` [INFO] [stdout] a923d4f5400276605832c95fb5bd47d3cc3ec0b94c0609a7272f62fc91714be5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] da1adf0acc33da50d209e41078ac8d61f205e800f182342f81671f61a5a5f862 [INFO] running `Command { std: "docker" "start" "-a" "da1adf0acc33da50d209e41078ac8d61f205e800f182342f81671f61a5a5f862", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `OnceLock` [INFO] [stderr] --> src/cache.rs:1:32 [INFO] [stderr] | [INFO] [stderr] 1 | use std::sync::{Arc, LazyLock, OnceLock, RwLock}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio::io::AsyncWriteExt` [INFO] [stderr] --> src/lib.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use tokio::io::AsyncWriteExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `bmbp_auth` (lib) generated 2 warnings (run `cargo fix --lib -p bmbp_auth` to apply 1 suggestion) [INFO] [stderr] warning: `bmbp_auth` (lib test) generated 2 warnings (2 duplicates) [INFO] [stderr] warning: unused variable: `user` [INFO] [stderr] --> tests/test_bean.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | let user = BmbpUser::default(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `bmbp_auth` (test "test_bean") generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bmbp_auth-423d1519228b66f0) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/test_bean.rs (/opt/rustwide/target/debug/deps/test_bean-671323cce132d36b) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test test_bmbp_auth_user ... ok [INFO] [stdout] test test_user ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests bmbp_auth [INFO] [stdout] AAAAAAAAA=====>#[derive(Default, Debug, Clone, Serialize, Deserialize)] [INFO] [stdout] #[serde(rename_all = "camelCase")] #[serde(default)] pub struct BmbpAuthErr [INFO] [stdout] { [INFO] [stdout] code : Option < String > , msg : Option < String > , kind : [INFO] [stdout] BmbpAuthErrType, [INFO] [stdout] } impl BmbpAuthErr [INFO] [stdout] { [INFO] [stdout] pub fn new() -> Self { Self :: default() } pub fn [INFO] [stdout] set_code(& mut self, value : Option < String >) -> & mut Self [INFO] [stdout] { self.code = value; self } pub fn get_code(& self) -> & Option < String > [INFO] [stdout] { & self.code } pub fn get_mut_code(& mut self) -> & mut Option < String > [INFO] [stdout] { & mut self.code } pub fn set_msg(& mut self, value : Option < String >) [INFO] [stdout] -> & mut Self { self.msg = value; self } pub fn get_msg(& self) -> & [INFO] [stdout] Option < String > { & self.msg } pub fn get_mut_msg(& mut self) -> & mut [INFO] [stdout] Option < String > { & mut self.msg } pub fn [INFO] [stdout] set_kind(& mut self, value : BmbpAuthErrType) -> & mut Self [INFO] [stdout] { self.kind = value; self } pub fn get_kind(& self) -> & BmbpAuthErrType [INFO] [stdout] { & self.kind } pub fn get_mut_kind(& mut self) -> & mut BmbpAuthErrType [INFO] [stdout] { & mut self.kind } [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/lib.rs - register_bmbp_auth_user (line 30) ... FAILED [INFO] [stdout] test src/lib.rs - register_bmbp_auth_token (line 44) ... FAILED [INFO] [stdout] test src/lib.rs - register_bmbp_auth (line 15) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/lib.rs - register_bmbp_auth_user (line 30) stdout ---- [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/lib.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 7 | impl BmbpAuthToken for BmbpAuthTokenImpl { [INFO] [stdout] | - item list starts here [INFO] [stdout] 8 | ... [INFO] [stdout] | ^^^ non-item starts here [INFO] [stdout] 9 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] error[E0046]: not all trait items implemented, missing: `create_token`, `check_token`, `refresh_token`, `invalid_token`, `remove_token`, `get_token_info`, `get_token_user` [INFO] [stdout] --> src/lib.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 7 | impl BmbpAuthToken for BmbpAuthTokenImpl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `create_token`, `check_token`, `refresh_token`, `invalid_token`, `remove_token`, `get_token_info`, `get_token_user` in implementation [INFO] [stdout] | [INFO] [stdout] = help: implement the missing item: `fn create_token(&'life0 self, _: String, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn check_token(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn refresh_token(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn invalid_token(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn remove_token(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_token_info(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_token_user(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `BmbpAuthTokenImpl` in the current scope [INFO] [stdout] --> src/lib.rs:37:44 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct BmbpAuthTokenImpl; [INFO] [stdout] | ---------------------------- function or associated item `new` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 10 | let auth = Box::new(BmbpAuthTokenImpl::new()); [INFO] [stdout] | ^^^ function or associated item not found in `BmbpAuthTokenImpl` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `new`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `parking_lot_core::thread_parker::ThreadParkerT` [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0046, E0599. [INFO] [stdout] For more information about an error, try `rustc --explain E0046`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/lib.rs - register_bmbp_auth_token (line 44) stdout ---- [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/lib.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 7 | impl BmbpAuthUser for BmbpAuthUserImpl { [INFO] [stdout] | - item list starts here [INFO] [stdout] 8 | ... [INFO] [stdout] | ^^^ non-item starts here [INFO] [stdout] 9 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] error[E0046]: not all trait items implemented, missing: `get_current_info`, `get_current_organ`, `get_current_apps`, `get_current_menus`, `get_current_res_roles`, `get_current_data_roles` [INFO] [stdout] --> src/lib.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 7 | impl BmbpAuthUser for BmbpAuthUserImpl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `get_current_info`, `get_current_organ`, `get_current_apps`, `get_current_menus`, `get_current_res_roles`, `get_current_data_roles` in implementation [INFO] [stdout] | [INFO] [stdout] = help: implement the missing item: `fn get_current_info(&'life0 self) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_current_organ(&'life0 self) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_current_apps(&'life0 self) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_current_menus(&'life0 self) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_current_res_roles(&'life0 self) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_current_data_roles(&'life0 self) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `BmbpAuthUserImpl` in the current scope [INFO] [stdout] --> src/lib.rs:51:43 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct BmbpAuthUserImpl; [INFO] [stdout] | --------------------------- function or associated item `new` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 10 | let user = Box::new(BmbpAuthUserImpl::new()); [INFO] [stdout] | ^^^ function or associated item not found in `BmbpAuthUserImpl` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `new`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `parking_lot_core::thread_parker::ThreadParkerT` [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0046, E0599. [INFO] [stdout] For more information about an error, try `rustc --explain E0046`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/lib.rs - register_bmbp_auth (line 15) stdout ---- [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/lib.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 7 | impl BmbpAuth for BmbpAuthImpl { [INFO] [stdout] | - item list starts here [INFO] [stdout] 8 | ... [INFO] [stdout] | ^^^ non-item starts here [INFO] [stdout] 9 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] error[E0046]: not all trait items implemented, missing: `get_user_by_id`, `get_user_by_name`, `get_user_by_mobile`, `get_users_by_organ_code`, `get_users_by_res_role_code`, `get_users_by_data_role_code`, `get_organ_organ_by_id`, `get_organ_organ_by_code`, `get_organ_organ_by_path`, `get_organ_organs_by_parent_code`, `get_organ_organs_by_parent_path`, `get_organ_organs_by_role_code`, `get_organ_organ_tree`, `get_organ_organ_tree_by_start_id`, `get_organ_organ_tree_by_start_code`, `get_organ_organ_tree_by_start_path`, `get_organ_organ_tree_by_start_parent_id`, `get_organ_organ_tree_by_start_parent_code`, `get_organ_organ_tree_by_start_parent_path`, `get_app_by_id`, `get_app_by_code`, `get_apps_by_user_id`, `get_apps_by_user_name`, `get_apps_by_user_mobile`, `get_apps_by_role_code`, `get_apps_by_role_codes`, `get_menu_by_id`, `get_menu_by_code`, `get_menu_by_path`, `get_menus_by_app_id`, `get_menus_by_app_code`, `get_menus_by_app_ids`, `get_menus_by_app_codes`, `get_menus_by_user_id`, `get_menus_by_user_name`, `get_menus_by_user_mobile`, `get_menus_by_role_id`, `get_menus_by_role_code`, `get_menus_by_role_ids`, `get_menus_by_role_codes` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 7 | impl BmbpAuth for BmbpAuthImpl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `get_user_by_id`, `get_user_by_name`, `get_user_by_mobile`, `get_users_by_organ_code`, `get_users_by_res_role_code`, `get_users_by_data_role_code`, `get_organ_organ_by_id`, `get_organ_organ_by_code`, `get_organ_organ_by_path`, `get_organ_organs_by_parent_code`, `get_organ_organs_by_parent_path`, `get_organ_organs_by_role_code`, `get_organ_organ_tree`, `get_organ_organ_tree_by_start_id`, `get_organ_organ_tree_by_start_code`, `get_organ_organ_tree_by_start_path`, `get_organ_organ_tree_by_start_parent_id`, `get_organ_organ_tree_by_start_parent_code`, `get_organ_organ_tree_by_start_parent_path`, `get_app_by_id`, `get_app_by_code`, `get_apps_by_user_id`, `get_apps_by_user_name`, `get_apps_by_user_mobile`, `get_apps_by_role_code`, `get_apps_by_role_codes`, `get_menu_by_id`, `get_menu_by_code`, `get_menu_by_path`, `get_menus_by_app_id`, `get_menus_by_app_code`, `get_menus_by_app_ids`, `get_menus_by_app_codes`, `get_menus_by_user_id`, `get_menus_by_user_name`, `get_menus_by_user_mobile`, `get_menus_by_role_id`, `get_menus_by_role_code`, `get_menus_by_role_ids`, `get_menus_by_role_codes` in implementation [INFO] [stdout] | [INFO] [stdout] = help: implement the missing item: `fn get_user_by_id(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_user_by_name(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_user_by_mobile(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_users_by_organ_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_users_by_res_role_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_users_by_data_role_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_by_id(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_by_code(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_by_path(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organs_by_parent_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organs_by_parent_path(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organs_by_role_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree(&'life0 self) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree_by_start_id(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree_by_start_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree_by_start_path(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree_by_start_parent_id(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree_by_start_parent_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_organ_organ_tree_by_start_parent_path(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_app_by_id(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_app_by_code(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_apps_by_user_id(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_apps_by_user_name(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_apps_by_user_mobile(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_apps_by_role_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_apps_by_role_codes(&'life0 self, _: &'life1 [String]) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menu_by_id(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menu_by_code(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menu_by_path(&'life0 self, _: String) -> Pin, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_app_id(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_app_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_app_ids(&'life0 self, _: &'life1 [String]) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_app_codes(&'life0 self, _: &'life1 [String]) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_user_id(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_user_name(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_user_mobile(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_role_id(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_role_code(&'life0 self, _: String) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_role_ids(&'life0 self, _: &'life1 [String]) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] = help: implement the missing item: `fn get_menus_by_role_codes(&'life0 self, _: &'life1 [String]) -> Pin>, BmbpAuthErr>> + Send + 'async_trait)>> { todo!() }` [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `BmbpAuthImpl` in the current scope [INFO] [stdout] --> src/lib.rs:22:39 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct BmbpAuthImpl; [INFO] [stdout] | ----------------------- function or associated item `new` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 10 | let auth = Box::new(BmbpAuthImpl::new()); [INFO] [stdout] | ^^^ function or associated item not found in `BmbpAuthImpl` [INFO] [stdout] | [INFO] [stdout] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stdout] = note: the following trait defines an item `new`, perhaps you need to implement it: [INFO] [stdout] candidate #1: `parking_lot_core::thread_parker::ThreadParkerT` [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0046, E0599. [INFO] [stdout] For more information about an error, try `rustc --explain E0046`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/lib.rs - register_bmbp_auth (line 15) [INFO] [stdout] src/lib.rs - register_bmbp_auth_token (line 44) [INFO] [stdout] src/lib.rs - register_bmbp_auth_user (line 30) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "da1adf0acc33da50d209e41078ac8d61f205e800f182342f81671f61a5a5f862", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "da1adf0acc33da50d209e41078ac8d61f205e800f182342f81671f61a5a5f862", kill_on_drop: false }` [INFO] [stdout] da1adf0acc33da50d209e41078ac8d61f205e800f182342f81671f61a5a5f862