[INFO] cloning repository https://github.com/xamroot/ctfterm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xamroot/ctfterm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxamroot%2Fctfterm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxamroot%2Fctfterm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6c6b7c0ea0739098418c16d71c21f9cd02ad8aa5
[INFO] building xamroot/ctfterm against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxamroot%2Fctfterm" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/xamroot/ctfterm
[INFO] finished tweaking git repo https://github.com/xamroot/ctfterm
[INFO] tweaked toml for git repo https://github.com/xamroot/ctfterm written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xamroot/ctfterm on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xamroot/ctfterm 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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 481aad35fa3dd64daccc682f8f4d6b4ea151d966069eb9dec0b39d5f01d9e722
[INFO] running `Command { std: "docker" "start" "-a" "481aad35fa3dd64daccc682f8f4d6b4ea151d966069eb9dec0b39d5f01d9e722", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "481aad35fa3dd64daccc682f8f4d6b4ea151d966069eb9dec0b39d5f01d9e722", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "481aad35fa3dd64daccc682f8f4d6b4ea151d966069eb9dec0b39d5f01d9e722", kill_on_drop: false }`
[INFO] [stdout] 481aad35fa3dd64daccc682f8f4d6b4ea151d966069eb9dec0b39d5f01d9e722
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dd3c0ba66588e09c9514ec2bc724bae1350e63f0f2fb9d995614b022f9ceea4d
[INFO] running `Command { std: "docker" "start" "-a" "dd3c0ba66588e09c9514ec2bc724bae1350e63f0f2fb9d995614b022f9ceea4d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.121
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling syn v1.0.89
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling smallvec v1.8.0
[INFO] [stderr]    Compiling phf_shared v0.8.0
[INFO] [stderr]    Compiling lock_api v0.4.6
[INFO] [stderr]    Compiling pin-project-lite v0.2.8
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]    Compiling pkg-config v0.3.24
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.4
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling quote v1.0.16
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling mio v0.8.2
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling openssl-sys v0.9.72
[INFO] [stderr]    Compiling socket2 v0.4.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]    Compiling tendril v0.4.2
[INFO] [stderr]    Compiling indexmap v1.8.0
[INFO] [stderr]    Compiling signal-hook v0.3.13
[INFO] [stderr]    Compiling openssl v0.10.38
[INFO] [stderr]    Compiling http v0.2.6
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling tracing-core v0.1.23
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling once_cell v1.10.0
[INFO] [stderr]    Compiling httparse v1.6.0
[INFO] [stderr]    Compiling native-tls v0.2.8
[INFO] [stderr]    Compiling phf_generator v0.8.0
[INFO] [stderr]    Compiling tracing v0.1.32
[INFO] [stderr]    Compiling phf_codegen v0.8.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.1
[INFO] [stderr]    Compiling mio v0.7.14
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling dtoa v0.4.8
[INFO] [stderr]    Compiling parking_lot_core v0.9.1
[INFO] [stderr]    Compiling markup5ever v0.10.1
[INFO] [stderr]    Compiling dtoa-short v0.3.3
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.1
[INFO] [stderr]    Compiling http-body v0.4.4
[INFO] [stderr]    Compiling selectors v0.22.0
[INFO] [stderr]    Compiling string_cache v0.8.3
[INFO] [stderr]    Compiling time v0.1.44
[INFO] [stderr]    Compiling backtrace v0.3.64
[INFO] [stderr]    Compiling nodrop v0.1.14
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]    Compiling encoding_rs v0.8.30
[INFO] [stderr]    Compiling gimli v0.26.1
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling servo_arc v0.1.1
[INFO] [stderr]    Compiling object v0.27.1
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling rustc-demangle v0.1.21
[INFO] [stderr]    Compiling thin-slice v0.1.1
[INFO] [stderr]    Compiling bit-set v0.5.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling parking_lot v0.12.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.1
[INFO] [stderr]    Compiling getopts v0.2.21
[INFO] [stderr]    Compiling crossterm v0.22.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.4
[INFO] [stderr]    Compiling ego-tree v0.6.2
[INFO] [stderr]    Compiling unicode-segmentation v1.9.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling ipnet v2.4.0
[INFO] [stderr]    Compiling crossbeam v0.8.1
[INFO] [stderr]    Compiling tui v0.17.0
[INFO] [stderr]    Compiling crossterm v0.23.1
[INFO] [stderr]    Compiling quick-xml v0.23.0-alpha3
[INFO] [stderr]    Compiling phf_macros v0.8.0
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling tokio v1.17.0
[INFO] [stderr]    Compiling html5ever v0.25.1
[INFO] [stderr]    Compiling phf v0.8.0
[INFO] [stderr]    Compiling cssparser v0.27.2
[INFO] [stderr]    Compiling cssparser-macros v0.6.0
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling addr2line v0.17.0
[INFO] [stderr]    Compiling xml5ever v0.16.2
[INFO] [stderr]    Compiling markup5ever_rcdom v0.1.0
[INFO] [stderr]    Compiling tokio-util v0.6.9
[INFO] [stderr]    Compiling tokio-native-tls v0.3.0
[INFO] [stderr]    Compiling futures-executor v0.3.21
[INFO] [stderr]    Compiling select v0.6.0-alpha.1
[INFO] [stderr]    Compiling futures v0.3.21
[INFO] [stderr]    Compiling h2 v0.3.12
[INFO] [stderr]    Compiling scraper v0.12.0
[INFO] [stderr]    Compiling hyper v0.14.18
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.10
[INFO] [stderr]    Compiling ctfterm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BorderType`, `ListState`, and `TableState`
[INFO] [stdout]   --> src/main.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     widgets::{List, ListItem, ListState, Block, BorderType, Borders, Cell, Row, Table, TableState},
[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: `tokio::runtime::Runtime`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use tokio::runtime::Runtime;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::time::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio::task;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::executor::block_on`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use futures::executor::block_on;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::Error`
[INFO] [stdout]  --> src/loaders.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, io};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::executor::block_on`
[INFO] [stdout]  --> src/loaders.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use futures::executor::block_on;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `has_error_description_deprecated`
[INFO] [stdout]   --> src/crawler.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / error_chain! {
[INFO] [stdout]  7 | |       foreign_links {
[INFO] [stdout]  8 | |           ReqError(reqwest::Error);
[INFO] [stdout]  9 | |           IoError(std::io::Error);
[INFO] [stdout] 10 | |       }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `impl_error_chain_processed` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `impl_error_chain_processed` may come from an old version of the `error_chain` crate, try updating your dependency with `cargo update -p error_chain`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/crawler.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     s.replace_range((comma_idx1..dash_idx), "");
[INFO] [stdout]    |                                     ^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -                     s.replace_range((comma_idx1..dash_idx), "");
[INFO] [stdout] 36 +                     s.replace_range(comma_idx1..dash_idx, "");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/crawler.rs:40:37
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     s.replace_range((comma_idx2..end_idx), "");
[INFO] [stdout]    |                                     ^                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -                     s.replace_range((comma_idx2..end_idx), "");
[INFO] [stdout] 40 +                     s.replace_range(comma_idx2..end_idx, "");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error` and `io`
[INFO] [stdout]  --> src/types.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, io};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment`, `Backend`, `Block`, `BorderType`, `Borders`, `Cell`, `Color`, `Constraint`, `CrosstermBackend`, `Direction`, `Frame`, `Layout`, `ListItem`, `List`, `Modifier`, `Row`, `Span`, `Spans`, `Style`, `TableState`, `Table`, and `Terminal`
[INFO] [stdout]  --> src/types.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     backend::{Backend, CrosstermBackend},
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     layout::{Alignment, Constraint, Direction, Layout},
[INFO] [stdout]   |              ^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 5 |     style::{Color, Modifier, Style},
[INFO] [stdout]   |             ^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 6 |     text::{Span,Spans},
[INFO] [stdout]   |            ^^^^ ^^^^^
[INFO] [stdout] 7 |     widgets::{List, ListItem, ListState, Block, BorderType, Borders, Cell, Row, Table, TableState},
[INFO] [stdout]   |               ^^^^  ^^^^^^^^             ^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^  ^^^  ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 8 |     Frame, Terminal,
[INFO] [stdout]   |     ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:173:16
[INFO] [stdout]     |
[INFO] [stdout] 173 |             if (app.focused == 3)
[INFO] [stdout]     |                ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -             if (app.focused == 3)
[INFO] [stdout] 173 +             if app.focused == 3
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |             else if (app.focused == 4)
[INFO] [stdout]     |                     ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 177 -             else if (app.focused == 4)
[INFO] [stdout] 177 +             else if app.focused == 4
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:185:16
[INFO] [stdout]     |
[INFO] [stdout] 185 |             if (app.focused == 3)
[INFO] [stdout]     |                ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 185 -             if (app.focused == 3)
[INFO] [stdout] 185 +             if app.focused == 3
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:189:21
[INFO] [stdout]     |
[INFO] [stdout] 189 |             else if (app.focused == 4)
[INFO] [stdout]     |                     ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 189 -             else if (app.focused == 4)
[INFO] [stdout] 189 +             else if app.focused == 4
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evt`
[INFO] [stdout]   --> src/loaders.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     for evt in &evts{
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_evt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ch`
[INFO] [stdout]   --> src/loaders.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |             for ch in evts[i].chars()
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/crawler.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let mut count = 0;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loaders.rs:65:28
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub async fn load_writeups(mut writeup_items: &mut Vec<(String,String,String,String,String)>)->io::Result<()>
[INFO] [stdout]    |                            ----^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loaders.rs:37:34
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub async fn load_current_events(mut current_events_items: &mut Vec<String>)->io::Result<()>
[INFO] [stdout]    |                                  ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/loaders.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn load_past_events(mut past_events_items: &mut Vec<(String, String)>)->io::Result<()>
[INFO] [stdout]   |                               ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |                               |
[INFO] [stdout]   |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loaders.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn load_leaderboard(mut leaderboard_items: &mut Vec<(String, String, String, String)>)->io::Result<()>
[INFO] [stdout]    |                               ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:112:6
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut resp = reqwest::get("https://ctftime.org/stats/").await.unwrap(); 
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 let mut s: String = String::from( elem[0] );
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/crawler.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut resp = reqwest::get("https://ctftime.org/event/list/past").await.unwrap(); 
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/crawler.rs:52:6
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut resp = reqwest::get("https://ctftime.org/writeups").await.unwrap(); 
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/crawler.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     let mut s: String = String::from( elem[0] );
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dataThreadRunning`
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let dataThreadRunning = arc.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dataThreadRunning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `needs_load_`
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let needs_load_ = needs_load.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_load_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_event_s` is never read
[INFO] [stdout]    --> src/main.rs:208:29
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     let mut curr_event_s = String::new();
[INFO] [stdout]     |                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:77:6
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut autoscroll = true;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let res = run_app(&mut terminal, &mut app).await;
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w1`
[INFO] [stdout]    --> src/main.rs:417:16
[INFO] [stdout]     |
[INFO] [stdout] 417 |         .map(|(w1, w2, w3, w4, w5)| {
[INFO] [stdout]     |                ^^ help: if this is intentional, prefix it with an underscore: `_w1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w4`
[INFO] [stdout]    --> src/main.rs:417:28
[INFO] [stdout]     |
[INFO] [stdout] 417 |         .map(|(w1, w2, w3, w4, w5)| {
[INFO] [stdout]     |                            ^^ help: if this is intentional, prefix it with an underscore: `_w4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w5`
[INFO] [stdout]    --> src/main.rs:417:32
[INFO] [stdout]     |
[INFO] [stdout] 417 |         .map(|(w1, w2, w3, w4, w5)| {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_w5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/main.rs:395:48
[INFO] [stdout]     |
[INFO] [stdout] 395 | fn build_writeups<'a>(app :&'a mut types::App, width: usize) -> List<'a> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> src/types.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StatefulList<T> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 12 |     state: ListState,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll`, `next`, `previous`, and `unselect` are never used
[INFO] [stdout]   --> src/types.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<T: Clone> StatefulList<T> {
[INFO] [stdout]    | ------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn scroll(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn next(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn unselect(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `term_height`, `current_events_list`, and `events` are never read
[INFO] [stdout]    --> src/types.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct App<'a> {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 103 |     pub focused: i16,
[INFO] [stdout] 104 |     pub term_height: u16,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 105 |     pub curr_events: StatefulList<String>,
[INFO] [stdout] 106 |     pub current_events_list: StatefulList<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub events: Vec<(&'a str, &'a str)>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_tick` is never used
[INFO] [stdout]    --> src/types.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl<'a> App<'a> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn on_tick(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadUp` should have a snake case name
[INFO] [stdout]   --> src/main.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let inputThreadUp = up.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_up`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadDown` should have a snake case name
[INFO] [stdout]   --> src/main.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let inputThreadDown = down.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_down`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadRight` should have a snake case name
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let inputThreadRight = right.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadLeft` should have a snake case name
[INFO] [stdout]   --> src/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let inputThreadLeft = left.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadRunning` should have a snake case name
[INFO] [stdout]   --> src/main.rs:71:6
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let inputThreadRunning = arc.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dataThreadRunning` should have a snake case name
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let dataThreadRunning = arc.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `data_thread_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `scrollCounter` should have a snake case name
[INFO] [stdout]   --> src/main.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut scrollCounter = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `scroll_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `scrollTimer` should have a snake case name
[INFO] [stdout]   --> src/main.rs:76:6
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let scrollTimer = 100;
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `scroll_timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:94:29
[INFO] [stdout]    |
[INFO] [stdout] 94 | ...                   loaders::load_current_events(&mut curr_events).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] 94 |                             let _ = loaders::load_current_events(&mut curr_events).await;
[INFO] [stdout]    |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   loaders::load_leaderboard(&mut stats).await;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 102 |                             let _ = loaders::load_leaderboard(&mut stats).await;
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:110:29
[INFO] [stdout]     |
[INFO] [stdout] 110 | ...                   loaders::load_past_events(&mut past_events).await;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 110 |                             let _ = loaders::load_past_events(&mut past_events).await;
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   loaders::load_writeups(&mut writeups).await;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |                             let _ = loaders::load_writeups(&mut writeups).await;
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadHandle` should have a snake case name
[INFO] [stdout]    --> src/main.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let inputThreadHandle = std::thread::spawn(move || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         terminal.draw(|f| ui(f, app));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let _ = terminal.draw(|f| ui(f, app));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 52s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: html5ever v0.25.1, xml5ever v0.16.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "dd3c0ba66588e09c9514ec2bc724bae1350e63f0f2fb9d995614b022f9ceea4d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd3c0ba66588e09c9514ec2bc724bae1350e63f0f2fb9d995614b022f9ceea4d", kill_on_drop: false }`
[INFO] [stdout] dd3c0ba66588e09c9514ec2bc724bae1350e63f0f2fb9d995614b022f9ceea4d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4325e386739a2c9102af59ee5710c68b2d59bf8711a03d746f9858a312e2bf11
[INFO] running `Command { std: "docker" "start" "-a" "4325e386739a2c9102af59ee5710c68b2d59bf8711a03d746f9858a312e2bf11", kill_on_drop: false }`
[INFO] [stderr]    Compiling ctfterm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BorderType`, `ListState`, and `TableState`
[INFO] [stdout]   --> src/main.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     widgets::{List, ListItem, ListState, Block, BorderType, Borders, Cell, Row, Table, TableState},
[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: `tokio::runtime::Runtime`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use tokio::runtime::Runtime;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::time::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio::task;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::executor::block_on`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use futures::executor::block_on;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error::Error`
[INFO] [stdout]  --> src/loaders.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, io};
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::executor::block_on`
[INFO] [stdout]  --> src/loaders.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use futures::executor::block_on;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `has_error_description_deprecated`
[INFO] [stdout]   --> src/crawler.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 | / error_chain! {
[INFO] [stdout]  7 | |       foreign_links {
[INFO] [stdout]  8 | |           ReqError(reqwest::Error);
[INFO] [stdout]  9 | |           IoError(std::io::Error);
[INFO] [stdout] 10 | |       }
[INFO] [stdout] 11 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]    = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `impl_error_chain_processed` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = help: the macro `impl_error_chain_processed` may come from an old version of the `error_chain` crate, try updating your dependency with `cargo update -p error_chain`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/crawler.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     s.replace_range((comma_idx1..dash_idx), "");
[INFO] [stdout]    |                                     ^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -                     s.replace_range((comma_idx1..dash_idx), "");
[INFO] [stdout] 36 +                     s.replace_range(comma_idx1..dash_idx, "");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/crawler.rs:40:37
[INFO] [stdout]    |
[INFO] [stdout] 40 |                     s.replace_range((comma_idx2..end_idx), "");
[INFO] [stdout]    |                                     ^                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 40 -                     s.replace_range((comma_idx2..end_idx), "");
[INFO] [stdout] 40 +                     s.replace_range(comma_idx2..end_idx, "");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error` and `io`
[INFO] [stdout]  --> src/types.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{error::Error, io};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Alignment`, `Backend`, `Block`, `BorderType`, `Borders`, `Cell`, `Color`, `Constraint`, `CrosstermBackend`, `Direction`, `Frame`, `Layout`, `ListItem`, `List`, `Modifier`, `Row`, `Span`, `Spans`, `Style`, `TableState`, `Table`, and `Terminal`
[INFO] [stdout]  --> src/types.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     backend::{Backend, CrosstermBackend},
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     layout::{Alignment, Constraint, Direction, Layout},
[INFO] [stdout]   |              ^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^
[INFO] [stdout] 5 |     style::{Color, Modifier, Style},
[INFO] [stdout]   |             ^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 6 |     text::{Span,Spans},
[INFO] [stdout]   |            ^^^^ ^^^^^
[INFO] [stdout] 7 |     widgets::{List, ListItem, ListState, Block, BorderType, Borders, Cell, Row, Table, TableState},
[INFO] [stdout]   |               ^^^^  ^^^^^^^^             ^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^  ^^^  ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 8 |     Frame, Terminal,
[INFO] [stdout]   |     ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:173:16
[INFO] [stdout]     |
[INFO] [stdout] 173 |             if (app.focused == 3)
[INFO] [stdout]     |                ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 173 -             if (app.focused == 3)
[INFO] [stdout] 173 +             if app.focused == 3
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:177:21
[INFO] [stdout]     |
[INFO] [stdout] 177 |             else if (app.focused == 4)
[INFO] [stdout]     |                     ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 177 -             else if (app.focused == 4)
[INFO] [stdout] 177 +             else if app.focused == 4
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:185:16
[INFO] [stdout]     |
[INFO] [stdout] 185 |             if (app.focused == 3)
[INFO] [stdout]     |                ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 185 -             if (app.focused == 3)
[INFO] [stdout] 185 +             if app.focused == 3
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:189:21
[INFO] [stdout]     |
[INFO] [stdout] 189 |             else if (app.focused == 4)
[INFO] [stdout]     |                     ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 189 -             else if (app.focused == 4)
[INFO] [stdout] 189 +             else if app.focused == 4
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loaders.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn load_leaderboard(mut leaderboard_items: &mut Vec<(String, String, String, String)>)->io::Result<()>
[INFO] [stdout]    |                               ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loaders.rs:65:28
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub async fn load_writeups(mut writeup_items: &mut Vec<(String,String,String,String,String)>)->io::Result<()>
[INFO] [stdout]    |                            ----^^^^^^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `evt`
[INFO] [stdout]   --> src/loaders.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     for evt in &evts{
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_evt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ch`
[INFO] [stdout]   --> src/loaders.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |             for ch in evts[i].chars()
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/loaders.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn load_past_events(mut past_events_items: &mut Vec<(String, String)>)->io::Result<()>
[INFO] [stdout]   |                               ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |                               |
[INFO] [stdout]   |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/crawler.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let mut count = 0;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loaders.rs:37:34
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub async fn load_current_events(mut current_events_items: &mut Vec<String>)->io::Result<()>
[INFO] [stdout]    |                                  ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:112:6
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut resp = reqwest::get("https://ctftime.org/stats/").await.unwrap(); 
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/crawler.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 let mut s: String = String::from( elem[0] );
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/crawler.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut resp = reqwest::get("https://ctftime.org/event/list/past").await.unwrap(); 
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dataThreadRunning`
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let dataThreadRunning = arc.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dataThreadRunning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `needs_load_`
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let needs_load_ = needs_load.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_needs_load_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_event_s` is never read
[INFO] [stdout]    --> src/main.rs:208:29
[INFO] [stdout]     |
[INFO] [stdout] 208 |                     let mut curr_event_s = String::new();
[INFO] [stdout]     |                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/crawler.rs:52:6
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut resp = reqwest::get("https://ctftime.org/writeups").await.unwrap(); 
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/crawler.rs:94:25
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     let mut s: String = String::from( elem[0] );
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:77:6
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut autoscroll = true;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let res = run_app(&mut terminal, &mut app).await;
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/main.rs:395:48
[INFO] [stdout]     |
[INFO] [stdout] 395 | fn build_writeups<'a>(app :&'a mut types::App, width: usize) -> List<'a> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w1`
[INFO] [stdout]    --> src/main.rs:417:16
[INFO] [stdout]     |
[INFO] [stdout] 417 |         .map(|(w1, w2, w3, w4, w5)| {
[INFO] [stdout]     |                ^^ help: if this is intentional, prefix it with an underscore: `_w1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w4`
[INFO] [stdout]    --> src/main.rs:417:28
[INFO] [stdout]     |
[INFO] [stdout] 417 |         .map(|(w1, w2, w3, w4, w5)| {
[INFO] [stdout]     |                            ^^ help: if this is intentional, prefix it with an underscore: `_w4`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w5`
[INFO] [stdout]    --> src/main.rs:417:32
[INFO] [stdout]     |
[INFO] [stdout] 417 |         .map(|(w1, w2, w3, w4, w5)| {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_w5`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> src/types.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StatefulList<T> {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 12 |     state: ListState,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `scroll`, `next`, `previous`, and `unselect` are never used
[INFO] [stdout]   --> src/types.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<T: Clone> StatefulList<T> {
[INFO] [stdout]    | ------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn scroll(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn next(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn previous(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn unselect(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `term_height`, `current_events_list`, and `events` are never read
[INFO] [stdout]    --> src/types.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct App<'a> {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 103 |     pub focused: i16,
[INFO] [stdout] 104 |     pub term_height: u16,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 105 |     pub curr_events: StatefulList<String>,
[INFO] [stdout] 106 |     pub current_events_list: StatefulList<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub events: Vec<(&'a str, &'a str)>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_tick` is never used
[INFO] [stdout]    --> src/types.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl<'a> App<'a> {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn on_tick(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadUp` should have a snake case name
[INFO] [stdout]   --> src/main.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let inputThreadUp = up.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_up`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadDown` should have a snake case name
[INFO] [stdout]   --> src/main.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let inputThreadDown = down.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_down`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadRight` should have a snake case name
[INFO] [stdout]   --> src/main.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let inputThreadRight = right.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadLeft` should have a snake case name
[INFO] [stdout]   --> src/main.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let inputThreadLeft = left.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadRunning` should have a snake case name
[INFO] [stdout]   --> src/main.rs:71:6
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let inputThreadRunning = arc.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dataThreadRunning` should have a snake case name
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let dataThreadRunning = arc.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `data_thread_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `scrollCounter` should have a snake case name
[INFO] [stdout]   --> src/main.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut scrollCounter = 0;
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: convert the identifier to snake case: `scroll_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `scrollTimer` should have a snake case name
[INFO] [stdout]   --> src/main.rs:76:6
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let scrollTimer = 100;
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `scroll_timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:94:29
[INFO] [stdout]    |
[INFO] [stdout] 94 | ...                   loaders::load_current_events(&mut curr_events).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] 94 |                             let _ = loaders::load_current_events(&mut curr_events).await;
[INFO] [stdout]    |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   loaders::load_leaderboard(&mut stats).await;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 102 |                             let _ = loaders::load_leaderboard(&mut stats).await;
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:110:29
[INFO] [stdout]     |
[INFO] [stdout] 110 | ...                   loaders::load_past_events(&mut past_events).await;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 110 |                             let _ = loaders::load_past_events(&mut past_events).await;
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   loaders::load_writeups(&mut writeups).await;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 118 |                             let _ = loaders::load_writeups(&mut writeups).await;
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `inputThreadHandle` should have a snake case name
[INFO] [stdout]    --> src/main.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let inputThreadHandle = std::thread::spawn(move || {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `input_thread_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         terminal.draw(|f| ui(f, app));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let _ = terminal.draw(|f| ui(f, app));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.94s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: html5ever v0.25.1, xml5ever v0.16.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "4325e386739a2c9102af59ee5710c68b2d59bf8711a03d746f9858a312e2bf11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4325e386739a2c9102af59ee5710c68b2d59bf8711a03d746f9858a312e2bf11", kill_on_drop: false }`
[INFO] [stdout] 4325e386739a2c9102af59ee5710c68b2d59bf8711a03d746f9858a312e2bf11
