[INFO] cloning repository https://github.com/andysalerno/rink
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andysalerno/rink" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandysalerno%2Frink", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandysalerno%2Frink'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 92d685367d43fe0b1e8539ef684b1e41d8d971f8
[INFO] checking andysalerno/rink against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandysalerno%2Frink" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/andysalerno/rink
[INFO] finished tweaking git repo https://github.com/andysalerno/rink
[INFO] tweaked toml for git repo https://github.com/andysalerno/rink written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/andysalerno/rink on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/andysalerno/rink 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f572b3cf8388b5fe858adaac91019a9191de588a850057eed1c479128982065a
[INFO] running `Command { std: "docker" "start" "-a" "f572b3cf8388b5fe858adaac91019a9191de588a850057eed1c479128982065a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f572b3cf8388b5fe858adaac91019a9191de588a850057eed1c479128982065a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f572b3cf8388b5fe858adaac91019a9191de588a850057eed1c479128982065a", kill_on_drop: false }`
[INFO] [stdout] f572b3cf8388b5fe858adaac91019a9191de588a850057eed1c479128982065a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Dunmustuse_in_always_ok" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f5176717c5c1c324159bb4273dcd26ae1730e7139e9bfe01f62922a1022e3529
[INFO] running `Command { std: "docker" "start" "-a" "f5176717c5c1c324159bb4273dcd26ae1730e7139e9bfe01f62922a1022e3529", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking once_cell v1.14.0
[INFO] [stderr]    Compiling lock_api v0.4.8
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling futures-core v0.3.24
[INFO] [stderr]    Compiling generic-array v0.14.6
[INFO] [stderr]    Compiling tokio v1.21.0
[INFO] [stderr]     Checking futures-sink v0.3.24
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking socket2 v0.4.7
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]    Compiling futures-task v0.3.24
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling futures-util v0.3.24
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.144
[INFO] [stderr]     Checking tracing-core v0.1.29
[INFO] [stderr]    Compiling futures-channel v0.3.24
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking cpufeatures v0.2.5
[INFO] [stderr]    Compiling serde v1.0.144
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]     Checking idna v0.3.0
[INFO] [stderr]    Compiling serde_json v1.0.85
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]    Compiling async-trait v0.1.57
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking tempfile v3.3.0
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking tracing v0.1.36
[INFO] [stderr]     Checking buf_redux v0.8.4
[INFO] [stderr]     Checking twoway v0.1.8
[INFO] [stderr]     Checking url v2.3.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking multipart v0.18.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking block-buffer v0.10.3
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking digest v0.10.3
[INFO] [stderr]     Checking sha1 v0.10.4
[INFO] [stderr]     Checking headers v0.3.8
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.34
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]     Checking openssl v0.10.41
[INFO] [stderr]     Checking thiserror v1.0.34
[INFO] [stderr]     Checking tungstenite v0.14.0
[INFO] [stderr]     Checking pin-project v1.0.12
[INFO] [stderr]     Checking native-tls v0.2.10
[INFO] [stderr]     Checking tokio-util v0.7.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking tokio-tungstenite v0.15.0
[INFO] [stderr]     Checking tokio-stream v0.1.9
[INFO] [stderr]     Checking tokio-util v0.6.10
[INFO] [stderr]     Checking h2 v0.3.14
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking hyper v0.14.20
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking warp v0.3.2
[INFO] [stderr]     Checking reqwest v0.11.11
[INFO] [stderr]     Checking rink v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `reqwest::Url`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use reqwest::Url;
[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: `reqwest::Url`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use reqwest::Url;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REFRESH_TIME_SEC` is never used
[INFO] [stdout]  --> src/frontpage.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const REFRESH_TIME_SEC: usize = 1 * 60;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ContentDownloader` is never used
[INFO] [stdout]   --> src/panes.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait ContentDownloader {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `links` is never used
[INFO] [stdout]   --> src/panes/link_list_pane.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl LinkListPane {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn links(&self) -> &[Link] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `subheading` is never read
[INFO] [stdout]   --> src/panes/link_list_pane.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Link {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub subheading: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Link` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkDownloader` is never constructed
[INFO] [stdout]   --> src/panes/link_list_pane.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct LinkDownloader {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `section` and `subsection` are never read
[INFO] [stdout]   --> src/providers/nyt_most_viewed_provider.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct NytStory {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 57 |     section: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 58 |     subsection: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytStory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_results` and `status` are never read
[INFO] [stdout]   --> src/providers/nyt_most_viewed_provider.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct NytResultBundle {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 66 |     num_results: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 67 |     results: Vec<NytStory>,
[INFO] [stdout] 68 |     status: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytResultBundle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/providers/nyt_wire_provider.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct NytStory {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 56 |     slug_name: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     section: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 58 |     subsection: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     uri: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 63 |     created_date: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 64 |     kicker: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 65 |     subheadline: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytStory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_results` and `status` are never read
[INFO] [stdout]   --> src/providers/nyt_wire_provider.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct NytResultBundle {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 70 |     num_results: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 71 |     results: Vec<NytStory>,
[INFO] [stdout] 72 |     status: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytResultBundle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Html<std::string::String>, Infallible>
[INFO] [stdout]   --> src/main.rs:24:70
[INFO] [stdout]    |
[INFO] [stdout] 24 |   async fn front_page_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ______________________________________________________________________^
[INFO] [stdout] 25 | |     let fp = FrontPage::new();
[INFO] [stdout] 26 | |     let s = fp.render().await;
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Html<std::string::String>, Infallible>
[INFO] [stdout]   --> src/main.rs:24:70
[INFO] [stdout]    |
[INFO] [stdout] 24 |   async fn front_page_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ______________________________________________________________________^
[INFO] [stdout] 25 | |     let fp = FrontPage::new();
[INFO] [stdout] 26 | |     let s = fp.render().await;
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Html<std::string::String>, Infallible>
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Ok(warp::reply::html(s))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<&str>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:31:68
[INFO] [stdout]    |
[INFO] [stdout] 31 |   async fn download_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ____________________________________________________________________^
[INFO] [stdout] 32 | |     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 33 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 34 | |         .body("blahblahblah"))
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mustuse_in_always_ok)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<&str>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:31:68
[INFO] [stdout]    |
[INFO] [stdout] 31 |   async fn download_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ____________________________________________________________________^
[INFO] [stdout] 32 | |     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 33 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 34 | |         .body("blahblahblah"))
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<&str>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | /     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 33 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 34 | |         .body("blahblahblah"))
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<std::string::String>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:37:77
[INFO] [stdout]    |
[INFO] [stdout] 37 |   async fn download_page(url: String) -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________^
[INFO] [stdout] 38 | |     let url = url.replace("%2F", "/");
[INFO] [stdout] 39 | |     let url = url.replace(".txt", "");
[INFO] [stdout] 40 | |     println!("downloading: {url}");
[INFO] [stdout] ...  |
[INFO] [stdout] 46 | |         .body(content))
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<std::string::String>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:37:77
[INFO] [stdout]    |
[INFO] [stdout] 37 |   async fn download_page(url: String) -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________^
[INFO] [stdout] 38 | |     let url = url.replace("%2F", "/");
[INFO] [stdout] 39 | |     let url = url.replace(".txt", "");
[INFO] [stdout] 40 | |     println!("downloading: {url}");
[INFO] [stdout] ...  |
[INFO] [stdout] 46 | |         .body(content))
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<std::string::String>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | /     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 45 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 46 | |         .body(content))
[INFO] [stdout]    | |_______________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rink` (bin "rink") due to 3 previous errors; 16 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: constant `REFRESH_TIME_SEC` is never used
[INFO] [stdout]  --> src/frontpage.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const REFRESH_TIME_SEC: usize = 1 * 60;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ContentDownloader` is never used
[INFO] [stdout]   --> src/panes.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait ContentDownloader {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `links` is never used
[INFO] [stdout]   --> src/panes/link_list_pane.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl LinkListPane {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn links(&self) -> &[Link] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `subheading` is never read
[INFO] [stdout]   --> src/panes/link_list_pane.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Link {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub subheading: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Link` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkDownloader` is never constructed
[INFO] [stdout]   --> src/panes/link_list_pane.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct LinkDownloader {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `section` and `subsection` are never read
[INFO] [stdout]   --> src/providers/nyt_most_viewed_provider.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct NytStory {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 57 |     section: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 58 |     subsection: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytStory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_results` and `status` are never read
[INFO] [stdout]   --> src/providers/nyt_most_viewed_provider.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct NytResultBundle {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 66 |     num_results: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 67 |     results: Vec<NytStory>,
[INFO] [stdout] 68 |     status: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytResultBundle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/providers/nyt_wire_provider.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct NytStory {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 56 |     slug_name: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     section: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 58 |     subsection: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     uri: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 63 |     created_date: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 64 |     kicker: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 65 |     subheadline: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytStory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_results` and `status` are never read
[INFO] [stdout]   --> src/providers/nyt_wire_provider.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct NytResultBundle {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 70 |     num_results: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 71 |     results: Vec<NytStory>,
[INFO] [stdout] 72 |     status: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NytResultBundle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Html<std::string::String>, Infallible>
[INFO] [stdout]   --> src/main.rs:24:70
[INFO] [stdout]    |
[INFO] [stdout] 24 |   async fn front_page_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ______________________________________________________________________^
[INFO] [stdout] 25 | |     let fp = FrontPage::new();
[INFO] [stdout] 26 | |     let s = fp.render().await;
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Html<std::string::String>, Infallible>
[INFO] [stdout]   --> src/main.rs:24:70
[INFO] [stdout]    |
[INFO] [stdout] 24 |   async fn front_page_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ______________________________________________________________________^
[INFO] [stdout] 25 | |     let fp = FrontPage::new();
[INFO] [stdout] 26 | |     let s = fp.render().await;
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Html<std::string::String>, Infallible>
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Ok(warp::reply::html(s))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<&str>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:31:68
[INFO] [stdout]    |
[INFO] [stdout] 31 |   async fn download_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ____________________________________________________________________^
[INFO] [stdout] 32 | |     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 33 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 34 | |         .body("blahblahblah"))
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mustuse_in_always_ok)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<&str>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:31:68
[INFO] [stdout]    |
[INFO] [stdout] 31 |   async fn download_render() -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  ____________________________________________________________________^
[INFO] [stdout] 32 | |     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 33 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 34 | |         .body("blahblahblah"))
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<&str>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | /     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 33 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 34 | |         .body("blahblahblah"))
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<std::string::String>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:37:77
[INFO] [stdout]    |
[INFO] [stdout] 37 |   async fn download_page(url: String) -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________^
[INFO] [stdout] 38 | |     let url = url.replace("%2F", "/");
[INFO] [stdout] 39 | |     let url = url.replace(".txt", "");
[INFO] [stdout] 40 | |     println!("downloading: {url}");
[INFO] [stdout] ...  |
[INFO] [stdout] 46 | |         .body(content))
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<std::string::String>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:37:77
[INFO] [stdout]    |
[INFO] [stdout] 37 |   async fn download_page(url: String) -> Result<impl warp::Reply, Infallible> {
[INFO] [stdout]    |  _____________________________________________________________________________^
[INFO] [stdout] 38 | |     let url = url.replace("%2F", "/");
[INFO] [stdout] 39 | |     let url = url.replace(".txt", "");
[INFO] [stdout] 40 | |     println!("downloading: {url}");
[INFO] [stdout] ...  |
[INFO] [stdout] 46 | |         .body(content))
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this type continue be must used: Result<Result<warp::http::Response<std::string::String>, warp::http::Error>, Infallible>
[INFO] [stdout]   --> src/main.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | /     Ok(warp::http::response::Response::builder()
[INFO] [stdout] 45 | |         .header("Content-Type", "application/x-mobipocket-ebook")
[INFO] [stdout] 46 | |         .body(content))
[INFO] [stdout]    | |_______________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rink` (bin "rink" test) due to 3 previous errors; 16 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f5176717c5c1c324159bb4273dcd26ae1730e7139e9bfe01f62922a1022e3529", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f5176717c5c1c324159bb4273dcd26ae1730e7139e9bfe01f62922a1022e3529", kill_on_drop: false }`
[INFO] [stdout] f5176717c5c1c324159bb4273dcd26ae1730e7139e9bfe01f62922a1022e3529
