[INFO] fetching crate narangcia-cryptic 0.3.0...
[INFO] testing narangcia-cryptic-0.3.0 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate narangcia-cryptic 0.3.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate narangcia-cryptic 0.3.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate narangcia-cryptic 0.3.0
[INFO] tweaked toml for crates.io crate narangcia-cryptic 0.3.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate narangcia-cryptic 0.3.0 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate narangcia-cryptic 0.3.0 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 454e0b0ad50cf7b06310ec59b80c0c9256a946cdcf717a25108a7fa3358b0d25
[INFO] running `Command { std: "docker" "start" "-a" "454e0b0ad50cf7b06310ec59b80c0c9256a946cdcf717a25108a7fa3358b0d25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "454e0b0ad50cf7b06310ec59b80c0c9256a946cdcf717a25108a7fa3358b0d25", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "454e0b0ad50cf7b06310ec59b80c0c9256a946cdcf717a25108a7fa3358b0d25", kill_on_drop: false }`
[INFO] [stdout] 454e0b0ad50cf7b06310ec59b80c0c9256a946cdcf717a25108a7fa3358b0d25
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 31d3ff71a4b78764544a3bd931f911cbc6e95cc102e58d65aac76ac2c3488e9d
[INFO] running `Command { std: "docker" "start" "-a" "31d3ff71a4b78764544a3bd931f911cbc6e95cc102e58d65aac76ac2c3488e9d", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling rustls v0.23.29
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling base64ct v1.8.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling h2 v0.4.11
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling simple_asn1 v0.6.3
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling webpki-roots v1.0.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.4
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling hyper v1.6.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling hyper-util v0.1.15
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling serde_path_to_error v0.1.17
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.22
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling oauth2 v5.0.0
[INFO] [stderr]    Compiling narangcia-cryptic v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.11s
[INFO] running `Command { std: "docker" "inspect" "31d3ff71a4b78764544a3bd931f911cbc6e95cc102e58d65aac76ac2c3488e9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "31d3ff71a4b78764544a3bd931f911cbc6e95cc102e58d65aac76ac2c3488e9d", kill_on_drop: false }`
[INFO] [stdout] 31d3ff71a4b78764544a3bd931f911cbc6e95cc102e58d65aac76ac2c3488e9d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7403e39b43abac30c89ac2f52bc1d706262c4bae91c68f199869ed98c9e2ab08
[INFO] running `Command { std: "docker" "start" "-a" "7403e39b43abac30c89ac2f52bc1d706262c4bae91c68f199869ed98c9e2ab08", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling clap_builder v4.5.41
[INFO] [stderr]    Compiling anstyle-query v1.1.3
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling jiff v0.2.15
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling simple_asn1 v0.6.3
[INFO] [stderr]    Compiling clap v4.5.41
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling serde_path_to_error v0.1.17
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling env_filter v0.1.3
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling jsonwebtoken v9.3.1
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling tokio-rustls v0.26.2
[INFO] [stderr]    Compiling criterion v0.6.0
[INFO] [stderr]    Compiling tower-http v0.6.6
[INFO] [stderr]    Compiling h2 v0.4.11
[INFO] [stderr]    Compiling hyper v1.6.0
[INFO] [stderr]    Compiling hyper-util v0.1.15
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.22
[INFO] [stderr]    Compiling oauth2 v5.0.0
[INFO] [stderr]    Compiling narangcia-cryptic v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 39.92s
[INFO] running `Command { std: "docker" "inspect" "7403e39b43abac30c89ac2f52bc1d706262c4bae91c68f199869ed98c9e2ab08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7403e39b43abac30c89ac2f52bc1d706262c4bae91c68f199869ed98c9e2ab08", kill_on_drop: false }`
[INFO] [stdout] 7403e39b43abac30c89ac2f52bc1d706262c4bae91c68f199869ed98c9e2ab08
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] af5fd2f2cdb16f1022d005c04b454535aef1cce70383de6e3a1c89cf289efb94
[INFO] running `Command { std: "docker" "start" "-a" "af5fd2f2cdb16f1022d005c04b454535aef1cce70383de6e3a1c89cf289efb94", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/narangcia_cryptic-d4daa120bf6beaf9)
[INFO] [stderr]      Running tests/all_tests.rs (/opt/rustwide/target/debug/deps/all_tests-53bc5b4963136fe1)
[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] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test test_auth_service_variables_default ... ok
[INFO] [stdout] test test_auth_service_variables_clone_and_debug ... ok
[INFO] [stdout] test test_credentials_struct_and_plain_password ... ok
[INFO] [stdout] test test_generate_secure_salt ... ok
[INFO] [stdout] test test_auth_service_variables_custom ... ok
[INFO] [stdout] test test_auth_service_login_invalid_credentials ... ok
[INFO] [stdout] test test_jwt_invalid_token ... ok
[INFO] [stdout] test test_jwt_token_pair_generation_and_validation ... ok
[INFO] [stdout] test test_plain_password_zeroize_on_drop ... ok
[INFO] [stdout] test test_jwt_refresh_access_token ... ok
[INFO] [stdout] test test_in_memory_user_repo_update_user ... ok
[INFO] [stdout] test test_in_memory_user_repo_add_and_get_user ... ok
[INFO] [stdout] test test_in_memory_user_repo_delete_user ... ok
[INFO] [stdout] test test_auth_service_signup_not_implemented ... ok
[INFO] [stdout] test test_auth_service_login_success ... ok
[INFO] [stdout] test test_credentials_new_and_verify ... ok
[INFO] [stdout] test test_argon2_hasher_hash_and_verify ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.39s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests narangcia_cryptic
[INFO] [stdout] 
[INFO] [stdout] running 42 tests
[INFO] [stdout] test src/core/hash/mod.rs - core::hash::argon2 (line 24) ... FAILED
[INFO] [stdout] test src/core/oauth/mod.rs - core::oauth::OAuth2Service (line 28) ... ignored
[INFO] [stdout] test src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::hash (line 64) ... FAILED
[INFO] [stdout] test src/core/hash/salt.rs - core::hash::salt::generate_secure_salt (line 29) ... FAILED
[INFO] [stdout] test src/auth_service.rs - auth_service::AuthService (line 75) ... FAILED
[INFO] [stdout] test src/core/oauth/mod.rs - core::oauth::store (line 153) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::link_to_user (line 622) ... FAILED
[INFO] [stdout] test src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::verify (line 95) ... FAILED
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Config::auth_url (line 244) ... FAILED
[INFO] [stdout] test src/core/credentials/plain_password.rs - core::credentials::plain_password (line 13) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager (line 637) ... FAILED
[INFO] [stdout] test src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::new (line 39) ... FAILED
[INFO] [stdout] test src/core/password/manager.rs - core::password::manager (line 9) ... ignored
[INFO] [stdout] test src/core/password/manager.rs - core::password::manager::SecurePasswordManager::hash_password (line 51) ... ignored
[INFO] [stdout] test src/core/password/manager.rs - core::password::manager::SecurePasswordManager::verify_password (line 71) ... ignored
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Config::user_info_url (line 298) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_client (line 147) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager (line 86) ... FAILED
[INFO] [stdout] test src/core/hash/mod.rs - core::hash::salt (line 26) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_http_client (line 124) ... FAILED
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Provider::default_scopes (line 98) ... FAILED
[INFO] [stdout] test src/core/oauth/mod.rs - core::oauth::manager (line 159) ... FAILED
[INFO] [stdout] test src/core/password/mod.rs - core::password (line 18) ... FAILED
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Token::expires_soon (line 163) ... FAILED
[INFO] [stdout] test src/core/user/mod.rs - core::user (line 19) ... ignored
[INFO] [stdout] test src/core/user/mod.rs - core::user::User::with_plain_password (line 103) ... ignored
[INFO] [stdout] test src/core/policy/mod.rs - core::policy (line 9) ... FAILED
[INFO] [stdout] test src/core/user/mod.rs - core::user (line 11) ... FAILED
[INFO] [stdout] test src/core/policy/mod.rs - core::policy::PasswordPolicy::validate_password (line 64) ... FAILED
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Config::token_url (line 271) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_redirect_frontend_uri (line 600) ... FAILED
[INFO] [stdout] test src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::parse_user_info (line 202) ... FAILED
[INFO] [stdout] test src/core/credentials/mod.rs - core::credentials (line 24) ... FAILED
[INFO] [stdout] test src/core/token/jwt.rs - core::token::jwt::JwtTokenService::new (line 49) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 19) ... FAILED
[INFO] [stdout] test src/core/password/argon2.rs - core::password::argon2 (line 8) ... FAILED
[INFO] [stdout] test src/core/user/persistence/in_memory.rs - core::user::persistence::in_memory::InMemoryUserRepo::new (line 27) ... FAILED
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Token::is_expired (line 142) ... FAILED
[INFO] [stdout] test src/core/token/mod.rs - core::token::jwt (line 134) ... FAILED
[INFO] [stdout] test src/core/oauth/store.rs - core::oauth::store::OAuth2Provider::display_name (line 81) ... FAILED
[INFO] [stdout] test src/core/token/mod.rs - core::token (line 17) ... FAILED
[INFO] [stdout] test src/core/token/mod.rs - core::token::TokenService (line 63) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/core/hash/mod.rs - core::hash::argon2 (line 24) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/hash/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use cryptic::core::hash::argon2::Argon2Hasher;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/core/hash/mod.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 | let salt = SaltString::generate(&mut rand::thread_rng());
[INFO] [stdout]    |                                            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut ThreadRng: CryptoRngCore` is not satisfied
[INFO] [stdout]    --> src/core/hash/mod.rs:30:38
[INFO] [stdout]     |
[INFO] [stdout]  30 | let salt = SaltString::generate(&mut rand::thread_rng());
[INFO] [stdout]     |            --------------------      ^^^^^^^^^^^^^^^^^^ the trait `argon2::password_hash::rand_core::CryptoRng` is not implemented for `ThreadRng`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `rand_core` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:209:1
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub trait CryptoRng {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs:204:1
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub trait CryptoRng: RngCore {}
[INFO] [stdout]     | ----------------------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] help: the following other types implement trait `argon2::password_hash::rand_core::CryptoRng`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:481:1
[INFO] [stdout]     |
[INFO] [stdout] 481 | impl<'a, R: CryptoRng + ?Sized> CryptoRng for &'a mut R {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'a mut R`
[INFO] [stdout] ...
[INFO] [stdout] 485 | impl<R: CryptoRng + ?Sized> CryptoRng for Box<R> {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Box<R>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/os.rs:50:1
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl CryptoRng for OsRng {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^ `argon2::password_hash::rand_core::OsRng`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs:431:1
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl<R: BlockRngCore + CryptoRng> CryptoRng for BlockRng<R> {}
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `argon2::password_hash::rand_core::block::BlockRng<R>`
[INFO] [stdout]     = note: required for `&mut ThreadRng` to implement `argon2::password_hash::rand_core::CryptoRng`
[INFO] [stdout]     = note: required for `&mut ThreadRng` to implement `CryptoRngCore`
[INFO] [stdout] note: required by a bound in `SaltString::generate`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/password-hash-0.5.0/src/salt.rs:206:35
[INFO] [stdout]     |
[INFO] [stdout] 206 |     pub fn generate(mut rng: impl CryptoRngCore) -> Self {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^ required by this bound in `SaltString::generate`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut ThreadRng: CryptoRngCore` is not satisfied
[INFO] [stdout]    --> src/core/hash/mod.rs:30:38
[INFO] [stdout]     |
[INFO] [stdout]  30 | let salt = SaltString::generate(&mut rand::thread_rng());
[INFO] [stdout]     |            --------------------      ^^^^^^^^^^^^^^^^^^ the trait `argon2::password_hash::rand_core::RngCore` is not implemented for `ThreadRng`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: there are multiple different versions of crate `rand_core` in the dependency graph
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:142:1
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub trait RngCore {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^ this is the expected trait
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub trait RngCore {
[INFO] [stdout]     | -----------------
[INFO] [stdout]     | |
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     | this is the found trait
[INFO] [stdout]     = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout]     = help: the following other types implement trait `argon2::password_hash::rand_core::RngCore`:
[INFO] [stdout]               &'a mut R
[INFO] [stdout]               Box<R>
[INFO] [stdout]               argon2::password_hash::rand_core::OsRng
[INFO] [stdout]               argon2::password_hash::rand_core::block::BlockRng64<R>
[INFO] [stdout]               argon2::password_hash::rand_core::block::BlockRng<R>
[INFO] [stdout]     = note: required for `&mut ThreadRng` to implement `argon2::password_hash::rand_core::RngCore`
[INFO] [stdout]     = note: required for `&mut ThreadRng` to implement `CryptoRngCore`
[INFO] [stdout] note: required by a bound in `SaltString::generate`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/password-hash-0.5.0/src/salt.rs:206:35
[INFO] [stdout]     |
[INFO] [stdout] 206 |     pub fn generate(mut rng: impl CryptoRngCore) -> Self {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^ required by this bound in `SaltString::generate`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::hash (line 64) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/hash/argon2.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | use cryptic::core::hash::argon2::Argon2Hasher;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/hash/salt.rs - core::hash::salt::generate_secure_salt (line 29) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/hash/salt.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use cryptic::core::hash::salt::generate_secure_salt;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/auth_service.rs - auth_service::AuthService (line 75) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/auth_service.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | use cryptic::auth_service::AuthService;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/mod.rs - core::oauth::store (line 153) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    --> src/core/oauth/mod.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | use cryptic::core::oauth::store::OAuth2Config;
[INFO] [stdout]     |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::link_to_user (line 622) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Manager`
[INFO] [stdout]    --> src/core/oauth/manager.rs:623:19
[INFO] [stdout]     |
[INFO] [stdout] 623 | let linked_info = OAuth2Manager::link_to_user(oauth_info, user_id);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ use of undeclared type `OAuth2Manager`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 622 + use narangcia_cryptic::core::oauth::manager::OAuth2Manager;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `oauth_info` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:623:47
[INFO] [stdout]     |
[INFO] [stdout] 623 | let linked_info = OAuth2Manager::link_to_user(oauth_info, user_id);
[INFO] [stdout]     |                                               ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `user_id` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:623:59
[INFO] [stdout]     |
[INFO] [stdout] 623 | let linked_info = OAuth2Manager::link_to_user(oauth_info, user_id);
[INFO] [stdout]     |                                                           ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::verify (line 95) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/hash/argon2.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | use cryptic::core::hash::argon2::Argon2Hasher;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Config::auth_url (line 244) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `OAuth2Config` in this scope
[INFO] [stdout]    --> src/core/oauth/store.rs:245:14
[INFO] [stdout]     |
[INFO] [stdout] 245 | let config = OAuth2Config { /* ... */ };
[INFO] [stdout]     |              ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 244 + use narangcia_cryptic::core::oauth::store::OAuth2Config;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/store.rs:246:27
[INFO] [stdout]     |
[INFO] [stdout] 246 | let url = config.auth_url(OAuth2Provider::Google);
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 244 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0422, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/credentials/plain_password.rs - core::credentials::plain_password (line 13) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/credentials/plain_password.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use cryptic::core::credentials::plain_password::PlainPassword;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager (line 637) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Manager`
[INFO] [stdout]    --> src/core/oauth/manager.rs:638:15
[INFO] [stdout]     |
[INFO] [stdout] 638 | let manager = OAuth2Manager::default();
[INFO] [stdout]     |               ^^^^^^^^^^^^^ use of undeclared type `OAuth2Manager`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 637 + use narangcia_cryptic::core::oauth::manager::OAuth2Manager;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::new (line 39) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/hash/argon2.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use cryptic::core::hash::argon2::Argon2Hasher;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Config::user_info_url (line 298) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `OAuth2Config` in this scope
[INFO] [stdout]    --> src/core/oauth/store.rs:299:14
[INFO] [stdout]     |
[INFO] [stdout] 299 | let config = OAuth2Config { /* ... */ };
[INFO] [stdout]     |              ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 298 + use narangcia_cryptic::core::oauth::store::OAuth2Config;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/store.rs:300:32
[INFO] [stdout]     |
[INFO] [stdout] 300 | let url = config.user_info_url(OAuth2Provider::Google);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 298 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0422, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_client (line 147) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `manager` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 | let client = manager.get_client(OAuth2Provider::GitHub)?;
[INFO] [stdout]     |              ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/manager.rs:148:33
[INFO] [stdout]     |
[INFO] [stdout] 148 | let client = manager.get_client(OAuth2Provider::GitHub)?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 147 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager (line 86) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/oauth/manager.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | use crate::core::oauth::{OAuth2Manager, OAuth2Provider, OAuth2Config};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/hash/mod.rs - core::hash::salt (line 26) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/hash/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use cryptic::core::hash::salt::generate_secure_salt;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_http_client (line 124) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `manager` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 | let client = manager.get_http_client(OAuth2Provider::Google)?;
[INFO] [stdout]     |              ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/manager.rs:125:38
[INFO] [stdout]     |
[INFO] [stdout] 125 | let client = manager.get_http_client(OAuth2Provider::Google)?;
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 124 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Provider::default_scopes (line 98) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]   --> src/core/oauth/store.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 | let scopes = OAuth2Provider::Google.default_scopes();
[INFO] [stdout]    |              ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout] 98 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/mod.rs - core::oauth::manager (line 159) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/core/oauth/mod.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | use crate::core::oauth::{OAuth2Manager, OAuth2Provider, OAuth2Config};
[INFO] [stdout]     |            ^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/password/mod.rs - core::password (line 18) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/password/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use cryptic::core::password::{Argon2PasswordManager, SecurePasswordManager};
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Token::expires_soon (line 163) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `OAuth2Token` in this scope
[INFO] [stdout]    --> src/core/oauth/store.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 | let token = OAuth2Token { /* ... */ };
[INFO] [stdout]     |             ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 163 + use narangcia_cryptic::core::oauth::store::OAuth2Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/policy/mod.rs - core::policy (line 9) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/policy/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use cryptic::core::policy::PasswordPolicy;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/user/mod.rs - core::user (line 11) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/user/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use cryptic::core::user::User;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/user/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use cryptic::core::credentials::Credentials;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/policy/mod.rs - core::policy::PasswordPolicy::validate_password (line 64) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]   --> src/core/policy/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | use cryptic::core::policy::PasswordPolicy;
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Config::token_url (line 271) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `OAuth2Config` in this scope
[INFO] [stdout]    --> src/core/oauth/store.rs:272:14
[INFO] [stdout]     |
[INFO] [stdout] 272 | let config = OAuth2Config { /* ... */ };
[INFO] [stdout]     |              ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 271 + use narangcia_cryptic::core::oauth::store::OAuth2Config;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/store.rs:273:28
[INFO] [stdout]     |
[INFO] [stdout] 273 | let url = config.token_url(OAuth2Provider::Google);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 271 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0422, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_redirect_frontend_uri (line 600) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `manager` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:601:11
[INFO] [stdout]     |
[INFO] [stdout] 601 | let uri = manager.get_redirect_frontend_uri(OAuth2Provider::Discord)?;
[INFO] [stdout]     |           ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/manager.rs:601:45
[INFO] [stdout]     |
[INFO] [stdout] 601 | let uri = manager.get_redirect_frontend_uri(OAuth2Provider::Discord)?;
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 600 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::parse_user_info (line 202) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `manager` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 | let user_info = manager.parse_user_info(OAuth2Provider::Google, json_response).await?;
[INFO] [stdout]     |                 ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]    --> src/core/oauth/manager.rs:203:41
[INFO] [stdout]     |
[INFO] [stdout] 203 | let user_info = manager.parse_user_info(OAuth2Provider::Google, json_response).await?;
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 202 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `json_response` in this scope
[INFO] [stdout]    --> src/core/oauth/manager.rs:203:65
[INFO] [stdout]     |
[INFO] [stdout] 203 | let user_info = manager.parse_user_info(OAuth2Provider::Google, json_response).await?;
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/core/oauth/manager.rs:203:80
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_core_oauth_manager_rs_202_0() {
[INFO] [stdout]     |                                      -------------------------------------------------- this is not `async`
[INFO] [stdout] 203 | let user_info = manager.parse_user_info(OAuth2Provider::Google, json_response).await?;
[INFO] [stdout]     |                                                                                ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/credentials/mod.rs - core::credentials (line 24) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/credentials/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::core::credentials::{Credentials, PlainPassword};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/credentials/mod.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::core::password::SecurePasswordManager;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/token/jwt.rs - core::token::jwt::JwtTokenService::new (line 49) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `JwtTokenService`
[INFO] [stdout]   --> src/core/token/jwt.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | let service = JwtTokenService::new("mysecret", 3600, 86400);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^ use of undeclared type `JwtTokenService`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 49 + use narangcia_cryptic::core::token::jwt::JwtTokenService;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 19) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `cryptic`
[INFO] [stdout]   --> src/lib.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use cryptic::{AuthService, CrypticUser};
[INFO] [stdout]    |     ^^^^^^^ use of unresolved module or unlinked crate `cryptic`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `cryptic`, use `cargo add cryptic` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/password/argon2.rs - core::password::argon2 (line 8) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]  --> src/core/password/argon2.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::core::password::argon2::Argon2PasswordManager;
[INFO] [stdout]   |            ^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            unresolved import
[INFO] [stdout]   |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/password/argon2.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::password::manager::SecurePasswordManager;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_test`
[INFO] [stdout]   --> src/core/password/argon2.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | tokio_test::block_on(async {
[INFO] [stdout]    | ^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_test`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio_test`, use `cargo add tokio_test` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/core/password/argon2.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | let hash = manager.hash_password(password).await.unwrap();
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/core/password/argon2.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | assert!(manager.verify_password(password, &hash).await.unwrap());
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/user/persistence/in_memory.rs - core::user::persistence::in_memory::InMemoryUserRepo::new (line 27) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `InMemoryUserRepo`
[INFO] [stdout]   --> src/core/user/persistence/in_memory.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | let repo = InMemoryUserRepo::new();
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^ use of undeclared type `InMemoryUserRepo`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 27 + use narangcia_cryptic::core::user::persistence::InMemoryUserRepo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Token::is_expired (line 142) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `OAuth2Token` in this scope
[INFO] [stdout]    --> src/core/oauth/store.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 143 | let token = OAuth2Token { /* ... */ };
[INFO] [stdout]     |             ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 142 + use narangcia_cryptic::core::oauth::store::OAuth2Token;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/token/mod.rs - core::token::jwt (line 134) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]    --> src/core/token/mod.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | use crate::core::token::jwt::JwtTokenService;
[INFO] [stdout]     |            ^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            unresolved import
[INFO] [stdout]     |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/oauth/store.rs - core::oauth::store::OAuth2Provider::display_name (line 81) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `OAuth2Provider`
[INFO] [stdout]   --> src/core/oauth/store.rs:82:16
[INFO] [stdout]    |
[INFO] [stdout] 82 | let provider = OAuth2Provider::Google;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^ use of undeclared type `OAuth2Provider`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout] 81 + use narangcia_cryptic::core::oauth::store::OAuth2Provider;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/token/mod.rs - core::token (line 17) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::core::token::{TokenService, TokenPair};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:22:84
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, crate::core::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 17 + use narangcia_cryptic::error;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `error`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 22 -     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout] 22 +     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:23:81
[INFO] [stdout]    |
[INFO] [stdout] 23 |     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::e...
[INFO] [stdout]    |                                                                                 ^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 23 |     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::narangcia_cryptic::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                 +++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 17 + use narangcia_cryptic::core::token::claims;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `claims`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 23 -     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout] 23 +     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:23:132
[INFO] [stdout]    |
[INFO] [stdout] 23 | ...::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                         ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 23 |     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::core::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                                                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 17 + use narangcia_cryptic::error;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `error`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 23 -     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout] 23 +     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:24:91
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 24 |     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, crate::core::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                           ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 17 + use narangcia_cryptic::error;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `error`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 24 -     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout] 24 +     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/core/token/mod.rs - core::token::TokenService (line 63) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | use crate::core::token::{TokenService, TokenPair};
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            unresolved import
[INFO] [stdout]    |            help: a similar path exists: `narangcia_cryptic::core`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:68:84
[INFO] [stdout]    |
[INFO] [stdout] 68 |     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                    ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 68 |     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, crate::core::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 63 + use narangcia_cryptic::error;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `error`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 68 -     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout] 68 +     async fn generate_token_pair(&self, user_id: &str) -> Result<TokenPair, error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:69:81
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::e...
[INFO] [stdout]    |                                                                                 ^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::narangcia_cryptic::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                 +++++++++++++++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 63 + use narangcia_cryptic::core::token::claims;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `claims`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 69 -     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout] 69 +     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:69:132
[INFO] [stdout]    |
[INFO] [stdout] 69 | ...::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                         ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::core::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                                                                    ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 63 + use narangcia_cryptic::error;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `error`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 69 -     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, crate::error::AuthError> { todo!() }
[INFO] [stdout] 69 +     async fn validate_access_token(&self, token: &str) -> Result<Box<dyn crate::core::token::claims::Claims + Send + Sync>, error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/core/token/mod.rs:70:91
[INFO] [stdout]    |
[INFO] [stdout] 70 |     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                           ^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 70 |     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, crate::core::error::AuthError> { todo!() }
[INFO] [stdout]    |                                                                                           ++++++
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 63 + use narangcia_cryptic::error;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `error`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 70 -     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, crate::error::AuthError> { todo!() }
[INFO] [stdout] 70 +     async fn refresh_access_token(&self, refresh_token: &str) -> Result<TokenPair, error::AuthError> { todo!() }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/auth_service.rs - auth_service::AuthService (line 75)
[INFO] [stdout]     src/core/credentials/mod.rs - core::credentials (line 24)
[INFO] [stdout]     src/core/credentials/plain_password.rs - core::credentials::plain_password (line 13)
[INFO] [stdout]     src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::hash (line 64)
[INFO] [stdout]     src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::new (line 39)
[INFO] [stdout]     src/core/hash/argon2.rs - core::hash::argon2::Argon2Hasher::verify (line 95)
[INFO] [stdout]     src/core/hash/mod.rs - core::hash::argon2 (line 24)
[INFO] [stdout]     src/core/hash/mod.rs - core::hash::salt (line 26)
[INFO] [stdout]     src/core/hash/salt.rs - core::hash::salt::generate_secure_salt (line 29)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager (line 637)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager (line 86)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_client (line 147)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_http_client (line 124)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::get_redirect_frontend_uri (line 600)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::link_to_user (line 622)
[INFO] [stdout]     src/core/oauth/manager.rs - core::oauth::manager::OAuth2Manager::parse_user_info (line 202)
[INFO] [stdout]     src/core/oauth/mod.rs - core::oauth::manager (line 159)
[INFO] [stdout]     src/core/oauth/mod.rs - core::oauth::store (line 153)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Config::auth_url (line 244)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Config::token_url (line 271)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Config::user_info_url (line 298)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Provider::default_scopes (line 98)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Provider::display_name (line 81)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Token::expires_soon (line 163)
[INFO] [stdout]     src/core/oauth/store.rs - core::oauth::store::OAuth2Token::is_expired (line 142)
[INFO] [stdout]     src/core/password/argon2.rs - core::password::argon2 (line 8)
[INFO] [stdout]     src/core/password/mod.rs - core::password (line 18)
[INFO] [stdout]     src/core/policy/mod.rs - core::policy (line 9)
[INFO] [stdout]     src/core/policy/mod.rs - core::policy::PasswordPolicy::validate_password (line 64)
[INFO] [stdout]     src/core/token/jwt.rs - core::token::jwt::JwtTokenService::new (line 49)
[INFO] [stdout]     src/core/token/mod.rs - core::token (line 17)
[INFO] [stdout]     src/core/token/mod.rs - core::token::TokenService (line 63)
[INFO] [stdout]     src/core/token/mod.rs - core::token::jwt (line 134)
[INFO] [stdout]     src/core/user/mod.rs - core::user (line 11)
[INFO] [stdout]     src/core/user/persistence/in_memory.rs - core::user::persistence::in_memory::InMemoryUserRepo::new (line 27)
[INFO] [stdout]     src/lib.rs - (line 19)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 36 failed; 6 ignored; 0 measured; 0 filtered out; finished in 1.39s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.49s; merged doctests compilation took 1.09s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "af5fd2f2cdb16f1022d005c04b454535aef1cce70383de6e3a1c89cf289efb94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "af5fd2f2cdb16f1022d005c04b454535aef1cce70383de6e3a1c89cf289efb94", kill_on_drop: false }`
[INFO] [stdout] af5fd2f2cdb16f1022d005c04b454535aef1cce70383de6e3a1c89cf289efb94
