[INFO] fetching crate bmbp_auth 0.0.2... [INFO] testing bmbp_auth-0.0.2 against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] extracting crate bmbp_auth 0.0.2 into /workspace/builds/worker-3-tc1/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-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate bmbp_auth 0.0.2 on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "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] Blocking waiting for file lock on package cache [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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded case_style v0.2.1 [INFO] [stderr] Downloaded bmbp_marco_util v0.0.6 [INFO] [stderr] Downloaded bmbp_marco_bean v0.0.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bb242f5d4a4208234d73fcff316107c97605acb1fad662a98fad415b1beacc95 [INFO] running `Command { std: "docker" "start" "-a" "bb242f5d4a4208234d73fcff316107c97605acb1fad662a98fad415b1beacc95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bb242f5d4a4208234d73fcff316107c97605acb1fad662a98fad415b1beacc95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bb242f5d4a4208234d73fcff316107c97605acb1fad662a98fad415b1beacc95", kill_on_drop: false }` [INFO] [stdout] bb242f5d4a4208234d73fcff316107c97605acb1fad662a98fad415b1beacc95 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0e810124d20e58fc3b80c1eea7747e1cd2e9179937b10b7e87b1f6b6f73634e3 [INFO] running `Command { std: "docker" "start" "-a" "0e810124d20e58fc3b80c1eea7747e1cd2e9179937b10b7e87b1f6b6f73634e3", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling serde_derive 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 13.85s [INFO] running `Command { std: "docker" "inspect" "0e810124d20e58fc3b80c1eea7747e1cd2e9179937b10b7e87b1f6b6f73634e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e810124d20e58fc3b80c1eea7747e1cd2e9179937b10b7e87b1f6b6f73634e3", kill_on_drop: false }` [INFO] [stdout] 0e810124d20e58fc3b80c1eea7747e1cd2e9179937b10b7e87b1f6b6f73634e3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] afae3304f82085476090e2f558e1b72a451ff8dc068d561dd50ecc33d7073f04 [INFO] running `Command { std: "docker" "start" "-a" "afae3304f82085476090e2f558e1b72a451ff8dc068d561dd50ecc33d7073f04", 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.24s [INFO] running `Command { std: "docker" "inspect" "afae3304f82085476090e2f558e1b72a451ff8dc068d561dd50ecc33d7073f04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "afae3304f82085476090e2f558e1b72a451ff8dc068d561dd50ecc33d7073f04", kill_on_drop: false }` [INFO] [stdout] afae3304f82085476090e2f558e1b72a451ff8dc068d561dd50ecc33d7073f04 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 19d8af5f50f606b53859ef0001649f11b85cd5687695460fa74ca6581b8d2181 [INFO] running `Command { std: "docker" "start" "-a" "19d8af5f50f606b53859ef0001649f11b85cd5687695460fa74ca6581b8d2181", 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: 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] warning: `bmbp_auth` (lib test) generated 2 warnings (2 duplicates) [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_user ... ok [INFO] [stdout] test test_bmbp_auth_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_token (line 44) ... FAILED [INFO] [stdout] test src/lib.rs - register_bmbp_auth (line 15) ... FAILED [INFO] [stdout] test src/lib.rs - register_bmbp_auth_user (line 30) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [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] ---- 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] [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.25s [INFO] [stdout] [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "19d8af5f50f606b53859ef0001649f11b85cd5687695460fa74ca6581b8d2181", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "19d8af5f50f606b53859ef0001649f11b85cd5687695460fa74ca6581b8d2181", kill_on_drop: false }` [INFO] [stdout] 19d8af5f50f606b53859ef0001649f11b85cd5687695460fa74ca6581b8d2181