[INFO] fetching crate axum_csrf 0.9.0...
[INFO] testing axum_csrf-0.9.0 against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] extracting crate axum_csrf 0.9.0 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate axum_csrf 0.9.0 on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate axum_csrf 0.9.0
[INFO] finished tweaking crates.io crate axum_csrf 0.9.0
[INFO] tweaked toml for crates.io crate axum_csrf 0.9.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 121 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding axum v0.6.20 (latest: v0.7.5)
[INFO] [stderr]       Adding axum-core v0.3.4 (latest: v0.4.3)
[INFO] [stderr]       Adding bitflags v1.3.2 (latest: v2.5.0)
[INFO] [stderr]       Adding generic-array v0.14.7 (latest: v1.0.0)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding http v0.2.12 (latest: v1.1.0)
[INFO] [stderr]       Adding http-body v0.4.6 (latest: v1.0.0)
[INFO] [stderr]       Adding hyper v0.14.28 (latest: v1.3.1)
[INFO] [stderr]       Adding matchit v0.7.3 (latest: v0.8.2)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding sync_wrapper v0.1.2 (latest: v1.0.1)
[INFO] [stderr]       Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.1+wasi-0.2.0)
[INFO] [stderr]       Adding windows-sys v0.48.0 (latest: v0.52.0)
[INFO] [stderr]       Adding windows-targets v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_aarch64_gnullvm v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_aarch64_msvc v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_i686_gnu v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_i686_msvc v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_x86_64_gnu v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_x86_64_gnullvm v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_x86_64_msvc v0.48.5 (latest: v0.52.5)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded axum-core v0.4.3
[INFO] [stderr]   Downloaded aes-gcm v0.10.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 14c74a1bd225ff15d2aa491ecbd736b2b8374291dbfceafd34eac04789b2af40
[INFO] running `Command { std: "docker" "start" "-a" "14c74a1bd225ff15d2aa491ecbd736b2b8374291dbfceafd34eac04789b2af40", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "14c74a1bd225ff15d2aa491ecbd736b2b8374291dbfceafd34eac04789b2af40", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "14c74a1bd225ff15d2aa491ecbd736b2b8374291dbfceafd34eac04789b2af40", kill_on_drop: false }`
[INFO] [stdout] 14c74a1bd225ff15d2aa491ecbd736b2b8374291dbfceafd34eac04789b2af40
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e2feabe51a5f7d2c77a2157c5126c1efbcf5c743fd3f084c1b7c0c6f7fe770e4
[INFO] running `Command { std: "docker" "start" "-a" "e2feabe51a5f7d2c77a2157c5126c1efbcf5c743fd3f084c1b7c0c6f7fe770e4", kill_on_drop: false }`
[INFO] [stderr]    Compiling subtle v2.5.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling axum-core v0.4.3
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling async-trait v0.1.80
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling time v0.3.36
[INFO] [stderr]    Compiling axum_csrf v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.81s
[INFO] running `Command { std: "docker" "inspect" "e2feabe51a5f7d2c77a2157c5126c1efbcf5c743fd3f084c1b7c0c6f7fe770e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2feabe51a5f7d2c77a2157c5126c1efbcf5c743fd3f084c1b7c0c6f7fe770e4", kill_on_drop: false }`
[INFO] [stdout] e2feabe51a5f7d2c77a2157c5126c1efbcf5c743fd3f084c1b7c0c6f7fe770e4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bdcf7fb413d1b0d77ae533fdda6124802c03bca4aa084d850cb119e3a97dbe35
[INFO] running `Command { std: "docker" "start" "-a" "bdcf7fb413d1b0d77ae533fdda6124802c03bca4aa084d850cb119e3a97dbe35", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.202
[INFO] [stderr]    Compiling tokio v1.37.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling axum_csrf v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling hyper v0.14.28
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.16
[INFO] [stderr]    Compiling serde_json v1.0.117
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.84s
[INFO] running `Command { std: "docker" "inspect" "bdcf7fb413d1b0d77ae533fdda6124802c03bca4aa084d850cb119e3a97dbe35", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bdcf7fb413d1b0d77ae533fdda6124802c03bca4aa084d850cb119e3a97dbe35", kill_on_drop: false }`
[INFO] [stdout] bdcf7fb413d1b0d77ae533fdda6124802c03bca4aa084d850cb119e3a97dbe35
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dcbb23244fa395554bddf5fb50b2c0612a5dcfee96e2cd071296d48b68611522
[INFO] running `Command { std: "docker" "start" "-a" "dcbb23244fa395554bddf5fb50b2c0612a5dcfee96e2cd071296d48b68611522", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/axum_csrf-92a46a1838b0f742)
[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]    Doc-tests axum_csrf
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_key (line 196) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 199) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 167) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 184) ... FAILED
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_lifetime (line 79) ... FAILED
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_domain (line 64) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 109) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 33) ... FAILED
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_salt (line 213) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_same_site (line 130) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_path (line 113) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_len (line 176) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_prefix_with_host (line 231) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_name (line 95) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_secure (line 161) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_http_only (line 146) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/config.rs - config::CsrfConfig::with_key (line 196) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/config.rs:200:45
[INFO] [stdout]     |
[INFO] [stdout] 7   | let config = CsrfConfig::default().with_key(Key::generate());
[INFO] [stdout]     |                                    -------- ^^^^^^^^^^^^^^^ expected `Option<Key>`, found `Key`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Option<axum_csrf::Key>`
[INFO] [stdout]              found struct `axum_csrf::Key`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /opt/rustwide/workdir/src/config.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn with_key(mut self, key: Option<Key>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] help: try wrapping the expression in `Some`
[INFO] [stdout]     |
[INFO] [stdout] 7   | let config = CsrfConfig::default().with_key(Some(Key::generate()));
[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 E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 199) stdout ----
[INFO] [stdout] error[E0412]: cannot find type `CsrfToken` in this scope
[INFO] [stdout]  --> src/lib.rs:200:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                           ^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_csrf::CsrfToken;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Session` in this scope
[INFO] [stdout]  --> src/lib.rs:200:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                               ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: there is an enum variant `cookie::Expiration::Session`; try using the variant's enum
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: cookie::Expiration, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                               ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `SessionPgPool` in this scope
[INFO] [stdout]  --> src/lib.rs:200:55
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                       ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key<SessionPgPool>(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                   +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Form` in this scope
[INFO] [stdout]  --> src/lib.rs:200:71
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                       ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this tuple struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::Form;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Form` in this scope
[INFO] [stdout]  --> src/lib.rs:200:86
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                                      ^^^^
[INFO] [stdout]  --> /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/convert/mod.rs:580:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: similarly named trait `From` defined here
[INFO] [stdout]   |
[INFO] [stdout] help: a trait with a similar name exists
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): From<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                                      ~~~~
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::Form;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Keys` in this scope
[INFO] [stdout]  --> src/lib.rs:200:91
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                                           ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use http::header::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::btree_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::hash_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0412, E0531.
[INFO] [stdout] For more information about an error, try `rustc --explain E0412`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 167) stdout ----
[INFO] [stdout] error: expected `;`, found `}`
[INFO] [stdout]  --> src/lib.rs:171:43
[INFO] [stdout]   |
[INFO] [stdout] 6 | let app = Router::new().with_state(config)
[INFO] [stdout]   |                                           ^ help: add `;` here
[INFO] [stdout] 7 | } _doctest_main_src_lib_rs_167_0() }
[INFO] [stdout]   | - unexpected token
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CsrfConfig`
[INFO] [stdout]  --> src/lib.rs:169:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | let config = CsrfConfig::default().with_key(Some(cookie_key));
[INFO] [stdout]   |              ^^^^^^^^^^ use of undeclared type `CsrfConfig`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_csrf::CsrfConfig;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Router`
[INFO] [stdout]  --> src/lib.rs:171:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | let app = Router::new().with_state(config)
[INFO] [stdout]   |           ^^^^^^ use of undeclared type `Router`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::Router;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 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/lib.rs - (line 184) stdout ----
[INFO] [stdout] error: expected `;`, found `}`
[INFO] [stdout]   --> src/lib.rs:194:34
[INFO] [stdout]    |
[INFO] [stdout] 12 |     (token, keys).into_response()
[INFO] [stdout]    |                                  ^ help: add `;` here
[INFO] [stdout] 13 | }
[INFO] [stdout]    | - unexpected token
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CsrfToken` in this scope
[INFO] [stdout]  --> src/lib.rs:185:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_csrf::CsrfToken;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Session` in this scope
[INFO] [stdout]  --> src/lib.rs:185:43
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                                           ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: there is an enum variant `cookie::Expiration::Session`; try using the variant's enum
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: cookie::Expiration) -> impl IntoResponse {
[INFO] [stdout]   |                                           ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `SessionPgPool` in this scope
[INFO] [stdout]  --> src/lib.rs:185:51
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet<SessionPgPool>(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |               +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `IntoResponse` in this scope
[INFO] [stdout]  --> src/lib.rs:185:75
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::response::IntoResponse;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_core::response::IntoResponse;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Keys` in this scope
[INFO] [stdout]  --> src/lib.rs:189:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let keys = Keys {
[INFO] [stdout]   |                ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use http::header::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::btree_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::hash_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `keys` in this scope
[INFO] [stdout]   --> src/lib.rs:194:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     (token, keys).into_response()
[INFO] [stdout]    |             ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0412, E0422, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/config.rs - config::CsrfConfig::with_lifetime (line 79) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `chrono`
[INFO] [stdout]  --> src/config.rs:82:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::Duration;
[INFO] [stdout]   |     ^^^^^^ use of undeclared crate or module `chrono`
[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/config.rs - config::CsrfConfig::with_cookie_domain (line 64) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Option<Cow<'static, str>>: From<Option<String>>` is not satisfied
[INFO] [stdout]   --> src/config.rs:68:55
[INFO] [stdout]    |
[INFO] [stdout] 7  | let config = CsrfConfig::default().with_cookie_domain(Some("www.helpme.com".to_string()));
[INFO] [stdout]    |                                    ------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<Option<String>>` is not implemented for `Option<Cow<'static, str>>`, which is required by `Option<String>: Into<Option<Cow<'static, str>>>`
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              <Option<&'a T> as From<&'a Option<T>>>
[INFO] [stdout]              <Option<&'a mut T> as From<&'a mut Option<T>>>
[INFO] [stdout]              <Option<T> as From<T>>
[INFO] [stdout]              <Option<T> as From<subtle::CtOption<T>>>
[INFO] [stdout]              <Option<deranged::RangedI128<MIN, MAX>> as From<deranged::OptionRangedI128<MIN, MAX>>>
[INFO] [stdout]              <Option<deranged::RangedI16<MIN, MAX>> as From<deranged::OptionRangedI16<MIN, MAX>>>
[INFO] [stdout]              <Option<deranged::RangedI32<MIN, MAX>> as From<deranged::OptionRangedI32<MIN, MAX>>>
[INFO] [stdout]              <Option<deranged::RangedI64<MIN, MAX>> as From<deranged::OptionRangedI64<MIN, MAX>>>
[INFO] [stdout]            and 8 others
[INFO] [stdout]    = note: required for `Option<String>` to implement `Into<Option<Cow<'static, str>>>`
[INFO] [stdout] note: required by a bound in `CsrfConfig::with_cookie_domain`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/config.rs:71:52
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn with_cookie_domain(mut self, name: impl Into<Option<Cow<'static, str>>>) -> Self {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `CsrfConfig::with_cookie_domain`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 109) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `axum_csrf::CsrfLayer`
[INFO] [stdout]   --> src/lib.rs:113:29
[INFO] [stdout]    |
[INFO] [stdout] 6  | use axum_csrf::{CsrfConfig, CsrfLayer, CsrfToken };
[INFO] [stdout]    |                             ^^^^^^^^^ no `CsrfLayer` in the root
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use layer::CsrfLayer;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    = note: the item is gated behind the `layer` feature
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `askama`
[INFO] [stdout]  --> src/lib.rs:111:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use askama::Template;
[INFO] [stdout]   |     ^^^^^^ use of undeclared crate or module `askama`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/lib.rs:114:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of undeclared crate or module `serde`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]   --> src/lib.rs:124:3
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[tokio::main]
[INFO] [stdout]    |   ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing`
[INFO] [stdout]   --> src/lib.rs:139:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     tracing::debug!("listening on {}", addr);
[INFO] [stdout]    |     ^^^^^^^ use of undeclared crate or module `tracing`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `template` in this scope
[INFO] [stdout]   --> src/lib.rs:118:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[template(path = "template.html")]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout]   --> src/lib.rs:127:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     tracing_subscriber::fmt::init();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `into_response` exists for tuple `(CsrfToken, Keys)`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:154:19
[INFO] [stdout]     |
[INFO] [stdout] 12  | struct Keys {
[INFO] [stdout]     | ----------- doesn't satisfy `Keys: IntoResponse`
[INFO] [stdout] ...
[INFO] [stdout] 47  |     (token, keys).into_response()
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ method cannot be called on `(CsrfToken, Keys)` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/token.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub struct CsrfToken {
[INFO] [stdout]     | -------------------- doesn't satisfy `CsrfToken: IntoResponseParts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `CsrfToken: IntoResponseParts`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout]             `Keys: IntoResponse`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout] note: the trait `IntoResponse` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-core-0.3.4/src/response/into_response.rs:126:1
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub trait IntoResponse {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                     --- ^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `axum::routing::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
[INFO] [stdout]     |
[INFO] [stdout] 403 | top_level_handler_fn!(get, GET);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound in this function
[INFO] [stdout]     | required by this bound in `get`
[INFO] [stdout]     = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                               ---- ^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:619:5
[INFO] [stdout]     |
[INFO] [stdout] 619 |     chained_handler_fn!(post, POST);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^----^^^^^^^
[INFO] [stdout]     |     |                   |
[INFO] [stdout]     |     |                   required by a bound in this associated function
[INFO] [stdout]     |     required by this bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]     = note: this error originates in the macro `chained_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]   --> src/lib.rs:125:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | async fn main() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599, E0752.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 33) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `askama`
[INFO] [stdout]  --> src/lib.rs:35:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use askama::Template;
[INFO] [stdout]   |     ^^^^^^ use of undeclared crate or module `askama`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/lib.rs:38:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of undeclared crate or module `serde`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]   --> src/lib.rs:48:3
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[tokio::main]
[INFO] [stdout]    |   ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing`
[INFO] [stdout]   --> src/lib.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     tracing::debug!("listening on {}", addr);
[INFO] [stdout]    |     ^^^^^^^ use of undeclared crate or module `tracing`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `template` in this scope
[INFO] [stdout]   --> src/lib.rs:42:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[template(path = "template.html")]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout]   --> src/lib.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     tracing_subscriber::fmt::init();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `into_response` exists for tuple `(CsrfToken, Keys)`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:78:19
[INFO] [stdout]     |
[INFO] [stdout] 12  | struct Keys {
[INFO] [stdout]     | ----------- doesn't satisfy `Keys: IntoResponse`
[INFO] [stdout] ...
[INFO] [stdout] 47  |     (token, keys).into_response()
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ method cannot be called on `(CsrfToken, Keys)` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/token.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub struct CsrfToken {
[INFO] [stdout]     | -------------------- doesn't satisfy `CsrfToken: IntoResponseParts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `CsrfToken: IntoResponseParts`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout]             `Keys: IntoResponse`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout] note: the trait `IntoResponse` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-core-0.3.4/src/response/into_response.rs:126:1
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub trait IntoResponse {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:57:25
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                     --- ^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `axum::routing::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
[INFO] [stdout]     |
[INFO] [stdout] 403 | top_level_handler_fn!(get, GET);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound in this function
[INFO] [stdout]     | required by this bound in `get`
[INFO] [stdout]     = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:57:36
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                               ---- ^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:619:5
[INFO] [stdout]     |
[INFO] [stdout] 619 |     chained_handler_fn!(post, POST);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^----^^^^^^^
[INFO] [stdout]     |     |                   |
[INFO] [stdout]     |     |                   required by a bound in this associated function
[INFO] [stdout]     |     required by this bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]     = note: this error originates in the macro `chained_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]   --> src/lib.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | async fn main() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599, E0752.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/config.rs - config::CsrfConfig::with_cookie_domain (line 64)
[INFO] [stdout]     src/config.rs - config::CsrfConfig::with_key (line 196)
[INFO] [stdout]     src/config.rs - config::CsrfConfig::with_lifetime (line 79)
[INFO] [stdout]     src/lib.rs - (line 109)
[INFO] [stdout]     src/lib.rs - (line 167)
[INFO] [stdout]     src/lib.rs - (line 184)
[INFO] [stdout]     src/lib.rs - (line 199)
[INFO] [stdout]     src/lib.rs - (line 33)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 8 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.14s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "dcbb23244fa395554bddf5fb50b2c0612a5dcfee96e2cd071296d48b68611522", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dcbb23244fa395554bddf5fb50b2c0612a5dcfee96e2cd071296d48b68611522", kill_on_drop: false }`
[INFO] [stdout] dcbb23244fa395554bddf5fb50b2c0612a5dcfee96e2cd071296d48b68611522
[INFO] testing axum_csrf-0.9.0 against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] extracting crate axum_csrf 0.9.0 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate axum_csrf 0.9.0 on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate axum_csrf 0.9.0
[INFO] finished tweaking crates.io crate axum_csrf 0.9.0
[INFO] tweaked toml for crates.io crate axum_csrf 0.9.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 121 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding axum v0.6.20 (latest: v0.7.5)
[INFO] [stderr]       Adding axum-core v0.3.4 (latest: v0.4.3)
[INFO] [stderr]       Adding bitflags v1.3.2 (latest: v2.5.0)
[INFO] [stderr]       Adding generic-array v0.14.7 (latest: v1.0.0)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding http v0.2.12 (latest: v1.1.0)
[INFO] [stderr]       Adding http-body v0.4.6 (latest: v1.0.0)
[INFO] [stderr]       Adding hyper v0.14.28 (latest: v1.3.1)
[INFO] [stderr]       Adding matchit v0.7.3 (latest: v0.8.2)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding sync_wrapper v0.1.2 (latest: v1.0.1)
[INFO] [stderr]       Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.1+wasi-0.2.0)
[INFO] [stderr]       Adding windows-sys v0.48.0 (latest: v0.52.0)
[INFO] [stderr]       Adding windows-targets v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_aarch64_gnullvm v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_aarch64_msvc v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_i686_gnu v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_i686_msvc v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_x86_64_gnu v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_x86_64_gnullvm v0.48.5 (latest: v0.52.5)
[INFO] [stderr]       Adding windows_x86_64_msvc v0.48.5 (latest: v0.52.5)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc5a43205db704ab8cf3b3913e36bd2a0134337b383331301ae56b73d9261e8a
[INFO] running `Command { std: "docker" "start" "-a" "dc5a43205db704ab8cf3b3913e36bd2a0134337b383331301ae56b73d9261e8a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc5a43205db704ab8cf3b3913e36bd2a0134337b383331301ae56b73d9261e8a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc5a43205db704ab8cf3b3913e36bd2a0134337b383331301ae56b73d9261e8a", kill_on_drop: false }`
[INFO] [stdout] dc5a43205db704ab8cf3b3913e36bd2a0134337b383331301ae56b73d9261e8a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff653e8f843a14da9f31e4a565743f20a15156bea99b32ace2201c9f6e698998
[INFO] running `Command { std: "docker" "start" "-a" "ff653e8f843a14da9f31e4a565743f20a15156bea99b32ace2201c9f6e698998", kill_on_drop: false }`
[INFO] [stderr]    Compiling subtle v2.5.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling axum-core v0.4.3
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling async-trait v0.1.80
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling time v0.3.36
[INFO] [stderr]    Compiling axum_csrf v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.26s
[INFO] running `Command { std: "docker" "inspect" "ff653e8f843a14da9f31e4a565743f20a15156bea99b32ace2201c9f6e698998", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff653e8f843a14da9f31e4a565743f20a15156bea99b32ace2201c9f6e698998", kill_on_drop: false }`
[INFO] [stdout] ff653e8f843a14da9f31e4a565743f20a15156bea99b32ace2201c9f6e698998
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e6d583f4d39563dbd21aec4f494989b096a79a7e629cf57adbfee2993aaa48b6
[INFO] running `Command { std: "docker" "start" "-a" "e6d583f4d39563dbd21aec4f494989b096a79a7e629cf57adbfee2993aaa48b6", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.202
[INFO] [stderr]    Compiling tokio v1.37.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling axum_csrf v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling hyper v0.14.28
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling serde_path_to_error v0.1.16
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_json v1.0.117
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.27s
[INFO] running `Command { std: "docker" "inspect" "e6d583f4d39563dbd21aec4f494989b096a79a7e629cf57adbfee2993aaa48b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6d583f4d39563dbd21aec4f494989b096a79a7e629cf57adbfee2993aaa48b6", kill_on_drop: false }`
[INFO] [stdout] e6d583f4d39563dbd21aec4f494989b096a79a7e629cf57adbfee2993aaa48b6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fac742a1971ce3d824f8702e5afe31d99f374d0e3fd2fba7f642625734005d2a
[INFO] running `Command { std: "docker" "start" "-a" "fac742a1971ce3d824f8702e5afe31d99f374d0e3fd2fba7f642625734005d2a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/axum_csrf-92a46a1838b0f742)
[INFO] [stderr]    Doc-tests axum_csrf
[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 16 tests
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_domain (line 64) ... FAILED
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_lifetime (line 79) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 167) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 184) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 199) ... FAILED
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_key (line 196) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 33) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 109) ... FAILED
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_salt (line 213) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_secure (line 161) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_len (line 176) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_prefix_with_host (line 231) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_http_only (line 146) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_name (line 95) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_same_site (line 130) ... ok
[INFO] [stdout] test src/config.rs - config::CsrfConfig::with_cookie_path (line 113) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/config.rs - config::CsrfConfig::with_cookie_domain (line 64) stdout ----
[INFO] [stdout] error[E0277]: the trait bound `Option<Cow<'static, str>>: From<Option<String>>` is not satisfied
[INFO] [stdout]   --> src/config.rs:68:55
[INFO] [stdout]    |
[INFO] [stdout] 7  | let config = CsrfConfig::default().with_cookie_domain(Some("www.helpme.com".to_string()));
[INFO] [stdout]    |                                    ------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<Option<String>>` is not implemented for `Option<Cow<'static, str>>`, which is required by `Option<String>: Into<Option<Cow<'static, str>>>`
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              <Option<&'a T> as From<&'a Option<T>>>
[INFO] [stdout]              <Option<&'a mut T> as From<&'a mut Option<T>>>
[INFO] [stdout]              <Option<T> as From<T>>
[INFO] [stdout]              <Option<T> as From<subtle::CtOption<T>>>
[INFO] [stdout]              <Option<deranged::RangedI128<MIN, MAX>> as From<deranged::OptionRangedI128<MIN, MAX>>>
[INFO] [stdout]              <Option<deranged::RangedI16<MIN, MAX>> as From<deranged::OptionRangedI16<MIN, MAX>>>
[INFO] [stdout]              <Option<deranged::RangedI32<MIN, MAX>> as From<deranged::OptionRangedI32<MIN, MAX>>>
[INFO] [stdout]              <Option<deranged::RangedI64<MIN, MAX>> as From<deranged::OptionRangedI64<MIN, MAX>>>
[INFO] [stdout]            and 8 others
[INFO] [stdout]    = note: required for `Option<String>` to implement `Into<Option<Cow<'static, str>>>`
[INFO] [stdout] note: required by a bound in `CsrfConfig::with_cookie_domain`
[INFO] [stdout]   --> /opt/rustwide/workdir/src/config.rs:71:52
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn with_cookie_domain(mut self, name: impl Into<Option<Cow<'static, str>>>) -> Self {
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `CsrfConfig::with_cookie_domain`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/config.rs - config::CsrfConfig::with_lifetime (line 79) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `chrono`
[INFO] [stdout]  --> src/config.rs:82:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::Duration;
[INFO] [stdout]   |     ^^^^^^ use of undeclared crate or module `chrono`
[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/lib.rs - (line 167) stdout ----
[INFO] [stdout] error: expected `;`, found `}`
[INFO] [stdout]  --> src/lib.rs:171:43
[INFO] [stdout]   |
[INFO] [stdout] 6 | let app = Router::new().with_state(config)
[INFO] [stdout]   |                                           ^ help: add `;` here
[INFO] [stdout] 7 | } _doctest_main_src_lib_rs_167_0() }
[INFO] [stdout]   | - unexpected token
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CsrfConfig`
[INFO] [stdout]  --> src/lib.rs:169:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | let config = CsrfConfig::default().with_key(Some(cookie_key));
[INFO] [stdout]   |              ^^^^^^^^^^ use of undeclared type `CsrfConfig`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_csrf::CsrfConfig;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Router`
[INFO] [stdout]  --> src/lib.rs:171:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | let app = Router::new().with_state(config)
[INFO] [stdout]   |           ^^^^^^ use of undeclared type `Router`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::Router;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 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/lib.rs - (line 184) stdout ----
[INFO] [stdout] error: expected `;`, found `}`
[INFO] [stdout]   --> src/lib.rs:194:34
[INFO] [stdout]    |
[INFO] [stdout] 12 |     (token, keys).into_response()
[INFO] [stdout]    |                                  ^ help: add `;` here
[INFO] [stdout] 13 | }
[INFO] [stdout]    | - unexpected token
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `CsrfToken` in this scope
[INFO] [stdout]  --> src/lib.rs:185:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                       ^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_csrf::CsrfToken;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Session` in this scope
[INFO] [stdout]  --> src/lib.rs:185:43
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                                           ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: there is an enum variant `cookie::Expiration::Session`; try using the variant's enum
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: cookie::Expiration) -> impl IntoResponse {
[INFO] [stdout]   |                                           ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `SessionPgPool` in this scope
[INFO] [stdout]  --> src/lib.rs:185:51
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet<SessionPgPool>(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |               +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `IntoResponse` in this scope
[INFO] [stdout]  --> src/lib.rs:185:75
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn greet(token: CsrfToken, session: Session<SessionPgPool>) -> impl IntoResponse {
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::response::IntoResponse;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_core::response::IntoResponse;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Keys` in this scope
[INFO] [stdout]  --> src/lib.rs:189:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let keys = Keys {
[INFO] [stdout]   |                ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use http::header::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::btree_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::hash_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `keys` in this scope
[INFO] [stdout]   --> src/lib.rs:194:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     (token, keys).into_response()
[INFO] [stdout]    |             ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0412, E0422, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 199) stdout ----
[INFO] [stdout] error[E0412]: cannot find type `CsrfToken` in this scope
[INFO] [stdout]  --> src/lib.rs:200:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                           ^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum_csrf::CsrfToken;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Session` in this scope
[INFO] [stdout]  --> src/lib.rs:200:47
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                               ^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: there is an enum variant `cookie::Expiration::Session`; try using the variant's enum
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: cookie::Expiration, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                               ~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `SessionPgPool` in this scope
[INFO] [stdout]  --> src/lib.rs:200:55
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                       ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key<SessionPgPool>(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                   +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0531]: cannot find tuple struct or tuple variant `Form` in this scope
[INFO] [stdout]  --> src/lib.rs:200:71
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                       ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this tuple struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::Form;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Form` in this scope
[INFO] [stdout]  --> src/lib.rs:200:86
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                                      ^^^^
[INFO] [stdout]  --> /rustc/b642703cf9526da1e72c0b6755753b939a9c6b6d/library/core/src/convert/mod.rs:580:1
[INFO] [stdout]   |
[INFO] [stdout]   = note: similarly named trait `From` defined here
[INFO] [stdout]   |
[INFO] [stdout] help: a trait with a similar name exists
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): From<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                                      ~~~~
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]   |
[INFO] [stdout] 2 + use axum::Form;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Keys` in this scope
[INFO] [stdout]  --> src/lib.rs:200:91
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn check_key(token: CsrfToken, session: Session<SessionPgPool>, Form(payload): Form<Keys>,) -> &'static str {
[INFO] [stdout]   |                                                                                           ^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]   |
[INFO] [stdout] 2 + use http::header::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::btree_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 2 + use std::collections::hash_map::Keys;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0412, E0531.
[INFO] [stdout] For more information about an error, try `rustc --explain E0412`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/config.rs - config::CsrfConfig::with_key (line 196) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/config.rs:200:45
[INFO] [stdout]     |
[INFO] [stdout] 7   | let config = CsrfConfig::default().with_key(Key::generate());
[INFO] [stdout]     |                                    -------- ^^^^^^^^^^^^^^^ expected `Option<Key>`, found `Key`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Option<axum_csrf::Key>`
[INFO] [stdout]              found struct `axum_csrf::Key`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /opt/rustwide/workdir/src/config.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 |     pub fn with_key(mut self, key: Option<Key>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] help: try wrapping the expression in `Some`
[INFO] [stdout]     |
[INFO] [stdout] 7   | let config = CsrfConfig::default().with_key(Some(Key::generate()));
[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 E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 33) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `askama`
[INFO] [stdout]  --> src/lib.rs:35:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use askama::Template;
[INFO] [stdout]   |     ^^^^^^ use of undeclared crate or module `askama`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/lib.rs:38:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of undeclared crate or module `serde`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]   --> src/lib.rs:48:3
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[tokio::main]
[INFO] [stdout]    |   ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing`
[INFO] [stdout]   --> src/lib.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     tracing::debug!("listening on {}", addr);
[INFO] [stdout]    |     ^^^^^^^ use of undeclared crate or module `tracing`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `template` in this scope
[INFO] [stdout]   --> src/lib.rs:42:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[template(path = "template.html")]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout]   --> src/lib.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     tracing_subscriber::fmt::init();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `into_response` exists for tuple `(CsrfToken, Keys)`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:78:19
[INFO] [stdout]     |
[INFO] [stdout] 12  | struct Keys {
[INFO] [stdout]     | ----------- doesn't satisfy `Keys: IntoResponse`
[INFO] [stdout] ...
[INFO] [stdout] 47  |     (token, keys).into_response()
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ method cannot be called on `(CsrfToken, Keys)` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/token.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub struct CsrfToken {
[INFO] [stdout]     | -------------------- doesn't satisfy `CsrfToken: IntoResponseParts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `CsrfToken: IntoResponseParts`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout]             `Keys: IntoResponse`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout] note: the trait `IntoResponse` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-core-0.3.4/src/response/into_response.rs:126:1
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub trait IntoResponse {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:57:25
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                     --- ^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `axum::routing::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
[INFO] [stdout]     |
[INFO] [stdout] 403 | top_level_handler_fn!(get, GET);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound in this function
[INFO] [stdout]     | required by this bound in `get`
[INFO] [stdout]     = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:57:36
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                               ---- ^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:619:5
[INFO] [stdout]     |
[INFO] [stdout] 619 |     chained_handler_fn!(post, POST);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^----^^^^^^^
[INFO] [stdout]     |     |                   |
[INFO] [stdout]     |     |                   required by a bound in this associated function
[INFO] [stdout]     |     required by this bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]     = note: this error originates in the macro `chained_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]   --> src/lib.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | async fn main() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599, E0752.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 109) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `axum_csrf::CsrfLayer`
[INFO] [stdout]   --> src/lib.rs:113:29
[INFO] [stdout]    |
[INFO] [stdout] 6  | use axum_csrf::{CsrfConfig, CsrfLayer, CsrfToken };
[INFO] [stdout]    |                             ^^^^^^^^^ no `CsrfLayer` in the root
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use layer::CsrfLayer;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    = note: the item is gated behind the `layer` feature
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `askama`
[INFO] [stdout]  --> src/lib.rs:111:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use askama::Template;
[INFO] [stdout]   |     ^^^^^^ use of undeclared crate or module `askama`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]  --> src/lib.rs:114:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |     ^^^^^ use of undeclared crate or module `serde`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tokio`
[INFO] [stdout]   --> src/lib.rs:124:3
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[tokio::main]
[INFO] [stdout]    |   ^^^^^ use of undeclared crate or module `tokio`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing`
[INFO] [stdout]   --> src/lib.rs:139:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     tracing::debug!("listening on {}", addr);
[INFO] [stdout]    |     ^^^^^^^ use of undeclared crate or module `tracing`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `template` in this scope
[INFO] [stdout]   --> src/lib.rs:118:3
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[template(path = "template.html")]
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout]   --> src/lib.rs:127:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     tracing_subscriber::fmt::init();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ use of undeclared crate or module `tracing_subscriber`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `into_response` exists for tuple `(CsrfToken, Keys)`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:154:19
[INFO] [stdout]     |
[INFO] [stdout] 12  | struct Keys {
[INFO] [stdout]     | ----------- doesn't satisfy `Keys: IntoResponse`
[INFO] [stdout] ...
[INFO] [stdout] 47  |     (token, keys).into_response()
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ method cannot be called on `(CsrfToken, Keys)` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/token.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout] 21  | pub struct CsrfToken {
[INFO] [stdout]     | -------------------- doesn't satisfy `CsrfToken: IntoResponseParts`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `CsrfToken: IntoResponseParts`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout]             `Keys: IntoResponse`
[INFO] [stdout]             which is required by `(CsrfToken, Keys): IntoResponse`
[INFO] [stdout] note: the trait `IntoResponse` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-core-0.3.4/src/response/into_response.rs:126:1
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub trait IntoResponse {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                     --- ^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken) -> impl Future<Output = impl IntoResponse> {root}`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `axum::routing::get`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
[INFO] [stdout]     |
[INFO] [stdout] 403 | top_level_handler_fn!(get, GET);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     required by a bound in this function
[INFO] [stdout]     | required by this bound in `get`
[INFO] [stdout]     = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}: Handler<_, _, _>` is not satisfied
[INFO] [stdout]    --> src/lib.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 26  |         .route("/", get(root).post(check_key))
[INFO] [stdout]     |                               ---- ^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(CsrfToken, Form<Keys>) -> impl Future<Output = &'static str> {check_key}`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: Consider using `#[axum::debug_handler]` to improve the error message
[INFO] [stdout]     = help: the following other types implement trait `Handler<T, S, B>`:
[INFO] [stdout]               <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
[INFO] [stdout]               <MethodRouter<S, B> as Handler<(), S, B>>
[INFO] [stdout] note: required by a bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:619:5
[INFO] [stdout]     |
[INFO] [stdout] 619 |     chained_handler_fn!(post, POST);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^----^^^^^^^
[INFO] [stdout]     |     |                   |
[INFO] [stdout]     |     |                   required by a bound in this associated function
[INFO] [stdout]     |     required by this bound in `MethodRouter::<S, B>::post`
[INFO] [stdout]     = note: this error originates in the macro `chained_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]   --> src/lib.rs:125:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | async fn main() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433, E0599, E0752.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/config.rs - config::CsrfConfig::with_cookie_domain (line 64)
[INFO] [stdout]     src/config.rs - config::CsrfConfig::with_key (line 196)
[INFO] [stdout]     src/config.rs - config::CsrfConfig::with_lifetime (line 79)
[INFO] [stdout]     src/lib.rs - (line 109)
[INFO] [stdout]     src/lib.rs - (line 167)
[INFO] [stdout]     src/lib.rs - (line 184)
[INFO] [stdout]     src/lib.rs - (line 199)
[INFO] [stdout]     src/lib.rs - (line 33)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 8 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.36s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "fac742a1971ce3d824f8702e5afe31d99f374d0e3fd2fba7f642625734005d2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fac742a1971ce3d824f8702e5afe31d99f374d0e3fd2fba7f642625734005d2a", kill_on_drop: false }`
[INFO] [stdout] fac742a1971ce3d824f8702e5afe31d99f374d0e3fd2fba7f642625734005d2a
