[INFO] fetching crate ratatui-recipe 0.0.2... [INFO] checking ratatui-recipe-0.0.2 against try#38c2997544af84fe301d600d6896397738163002 for pr-154205-1 [INFO] extracting crate ratatui-recipe 0.0.2 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate ratatui-recipe 0.0.2 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate ratatui-recipe 0.0.2 [INFO] tweaked toml for crates.io crate ratatui-recipe 0.0.2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate ratatui-recipe 0.0.2 on toolchain 38c2997544af84fe301d600d6896397738163002 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+38c2997544af84fe301d600d6896397738163002" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate ratatui-recipe 0.0.2 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" "+38c2997544af84fe301d600d6896397738163002" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+38c2997544af84fe301d600d6896397738163002" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 924e0c5ad77a633da94e8ce55087466758660330f6122ffa458994b7eab77644 [INFO] running `Command { std: "docker" "start" "-a" "924e0c5ad77a633da94e8ce55087466758660330f6122ffa458994b7eab77644", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "924e0c5ad77a633da94e8ce55087466758660330f6122ffa458994b7eab77644", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "924e0c5ad77a633da94e8ce55087466758660330f6122ffa458994b7eab77644", kill_on_drop: false }` [INFO] [stdout] 924e0c5ad77a633da94e8ce55087466758660330f6122ffa458994b7eab77644 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+38c2997544af84fe301d600d6896397738163002" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 51f054b973aad1c4f304cc0b0170e5ef03e13bbbfa23304839035cb8a2e8e075 [INFO] running `Command { std: "docker" "start" "-a" "51f054b973aad1c4f304cc0b0170e5ef03e13bbbfa23304839035cb8a2e8e075", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Checking ryu v1.0.22 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Checking lru v0.16.3 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking deranged v0.5.5 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking line-clipping v0.3.5 [INFO] [stderr] Checking compact_str v0.9.0 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Checking unicode-truncate v2.0.1 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling ratatui-recipe-macros v0.0.1 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking crossterm v0.29.0 [INFO] [stderr] Checking kasuari v0.4.11 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking ratatui-core v0.1.0 [INFO] [stderr] Checking ratatui-widgets v0.3.0 [INFO] [stderr] Checking ratatui-crossterm v0.1.0 [INFO] [stderr] Checking ratatui-macros v0.7.0 [INFO] [stderr] Checking ratatui v0.30.0 [INFO] [stderr] Checking ratatui-recipe v0.0.2 (/opt/rustwide/workdir) [INFO] [stderr] [FMTARGS] {"crate":"ratatui_recipe","loc":"/rustc/38c2997544af84fe301d600d6896397738163002/library/core/src/panic.rs:94:23","p":2,"ph":0,"wa":0,"pa":0,"a":0,"pos":0,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":0,"a_opt":0,"sz_no_dedup":0,"sz_old":0,"sz_opt":0} [INFO] [stderr] [FMTARGS] {"crate":"ratatui_recipe","loc":"/opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/macros/select.rs:762:56","p":1,"ph":0,"wa":0,"pa":0,"a":0,"pos":0,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":0,"a_opt":0,"sz_no_dedup":0,"sz_old":0,"sz_opt":0} [INFO] [stderr] [FMTARGS] {"crate":"ratatui_recipe","loc":"/rustc/38c2997544af84fe301d600d6896397738163002/library/core/src/panic.rs:94:23","p":2,"ph":0,"wa":0,"pa":0,"a":0,"pos":0,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":0,"a_opt":0,"sz_no_dedup":0,"sz_old":0,"sz_opt":0} [INFO] [stderr] [FMTARGS] {"crate":"ratatui_recipe","loc":"/rustc/38c2997544af84fe301d600d6896397738163002/library/core/src/panic.rs:94:23","p":2,"ph":0,"wa":0,"pa":0,"a":0,"pos":0,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":0,"a_opt":0,"sz_no_dedup":0,"sz_old":0,"sz_opt":0} [INFO] [stderr] [FMTARGS] {"crate":"ratatui_recipe","loc":"/opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/macros/select.rs:762:56","p":1,"ph":0,"wa":0,"pa":0,"a":0,"pos":0,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":0,"a_opt":0,"sz_no_dedup":0,"sz_old":0,"sz_opt":0} [INFO] [stderr] [FMTARGS] {"crate":"ratatui_recipe","loc":"/rustc/38c2997544af84fe301d600d6896397738163002/library/core/src/panic.rs:94:23","p":2,"ph":0,"wa":0,"pa":0,"a":0,"pos":0,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":0,"a_opt":0,"sz_no_dedup":0,"sz_old":0,"sz_opt":0} [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:21:48 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:24:34 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:26:30 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:33:68 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:34:54 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:36:54 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:37:55 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:38:50 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [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/page.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [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] 11 - async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [INFO] [stdout] 11 + fn on_event(&mut self, event: Event, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | async fn on_enter(&mut self, router: Router, state: &mut S); [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] 12 - async fn on_enter(&mut self, router: Router, state: &mut S); [INFO] [stdout] 12 + fn on_enter(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn on_exit(&mut self, router: Router, state: &mut S); [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] 13 - async fn on_exit(&mut self, router: Router, state: &mut S); [INFO] [stdout] 13 + fn on_exit(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn on_pause(&mut self, router: Router, state: &mut S); [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] 14 - async fn on_pause(&mut self, router: Router, state: &mut S); [INFO] [stdout] 14 + fn on_pause(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn on_resume(&mut self, router: Router, state: &mut S); [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] 15 - async fn on_resume(&mut self, router: Router, state: &mut S); [INFO] [stdout] 15 + fn on_resume(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | async fn task(&mut self, router: Router, state: &mut S); [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] 16 - async fn task(&mut self, router: Router, state: &mut S); [INFO] [stdout] 16 + fn task(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [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] 21 - async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] 21 + fn on_event(&mut self, event: Event, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [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] 22 - async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] 22 + fn on_enter(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [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] 23 - async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] 23 + fn on_exit(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [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] 24 - async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] 24 + fn on_pause(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [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] 25 - async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] 25 + fn on_resume(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [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] 26 ~ fn task(&mut self, router: Router) -> impl std::future::Future + Send {async { [INFO] [stdout] 27 | future::pending().await [INFO] [stdout] 28 ~ } } [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/page.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [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] 33 - async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] 33 + fn on_event(&mut self, event: Event, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [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] 34 - async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 34 + fn on_enter(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [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] 35 - async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 35 + fn on_exit(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [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] 36 - async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 36 + fn on_pause(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [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] 37 - async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 37 + fn on_resume(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [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] 38 ~ fn task(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send {async { [INFO] [stdout] 39 | future::pending().await [INFO] [stdout] 40 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:21:48 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:24:34 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:26:30 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:33:68 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:34:54 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:36:54 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:37:55 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:38:50 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [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/page.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [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] 11 - async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [INFO] [stdout] 11 + fn on_event(&mut self, event: Event, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | async fn on_enter(&mut self, router: Router, state: &mut S); [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] 12 - async fn on_enter(&mut self, router: Router, state: &mut S); [INFO] [stdout] 12 + fn on_enter(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn on_exit(&mut self, router: Router, state: &mut S); [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] 13 - async fn on_exit(&mut self, router: Router, state: &mut S); [INFO] [stdout] 13 + fn on_exit(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn on_pause(&mut self, router: Router, state: &mut S); [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] 14 - async fn on_pause(&mut self, router: Router, state: &mut S); [INFO] [stdout] 14 + fn on_pause(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn on_resume(&mut self, router: Router, state: &mut S); [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] 15 - async fn on_resume(&mut self, router: Router, state: &mut S); [INFO] [stdout] 15 + fn on_resume(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | async fn task(&mut self, router: Router, state: &mut S); [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] 16 - async fn task(&mut self, router: Router, state: &mut S); [INFO] [stdout] 16 + fn task(&mut self, router: Router, state: &mut S) -> impl std::future::Future + Send; [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/page.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [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] 21 - async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] 21 + fn on_event(&mut self, event: Event, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [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] 22 - async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] 22 + fn on_enter(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [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] 23 - async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] 23 + fn on_exit(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [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] 24 - async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] 24 + fn on_pause(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [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] 25 - async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] 25 + fn on_resume(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [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] 26 ~ fn task(&mut self, router: Router) -> impl std::future::Future + Send {async { [INFO] [stdout] 27 | future::pending().await [INFO] [stdout] 28 ~ } } [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/page.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [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] 33 - async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] 33 + fn on_event(&mut self, event: Event, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [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] 34 - async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 34 + fn on_enter(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [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] 35 - async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 35 + fn on_exit(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [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] 36 - async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 36 + fn on_pause(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [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] 37 - async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 37 + fn on_resume(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [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] 38 ~ fn task(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send {async { [INFO] [stdout] 39 | future::pending().await [INFO] [stdout] 40 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [FMTARGS] {"crate":"ratapp_example","loc":"examples/ratapp_example.rs:41:31","p":1,"ph":1,"wa":0,"pa":0,"a":1,"pos":1,"named":0,"cap":0,"ucap":0,"dup":0,"const":0,"constparam":0,"other_dup":0,"d2":0,"d3":0,"d4p":0,"deduped":0,"remaining":0,"a_old":1,"a_opt":1,"sz_no_dedup":16,"sz_old":16,"sz_opt":16} [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.45s [INFO] running `Command { std: "docker" "inspect" "51f054b973aad1c4f304cc0b0170e5ef03e13bbbfa23304839035cb8a2e8e075", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "51f054b973aad1c4f304cc0b0170e5ef03e13bbbfa23304839035cb8a2e8e075", kill_on_drop: false }` [INFO] [stdout] 51f054b973aad1c4f304cc0b0170e5ef03e13bbbfa23304839035cb8a2e8e075