[INFO] fetching crate ritualist 0.1.0...
[INFO] testing ritualist-0.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate ritualist 0.1.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate ritualist 0.1.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate ritualist 0.1.0
[INFO] tweaked toml for crates.io crate ritualist 0.1.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate ritualist 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 ritualist 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-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a
[INFO] running `Command { std: "docker" "start" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", 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" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a" "/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" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", 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" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling ritualist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     async fn register(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 293 ~     fn register(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 294 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stdout] ...
[INFO] [stdout] 301 |         Ok(())
[INFO] [stdout] 302 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     async fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 306 ~     fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 307 |         for spec in &specs {
[INFO] [stdout] ...
[INFO] [stdout] 316 |         Ok(())
[INFO] [stdout] 317 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     async fn reset(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 323 ~     fn reset(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 324 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stdout] 325 |         self.get_scheduler().reset(spec).await;
[INFO] [stdout] 326 |         Ok(())
[INFO] [stdout] 327 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     async fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 333 ~     fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 334 |         for spec in &specs {
[INFO] [stdout] ...
[INFO] [stdout] 338 |         Ok(())
[INFO] [stdout] 339 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 346 |     async fn set_enabled(&self, id: T, enabled: bool) {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 346 ~     fn set_enabled(&self, id: T, enabled: bool) -> impl std::future::Future<Output = ()> + Send {async {
[INFO] [stdout] 347 |         self.get_scheduler().set_enabled(id, enabled).await;
[INFO] [stdout] 348 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 |     async fn snapshot(&self) -> Vec<Activity<T>> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 352 ~     fn snapshot(&self) -> impl std::future::Future<Output = Vec<Activity<T>>> + Send {async {
[INFO] [stdout] 353 |         self.get_scheduler().snapshot().await
[INFO] [stdout] 354 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `tracing`
[INFO] [stderr]   --> Cargo.toml:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 | [dependencies.tracing]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing`
[INFO] [stderr] warning: `ritualist` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.77s
[INFO] running `Command { std: "docker" "inspect" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", 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" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     async fn register(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 293 ~     fn register(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 294 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stdout] ...
[INFO] [stdout] 301 |         Ok(())
[INFO] [stdout] 302 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     async fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 306 ~     fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 307 |         for spec in &specs {
[INFO] [stdout] ...
[INFO] [stdout] 316 |         Ok(())
[INFO] [stdout] 317 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     async fn reset(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 323 ~     fn reset(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 324 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stdout] 325 |         self.get_scheduler().reset(spec).await;
[INFO] [stdout] 326 |         Ok(())
[INFO] [stdout] 327 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ritualist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     async fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 333 ~     fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 334 |         for spec in &specs {
[INFO] [stdout] ...
[INFO] [stdout] 338 |         Ok(())
[INFO] [stdout] 339 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 346 |     async fn set_enabled(&self, id: T, enabled: bool) {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 346 ~     fn set_enabled(&self, id: T, enabled: bool) -> impl std::future::Future<Output = ()> + Send {async {
[INFO] [stdout] 347 |         self.get_scheduler().set_enabled(id, enabled).await;
[INFO] [stdout] 348 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 |     async fn snapshot(&self) -> Vec<Activity<T>> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 352 ~     fn snapshot(&self) -> impl std::future::Future<Output = Vec<Activity<T>>> + Send {async {
[INFO] [stdout] 353 |         self.get_scheduler().snapshot().await
[INFO] [stdout] 354 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clock::SystemClock`
[INFO] [stdout]  --> examples/ping_pong.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     clock::SystemClock,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::Arc`
[INFO] [stdout]  --> examples/ping_pong.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::{sync::Arc, thread::Result, time::Duration};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> examples/ping_pong.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::{self, Mutex};
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Frame` is never constructed
[INFO] [stdout]   --> examples/common/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Frame {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `render` are never used
[INFO] [stdout]   --> examples/common/mod.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Frame {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 15 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn render(&mut self, content: &str) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `observer` is never used
[INFO] [stdout]   --> examples/common/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn observer<T: ActivityId>(ritulist: Arc<Mutex<RunningRitualist<T>>>) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]    --> src/schedule.rs:722:13
[INFO] [stdout]     |
[INFO] [stdout] 722 |         let token = CancellationToken::new();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     async fn register(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 293 ~     fn register(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 294 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stdout] ...
[INFO] [stdout] 301 |         Ok(())
[INFO] [stdout] 302 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     async fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 306 ~     fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 307 |         for spec in &specs {
[INFO] [stdout] ...
[INFO] [stdout] 316 |         Ok(())
[INFO] [stdout] 317 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     async fn reset(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 323 ~     fn reset(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 324 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stdout] 325 |         self.get_scheduler().reset(spec).await;
[INFO] [stdout] 326 |         Ok(())
[INFO] [stdout] 327 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     async fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 333 ~     fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stdout] 334 |         for spec in &specs {
[INFO] [stdout] ...
[INFO] [stdout] 338 |         Ok(())
[INFO] [stdout] 339 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:346:5
[INFO] [stdout]     |
[INFO] [stdout] 346 |     async fn set_enabled(&self, id: T, enabled: bool) {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 346 ~     fn set_enabled(&self, id: T, enabled: bool) -> impl std::future::Future<Output = ()> + Send {async {
[INFO] [stdout] 347 |         self.get_scheduler().set_enabled(id, enabled).await;
[INFO] [stdout] 348 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]    --> src/schedule.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 |     async fn snapshot(&self) -> Vec<Activity<T>> {
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stdout]     |
[INFO] [stdout] 352 ~     fn snapshot(&self) -> impl std::future::Future<Output = Vec<Activity<T>>> + Send {async {
[INFO] [stdout] 353 |         self.get_scheduler().snapshot().await
[INFO] [stdout] 354 ~     } }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/schedule.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |             self.schedule.shutdown().await;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[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] 431 |             let _ = self.schedule.shutdown().await;
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/schedule.rs:745:9
[INFO] [stdout]     |
[INFO] [stdout] 745 |         schedule.shutdown();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> src/schedule.rs:776:9
[INFO] [stdout]     |
[INFO] [stdout] 776 |         schedule.shutdown();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `tracing`
[INFO] [stderr]   --> Cargo.toml:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 | [dependencies.tracing]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing`
[INFO] [stderr] warning: `ritualist` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.54s
[INFO] running `Command { std: "docker" "inspect" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", 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" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/schedule.rs:293:5
[INFO] [stderr]     |
[INFO] [stderr] 293 |     async fn register(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr]     = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 293 ~     fn register(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stderr] 294 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stderr] ...
[INFO] [stderr] 301 |         Ok(())
[INFO] [stderr] 302 ~     } }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/schedule.rs:306:5
[INFO] [stderr]     |
[INFO] [stderr] 306 |     async fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 306 ~     fn register_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stderr] 307 |         for spec in &specs {
[INFO] [stderr] ...
[INFO] [stderr] 316 |         Ok(())
[INFO] [stderr] 317 ~     } }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/schedule.rs:323:5
[INFO] [stderr]     |
[INFO] [stderr] 323 |     async fn reset(&self, spec: ActivitySpec<T>) -> Result<(), RitualistError> {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 323 ~     fn reset(&self, spec: ActivitySpec<T>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stderr] 324 |         spec.validate().map_err(RitualistError::ActivitySpecError)?;
[INFO] [stderr] 325 |         self.get_scheduler().reset(spec).await;
[INFO] [stderr] 326 |         Ok(())
[INFO] [stderr] 327 ~     } }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/schedule.rs:333:5
[INFO] [stderr]     |
[INFO] [stderr] 333 |     async fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> Result<(), RitualistError> {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 333 ~     fn reset_many(&self, specs: Vec<ActivitySpec<T>>) -> impl std::future::Future<Output = Result<(), RitualistError>> + Send {async {
[INFO] [stderr] 334 |         for spec in &specs {
[INFO] [stderr] ...
[INFO] [stderr] 338 |         Ok(())
[INFO] [stderr] 339 ~     } }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/schedule.rs:346:5
[INFO] [stderr]     |
[INFO] [stderr] 346 |     async fn set_enabled(&self, id: T, enabled: bool) {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 346 ~     fn set_enabled(&self, id: T, enabled: bool) -> impl std::future::Future<Output = ()> + Send {async {
[INFO] [stderr] 347 |         self.get_scheduler().set_enabled(id, enabled).await;
[INFO] [stderr] 348 ~     } }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]    --> src/schedule.rs:352:5
[INFO] [stderr]     |
[INFO] [stderr] 352 |     async fn snapshot(&self) -> Vec<Activity<T>> {
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future`
[INFO] [stderr] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change
[INFO] [stderr]     |
[INFO] [stderr] 352 ~     fn snapshot(&self) -> impl std::future::Future<Output = Vec<Activity<T>>> + Send {async {
[INFO] [stderr] 353 |         self.get_scheduler().snapshot().await
[INFO] [stderr] 354 ~     } }
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `ritualist` (lib) generated 6 warnings
[INFO] [stderr] warning: unused import: `clock::SystemClock`
[INFO] [stderr]  --> examples/ping_pong.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 |     clock::SystemClock,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sync::Arc`
[INFO] [stderr]  --> examples/ping_pong.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::{sync::Arc, thread::Result, time::Duration};
[INFO] [stderr]   |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Mutex`
[INFO] [stderr]  --> examples/ping_pong.rs:9:25
[INFO] [stderr]   |
[INFO] [stderr] 9 | use tokio::sync::{self, Mutex};
[INFO] [stderr]   |                         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Frame` is never constructed
[INFO] [stderr]   --> examples/common/mod.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | struct Frame {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `render` are never used
[INFO] [stderr]   --> examples/common/mod.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Frame {
[INFO] [stderr]    | ---------- associated items in this implementation
[INFO] [stderr] 15 |     fn new() -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     fn render(&mut self, content: &str) {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `observer` is never used
[INFO] [stderr]   --> examples/common/mod.rs:36:8
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn observer<T: ActivityId>(ritulist: Arc<Mutex<RunningRitualist<T>>>) {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ritualist` (example "ping_pong") generated 6 warnings (run `cargo fix --example "ping_pong" -p ritualist` to apply 3 suggestions)
[INFO] [stderr] warning: unused variable: `token`
[INFO] [stderr]    --> src/schedule.rs:722:13
[INFO] [stderr]     |
[INFO] [stderr] 722 |         let token = CancellationToken::new();
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/schedule.rs:431:13
[INFO] [stderr]     |
[INFO] [stderr] 431 |             self.schedule.shutdown().await;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[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] 431 |             let _ = self.schedule.shutdown().await;
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused implementer of `Future` that must be used
[INFO] [stderr]    --> src/schedule.rs:745:9
[INFO] [stderr]     |
[INFO] [stderr] 745 |         schedule.shutdown();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stderr] 
[INFO] [stderr] warning: unused implementer of `Future` that must be used
[INFO] [stderr]    --> src/schedule.rs:776:9
[INFO] [stderr]     |
[INFO] [stderr] 776 |         schedule.shutdown();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stderr] 
[INFO] [stderr] warning: `ritualist` (lib test) generated 10 warnings (6 duplicates) (run `cargo fix --lib -p ritualist --tests` to apply 1 suggestion)
[INFO] [stderr] warning: unused dependency `tracing`
[INFO] [stderr]   --> Cargo.toml:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 | [dependencies.tracing]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing`
[INFO] [stderr] warning: `ritualist` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/ritualist/8dcc7a958b709c39/out/ritualist-8dcc7a958b709c39)
[INFO] [stdout] 
[INFO] [stdout] running 60 tests
[INFO] [stdout] test activity::tests::finish_snooze_on_scheduled_does_not_complete ... ok
[INFO] [stdout] test activity::tests::finish_snooze_sets_snoozed_state_and_target ... ok
[INFO] [stdout] test activity::tests::claim_if_due_marks_running_and_returns_id_when_due ... ok
[INFO] [stdout] test activity::tests::duration_activity_due_when_delta_meets_target ... ok
[INFO] [stdout] test activity::tests::is_at_target_false_for_duration_below_target ... ok
[INFO] [stdout] test activity::tests::duration_activity_not_due_before_target ... ok
[INFO] [stdout] test activity::tests::enable_when_not_disabled_is_noop ... ok
[INFO] [stdout] test activity::tests::finish_done_on_fixed_interval_resets_to_idle_and_records_run ... ok
[INFO] [stdout] test activity::tests::enable_restores_previous_state ... ok
[INFO] [stdout] test activity::tests::is_at_target_false_for_date_before_target ... ok
[INFO] [stdout] test activity::tests::is_at_target_true_for_duration_at_target ... ok
[INFO] [stdout] test activity::tests::is_at_target_true_for_date_at_target ... ok
[INFO] [stdout] test activity::tests::is_at_target_true_for_date_after_target ... ok
[INFO] [stdout] test activity::tests::date_activity_not_due_before_target_date ... ok
[INFO] [stdout] test activity::tests::finish_done_on_scheduled_marks_completed ... ok
[INFO] [stdout] test activity::tests::disable_wraps_current_state ... ok
[INFO] [stdout] test activity::tests::not_due_when_running_even_if_target_reached ... ok
[INFO] [stdout] test activity::tests::claim_if_due_returns_none_and_leaves_state_when_not_due ... ok
[INFO] [stdout] test activity::tests::new_random_interval_picks_target_within_range ... ok
[INFO] [stdout] test activity::tests::progress_tracks_elapsed_fraction_for_date_schedule ... ok
[INFO] [stdout] test activity::tests::disable_is_idempotent ... ok
[INFO] [stdout] test activity::tests::tick_marks_disabled_scheduled_at_target_as_gc ... ok
[INFO] [stdout] test activity::tests::new_scheduled_starts_idle_with_date_target ... ok
[INFO] [stdout] test activity::tests::date_activity_due_at_target_date ... ok
[INFO] [stdout] test activity::tests::try_gc_mark_leaves_disabled_interval_at_target ... ok
[INFO] [stdout] test activity::tests::tick_accumulates_elapsed_time_while_idle ... ok
[INFO] [stdout] test activity::tests::tick_does_not_progress_while_running ... ok
[INFO] [stdout] test activity::tests::tick_progresses_while_snoozed ... ok
[INFO] [stdout] test activity::tests::try_gc_mark_leaves_disabled_scheduled_before_target ... ok
[INFO] [stdout] test activity::tests::try_gc_mark_leaves_enabled_scheduled_at_target ... ok
[INFO] [stdout] test activity::tests::try_gc_mark_marks_disabled_scheduled_at_target_as_gc ... ok
[INFO] [stdout] test activity::tests::is_at_target_true_for_duration_over_target ... ok
[INFO] [stdout] test activity::tests::progress_is_half_at_midpoint_of_duration ... ok
[INFO] [stdout] test activity::tests::new_fixed_interval_starts_idle_with_duration_target ... ok
[INFO] [stdout] test activity::tests::progress_is_zero_at_start ... ok
[INFO] [stdout] test schedule::tests::activity_claimed_once_interval_elapses ... ok
[INFO] [stdout] test activity::tests::not_due_when_completed ... ok
[INFO] [stdout] test activity::tests::progress_is_clamped_to_100_when_over_target ... ok
[INFO] [stdout] test activity::tests::tick_does_not_progress_while_disabled ... ok
[INFO] [stdout] test activity::tests::snoozed_activity_becomes_due_after_snooze_elapses ... ok
[INFO] [stdout] test activity::tests::tick_accumulates_across_multiple_advances ... ok
[INFO] [stdout] test schedule::tests::activity_not_claimed_before_interval_elapses ... ok
[INFO] [stdout] test schedule::tests::claim_due_returns_only_the_activities_that_are_due ... ok
[INFO] [stdout] test schedule::tests::claimed_activity_is_not_reclaimed_until_finished ... ok
[INFO] [stdout] test schedule::tests::disabled_activity_does_not_accumulate_and_is_not_due ... ok
[INFO] [stdout] test schedule::tests::finish_snooze_on_scheduled_activity_keeps_it ... ok
[INFO] [stdout] test schedule::tests::finish_snooze_reschedules_for_the_snooze_duration ... ok
[INFO] [stdout] test schedule::tests::finish_done_on_scheduled_activity_removes_it ... ok
[INFO] [stdout] test schedule::tests::finish_done_reschedules_a_fixed_interval_activity ... ok
[INFO] [stdout] test schedule::tests::finish_on_unknown_id_is_a_noop ... ok
[INFO] [stdout] test schedule::tests::re_enabled_activity_resumes_scheduling ... ok
[INFO] [stdout] test schedule::tests::claim_due_is_empty_with_no_activities ... ok
[INFO] [stdout] test schedule::tests::set_enabled_on_unknown_id_is_a_noop ... ok
[INFO] [stdout] test schedule::tests::snapshot_returns_all_registered_activities ... ok
[INFO] [stdout] test schedule::tests::random_interval_is_not_due_below_min_and_due_at_max ... ok
[INFO] [stdout] test schedule::tests::ticking_disabled_scheduled_task_past_target_garbage_collects ... ok
[INFO] [stdout] test schedule::tests::register_duplicate_id_returns_error ... ok
[INFO] [stdout] test schedule::tests::register_many_registers_every_spec ... ok
[INFO] [stdout] test schedule::tests::register_many_with_duplicate_returns_error ... ok
[INFO] [stdout] test schedule::tests::register_succeeds_and_appears_in_snapshot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 60 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ritualist
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/lib.rs - Ritualist (line 29) - compile ... ok
[INFO] [stdout] test src/activity.rs - activity::Activity<T>::calculate_progress_pct (line 208) ... ok
[INFO] [stdout] test src/clock.rs - clock::Clock (line 34) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.72s; merged doctests compilation took 1.51s
[INFO] running `Command { std: "docker" "inspect" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a", kill_on_drop: false }`
[INFO] [stdout] fc58a2697ca664a3a13cf1a533899772f9ca0731dfd2e14c173c6716138c0b5a
