[INFO] fetching crate smeltery-sparks 0.1.0...
[INFO] testing smeltery-sparks-0.1.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate smeltery-sparks 0.1.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate smeltery-sparks 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate smeltery-sparks 0.1.0
[INFO] tweaked toml for crates.io crate smeltery-sparks 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate smeltery-sparks 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate smeltery-sparks 0.1.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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297
[INFO] running `Command { std: "docker" "start" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.190
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling smallvec v1.16.2
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling thiserror v2.0.21
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling alloc-no-stdlib v3.0.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling zerocopy v0.8.59
[INFO] [stderr]    Compiling alloc-stdlib v0.3.0
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling brotli-decompressor v6.0.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling brotli v9.0.0
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling mio v1.2.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling uuid v1.27.0
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]    Compiling compression-core v0.4.33
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.4
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling tokio v1.53.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling sea-bae v0.2.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling compression-codecs v0.4.45
[INFO] [stderr]    Compiling phc v0.6.1
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling sea-query-derive v1.0.0
[INFO] [stderr]    Compiling time-macros v0.2.32
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling pluralizer v0.5.0
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling ordered-float v4.6.0
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling cookie v0.18.2
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling sea-orm-macros v2.0.4
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling sea-query v1.0.2
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling async-compression v0.4.50
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling blake2 v0.11.0
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling password-hash v0.6.1
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]    Compiling derive-where v1.7.0
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling spin v0.9.9
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling tower-http v0.7.1
[INFO] [stderr]    Compiling sea-orm v2.0.4
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling hyper-util v0.1.21
[INFO] [stderr]    Compiling moka v0.12.16
[INFO] [stderr]    Compiling argon2 v0.6.0
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling smeltery-mold v0.1.0
[INFO] [stderr]    Compiling smeltery-mold-macros v0.1.0
[INFO] [stderr]    Compiling smeltery-core v0.1.0
[INFO] [stderr]    Compiling smeltery-sparks v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/broadcast.rs:390:14
[INFO] [stdout]     |
[INFO] [stdout] 390 |         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 390 -         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout] 390 +         open.try_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 41.35s
[INFO] running `Command { std: "docker" "inspect" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling tokio v1.53.2
[INFO] [stderr]    Compiling cc v1.6.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling uuid v1.27.0
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling hashlink v0.11.1
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.14
[INFO] [stderr]    Compiling flume v0.12.0
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling ordered-float v4.6.0
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling sea-query v1.0.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling moka v0.12.16
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling async-compression v0.4.50
[INFO] [stderr]    Compiling tower-http v0.7.1
[INFO] [stderr]    Compiling smeltery-mold v0.1.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling smeltery-macros v0.1.0
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling hyper-util v0.1.21
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling sqlx-core v0.9.0
[INFO] [stderr]    Compiling sqlx-sqlite v0.9.0
[INFO] [stderr]    Compiling sqlx v0.9.0
[INFO] [stderr]    Compiling sea-query-sqlx v0.9.1
[INFO] [stderr]    Compiling sea-orm v2.0.4
[INFO] [stderr]    Compiling smeltery-core v0.1.0
[INFO] [stderr]    Compiling smeltery-sparks v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/broadcast.rs:390:14
[INFO] [stdout]     |
[INFO] [stdout] 390 |         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 390 -         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout] 390 +         open.try_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ExitCode` that must be used
[INFO] [stdout]    --> tests/cross_process.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     worked.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let _ = worked.unwrap();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> src/broadcast.rs:390:14
[INFO] [stdout]     |
[INFO] [stdout] 390 |         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 390 -         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout] 390 +         open.try_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 36s
[INFO] running `Command { std: "docker" "inspect" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]    --> src/broadcast.rs:390:14
[INFO] [stderr]     |
[INFO] [stderr] 390 |         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 390 -         open.fetch_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stderr] 390 +         open.try_update(Ordering::AcqRel, Ordering::Acquire, |n| {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `smeltery-sparks` (lib) generated 1 warning (run `cargo fix --lib -p smeltery-sparks` to apply 1 suggestion)
[INFO] [stderr] warning: `smeltery-sparks` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr] warning: unused `ExitCode` that must be used
[INFO] [stderr]    --> tests/cross_process.rs:147:5
[INFO] [stderr]     |
[INFO] [stderr] 147 |     worked.unwrap();
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 147 |     let _ = worked.unwrap();
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `smeltery-sparks` (test "cross_process") generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/smeltery-sparks/fcab4207f6bec389/out/smeltery_sparks-fcab4207f6bec389)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test broadcast::tests::only_a_parsed_matching_event_tells_the_page_to_stop ... ok
[INFO] [stdout] test broadcast::tests::relayed_pushes_cannot_name_listener_events ... ok
[INFO] [stdout] test listen::tests::sequence_numbers_only_grow ... ok
[INFO] [stdout] test listen::tests::templates_resolve_from_the_state ... ok
[INFO] [stdout] test listen::tests::channels_fit_their_templates ... ok
[INFO] [stdout] test runtime::tests::candidates_cover_input_text ... ok
[INFO] [stdout] test runtime::tests::invalid_carries_messages ... ok
[INFO] [stdout] test snapshot::tests::canonical_sorts_keys_at_every_level ... ok
[INFO] [stdout] test testing::tests::finds_the_instance_and_unescapes ... ok
[INFO] [stdout] test runtime::tests::drive_runs_ready_futures_without_a_runtime ... ok
[INFO] [stdout] test tests::the_client_runtime_speaks_this_protocol ... ok
[INFO] [stdout] test upload::tests::extensions_and_segments ... ok
[INFO] [stdout] test broadcast::tests::a_stream_request_authorizes_a_bounded_number_of_channels ... ok
[INFO] [stdout] test upload::tests::remove_old_keeps_new_files ... ok
[INFO] [stdout] test upload::tests::temp_files_are_new_and_removed_unless_kept ... ok
[INFO] [stdout] test upload::tests::upload_files_and_folders_are_not_world_readable ... ok
[INFO] [stdout] test broadcast::tests::the_open_budget_counts_per_client_and_never_grows_without_bound ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cross_process.rs (/opt/rustwide/target/release/build/smeltery-sparks/0d59c5a912a2aa7a/out/cross_process-0d59c5a912a2aa7a)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test an_agent_in_work_refreshes_a_page_held_by_a_web_only_serve ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/listeners.rs (/opt/rustwide/target/release/build/smeltery-sparks/58c82863955ddd24/out/listeners-58c82863955ddd24)
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test a_changed_state_skips_a_message_for_its_old_channel ... ok
[INFO] [stdout] test a_listen_message_skipped_by_a_failed_call_can_still_run ... ok
[INFO] [stdout] test a_signed_out_stream_says_so_before_it_ends ... ok
[INFO] [stdout] test a_private_channel_is_refused_to_a_user_who_may_not_receive_it ... ok
[INFO] [stdout] test a_guest_token_next_to_a_signed_in_one_is_left_out ... ok
[INFO] [stdout] test a_full_or_throttled_stream_does_no_channel_work ... ok
[INFO] [stdout] test listeners_need_a_cache_store_that_keeps_values ... ok
[INFO] [stdout] test listeners_without_a_broadcasting_crate_fail_the_boot ... ok
[INFO] [stdout] test a_broadcast_reaches_the_listener_once_as_a_signed_message ... ok
[INFO] [stdout] test listeners_need_stream_and_the_fields_they_name ... ok
[INFO] [stdout] test access_lost_after_render_stops_the_listener ... ok
[INFO] [stdout] test revocations_end_the_streams_of_the_sessions_they_name ... ok
[INFO] [stdout] test the_render_authorizes_once_per_channel ... ok
[INFO] [stdout] test listen_messages_are_bound_to_their_instance_and_expire ... ok
[INFO] [stdout] test logout_ends_the_stream_and_its_tokens ... ok
[INFO] [stdout] test stream_tokens_belong_to_their_session_and_user ... ok
[INFO] [stdout] test the_stream_open_budget_counts_an_ipv6_network_once ... ok
[INFO] [stdout] test the_listener_runs_only_if_the_state_names_the_channel_when_it_runs ... ok
[INFO] [stdout] test undeclared_pairs_and_components_without_listeners_are_refused ... ok
[INFO] [stdout] test a_stream_ends_when_its_tokens_expire ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/sparks.rs (/opt/rustwide/target/release/build/smeltery-sparks/dd0cefa45672c910/out/sparks-dd0cefa45672c910)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test both_render_modes_produce_the_same_bytes ... ok
[INFO] [stdout] test duplicate_names_fail_the_build ... ok
[INFO] [stdout] test auth_guard_needs_a_signed_in_user ... ok
[INFO] [stdout] test nested_components_keep_their_children ... ok
[INFO] [stdout] test multi_component_requests_are_checked_first_and_answer_what_ran ... ok
[INFO] [stdout] test first_render_then_updates_round_trip ... ok
[INFO] [stdout] test redirect_and_flash_effects ... ok
[INFO] [stdout] test oversized_update_requests_are_refused ... ok
[INFO] [stdout] test only_actions_and_model_fields_are_reachable ... ok
[INFO] [stdout] test redirects_go_only_to_safe_targets ... ok
[INFO] [stdout] test storing_rejects_paths_outside_storage ... ok
[INFO] [stdout] test active_content_uploads_are_stored_as_bin ... ok
[INFO] [stdout] test stream_components_are_marked ... ok
[INFO] [stdout] test struct_model_fields_refuse_arrays_too ... ok
[INFO] [stdout] test tampered_snapshots_and_versions_answer_419 ... ok
[INFO] [stdout] test struct_model_fields_take_only_listed_keys ... ok
[INFO] [stdout] test the_app_is_freed_after_sparks_ran ... ok
[INFO] [stdout] test the_client_runtime_is_served_with_long_caching ... ok
[INFO] [stdout] test the_address_quota_counts_an_ipv6_client_by_its_64 ... ok
[INFO] [stdout] test the_can_stream_hook_decides_who_gets_a_stream_token ... ok
[INFO] [stdout] test unknown_components_are_template_errors ... ok
[INFO] [stdout] test the_rendering_hook_runs_before_every_render_and_extend_adds_components_at_boot ... ok
[INFO] [stdout] test updates_need_the_csrf_token ... ok
[INFO] [stdout] test uploads_are_validated_and_stored ... ok
[INFO] [stdout] test upload_rules_become_validation_messages ... ok
[INFO] [stdout] test validation_errors_render_inside_the_component ... ok
[INFO] [stdout] test uploads_have_a_per_address_quota ... ok
[INFO] [stdout] test validation_rules_apply_to_upload_fields ... ok
[INFO] [stdout] test upload_tokens_are_signed_bound_and_expire ... ok
[INFO] [stdout] test uploads_have_a_per_session_quota ... ok
[INFO] [stdout] test a_cancelled_upload_leaves_no_file_and_its_bytes_count ... ok
[INFO] [stdout] test snapshots_are_bound_to_their_session_and_user_and_expire ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/stream.rs (/opt/rustwide/target/release/build/smeltery-sparks/956517edb99ffb66/out/stream-956517edb99ffb66)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test emit_refuses_the_names_of_listener_events ... ok
[INFO] [stdout] test open_streams_are_capped ... ok
[INFO] [stdout] test broadcasts_reach_subscribed_streams_only ... ok
[INFO] [stdout] test streams_need_valid_tokens ... ok
[INFO] [stdout] test a_slow_stream_is_disconnected ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests smeltery_sparks
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/testing.rs - testing (line 3) - compile ... FAILED
[INFO] [stdout] test src/runtime.rs - runtime::Sparks (line 27) ... FAILED
[INFO] [stdout] test src/../README.md - (line 9) ... FAILED
[INFO] [stdout] test src/ctx.rs - ctx::SparkCtx (line 15) ... FAILED
[INFO] [stdout] test src/broadcast.rs - broadcast::Broadcast (line 34) ... ok
[INFO] [stdout] test src/testing.rs - testing::BroadcastSpy (line 293) ... ok
[INFO] [stdout] test src/upload.rs - upload::TemporaryUpload (line 34) ... FAILED
[INFO] [stdout] test src/lib.rs - stream_token (line 104) ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/testing.rs - testing (line 3) stdout ----
[INFO] [stdout] error[E0365]: extern crate `smeltery_sparks` is private and cannot be re-exported
[INFO] [stdout]  --> src/testing.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod smeltery { pub use smeltery_sparks as sparks; }
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]   = note: for more information, see issue #127909 <https://github.com/rust-lang/rust/issues/127909>
[INFO] [stdout]   = note: `#[deny(pub_use_of_private_extern_crate)]` (part of `#[deny(future_incompatible)]`) on by default
[INFO] [stdout] help: consider making the `extern crate` item publicly accessible
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub extern crate r#smeltery_sparks;
[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 E0365`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/runtime.rs - runtime::Sparks (line 27) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `smeltery` in this scope
[INFO] [stdout]   --> src/runtime.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use smeltery::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find module or crate `smeltery` in this scope
[INFO] [stdout]   --> src/runtime.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     use smeltery::prelude::*;
[INFO] [stdout]    |         ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `actions` in this scope
[INFO] [stdout]   --> src/runtime.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 |     #[actions]
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Spark` in this scope
[INFO] [stdout]   --> src/runtime.rs:32:47
[INFO] [stdout]    |
[INFO] [stdout] 32 |     #[derive(Serialize, Deserialize, Default, Spark)]
[INFO] [stdout]    |                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/runtime.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 |     #[spark(name = "counter")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/runtime.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 |         #[spark(model)]
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `Sparks` in this scope
[INFO] [stdout]   --> src/runtime.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn register(s: &mut Sparks) {
[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: E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/../README.md - (line 9) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `smeltery` in this scope
[INFO] [stdout]   --> src/../README.md:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use smeltery::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `smeltery`
[INFO] [stdout]   --> src/../README.md:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use smeltery::json;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `actions` in this scope
[INFO] [stdout]   --> src/../README.md:22:3
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[actions]
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Spark` in this scope
[INFO] [stdout]   --> src/../README.md:14:43
[INFO] [stdout]    |
[INFO] [stdout] 14 | #[derive(Serialize, Deserialize, Default, Spark)]
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: the derive macro `Spark` accepts the similarly named `spark` attribute (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 14 - #[derive(Serialize, Deserialize, Default, Spark)]
[INFO] [stdout] 14 + #[derive(Serialize, Deserialize, Default, spark)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/../README.md:15:3
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[spark(name = "counter")]          // resources/views/sparks/counter.mold.html
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `spark` is an attribute that can be used by the derive macro `Spark`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout] 16 + #[derive(Spark)]
[INFO] [stdout] 17 | pub struct Counter {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/../README.md:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 |     #[spark(model)]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `spark` is an attribute that can be used by the derive macro `Spark`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SparkCtx` in this scope
[INFO] [stdout]   --> src/../README.md:24:49
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub async fn increment(&mut self, ctx: &mut SparkCtx) -> Result<()> {
[INFO] [stdout]    |                                                 ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/../README.md:24:62
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub async fn increment(&mut self, ctx: &mut SparkCtx) -> Result<()> {
[INFO] [stdout]    |                                                              ^^^^^^ -- supplied 1 generic argument
[INFO] [stdout]    |                                                              |
[INFO] [stdout]    |                                                              expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub async fn increment(&mut self, ctx: &mut SparkCtx) -> Result<(), E> {
[INFO] [stdout]    |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 8 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0425, E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/ctx.rs - ctx::SparkCtx (line 15) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `smeltery` in this scope
[INFO] [stdout]   --> src/ctx.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use smeltery::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `smeltery`
[INFO] [stdout]   --> src/ctx.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use smeltery::json;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `actions` in this scope
[INFO] [stdout]   --> src/ctx.rs:26:3
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[actions]
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Spark` in this scope
[INFO] [stdout]   --> src/ctx.rs:19:43
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Serialize, Deserialize, Default, Spark, Validate)]
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: the derive macro `Spark` accepts the similarly named `spark` attribute (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 19 - #[derive(Serialize, Deserialize, Default, Spark, Validate)]
[INFO] [stdout] 19 + #[derive(Serialize, Deserialize, Default, spark, Validate)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Validate` in this scope
[INFO] [stdout]   --> src/ctx.rs:19:50
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Serialize, Deserialize, Default, Spark, Validate)]
[INFO] [stdout]    |                                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: the derive macro `Validate` accepts the similarly named `validate` attribute (notice the capitalization)
[INFO] [stdout]    |
[INFO] [stdout] 19 - #[derive(Serialize, Deserialize, Default, Spark, Validate)]
[INFO] [stdout] 19 + #[derive(Serialize, Deserialize, Default, Spark, validate)]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/ctx.rs:20:3
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[spark(name = "counter")]
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `spark` is an attribute that can be used by the derive macro `Spark`, you might be missing a `derive` attribute
[INFO] [stdout]    |
[INFO] [stdout] 21 + #[derive(Spark)]
[INFO] [stdout] 22 | pub struct Counter {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/ctx.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 |     #[spark(model)]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `spark` is an attribute that can be used by the derive macro `Spark`, you might be missing a `derive` attribute
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SparkCtx` in this scope
[INFO] [stdout]   --> src/ctx.rs:28:44
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub async fn save(&mut self, ctx: &mut SparkCtx) -> Result<()> {
[INFO] [stdout]    |                                            ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/ctx.rs:28:57
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub async fn save(&mut self, ctx: &mut SparkCtx) -> Result<()> {
[INFO] [stdout]    |                                                         ^^^^^^ -- supplied 1 generic argument
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub async fn save(&mut self, ctx: &mut SparkCtx) -> Result<(), E> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0425, E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/upload.rs - upload::TemporaryUpload (line 34) stdout ----
[INFO] [stdout] error[E0433]: cannot find module or crate `smeltery` in this scope
[INFO] [stdout]   --> src/upload.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use smeltery::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `smeltery`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `smeltery`, use `cargo add smeltery` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `actions` in this scope
[INFO] [stdout]   --> src/upload.rs:45:3
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[actions]
[INFO] [stdout]    |   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Spark` in this scope
[INFO] [stdout]   --> src/upload.rs:37:43
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Default, Spark, Validate)]
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Validate` in this scope
[INFO] [stdout]   --> src/upload.rs:37:50
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Serialize, Deserialize, Default, Spark, Validate)]
[INFO] [stdout]    |                                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `spark` in this scope
[INFO] [stdout]   --> src/upload.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 |     #[spark(upload(max = 2048, mimes = "png,jpg,jpeg"))]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `validate` in this scope
[INFO] [stdout]   --> src/upload.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 |     #[validate(required)]
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TemporaryUpload` in this scope
[INFO] [stdout]   --> src/upload.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub photo: Option<TemporaryUpload>,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Avatar<TemporaryUpload> {
[INFO] [stdout]    |                  +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TemporaryUpload` in this scope
[INFO] [stdout]   --> src/upload.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub photo: Option<TemporaryUpload>,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `SparkCtx` in this scope
[INFO] [stdout]   --> src/upload.rs:47:44
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub async fn save(&mut self, ctx: &mut SparkCtx) -> Result<()> {
[INFO] [stdout]    |                                            ^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/upload.rs:47:57
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub async fn save(&mut self, ctx: &mut SparkCtx) -> Result<()> {
[INFO] [stdout]    |                                                         ^^^^^^ -- supplied 1 generic argument
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub async fn save(&mut self, ctx: &mut SparkCtx) -> Result<(), E> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 10 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/../README.md - (line 9)
[INFO] [stdout]     src/ctx.rs - ctx::SparkCtx (line 15)
[INFO] [stdout]     src/runtime.rs - runtime::Sparks (line 27)
[INFO] [stdout]     src/testing.rs - testing (line 3)
[INFO] [stdout]     src/upload.rs - upload::TemporaryUpload (line 34)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 3 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.92s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.20s; merged doctests compilation took 0.28s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297", kill_on_drop: false }`
[INFO] [stdout] d9f91124c49d77a42dce2b829bdfa393a78bb8194a103ad6cb82579cbec8a297
