[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] checking xamroot/ctfterm against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxamroot%2Fctfterm" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/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-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xamroot/ctfterm on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.1
[INFO] [stderr]   Downloaded redox_syscall v0.2.11
[INFO] [stderr]   Downloaded tokio-macros v1.7.0
[INFO] [stderr]   Downloaded cssparser-macros v0.6.0
[INFO] [stderr]   Downloaded string_cache v0.8.3
[INFO] [stderr]   Downloaded markup5ever_rcdom v0.1.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.29
[INFO] [stderr]   Downloaded httparse v1.6.0
[INFO] [stderr]   Downloaded crossterm v0.22.1
[INFO] [stderr]   Downloaded tendril v0.4.2
[INFO] [stderr]   Downloaded signal-hook v0.3.13
[INFO] [stderr]   Downloaded crossterm v0.23.1
[INFO] [stderr]   Downloaded quick-xml v0.23.0-alpha3
[INFO] [stderr]   Downloaded h2 v0.3.12
[INFO] [stderr]   Downloaded tui v0.17.0
[INFO] [stderr]   Downloaded reqwest v0.11.10
[INFO] [stderr]   Downloaded hyper v0.14.18
[INFO] [stderr]   Downloaded html5ever v0.25.1
[INFO] [stderr]   Downloaded ipnet v2.4.0
[INFO] [stderr]   Downloaded markup5ever v0.10.1
[INFO] [stderr]   Downloaded xml5ever v0.16.2
[INFO] [stderr]   Downloaded select v0.6.0-alpha.1
[INFO] [stderr]   Downloaded quote v1.0.16
[INFO] [stderr]   Downloaded dtoa-short v0.3.3
[INFO] [stderr]   Downloaded semver v1.0.6
[INFO] [stderr]   Downloaded scraper v0.12.0
[INFO] [stderr]   Downloaded string_cache_codegen v0.5.1
[INFO] [stderr]   Downloaded new_debug_unreachable v1.0.4
[INFO] [stderr]   Downloaded encoding_rs v0.8.30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6d9514986b1ee40a9816242b098b6846d6aa165e4c44f99d57619a6b296d7e33
[INFO] running `Command { std: "docker" "start" "-a" "6d9514986b1ee40a9816242b098b6846d6aa165e4c44f99d57619a6b296d7e33", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d9514986b1ee40a9816242b098b6846d6aa165e4c44f99d57619a6b296d7e33", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d9514986b1ee40a9816242b098b6846d6aa165e4c44f99d57619a6b296d7e33", kill_on_drop: false }`
[INFO] [stdout] 6d9514986b1ee40a9816242b098b6846d6aa165e4c44f99d57619a6b296d7e33
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fdd3ee7e332af11b5d9ca89ec197eee3879a573924269c9199697ab03e9a173e
[INFO] running `Command { std: "docker" "start" "-a" "fdd3ee7e332af11b5d9ca89ec197eee3879a573924269c9199697ab03e9a173e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.121
[INFO] [stderr]    Compiling syn v1.0.89
[INFO] [stderr]    Compiling log v0.4.16
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking pin-project-lite v0.2.8
[INFO] [stderr]    Compiling proc-macro-hack v0.5.19
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling quote v1.0.16
[INFO] [stderr]    Compiling pkg-config v0.3.24
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]    Compiling phf_shared v0.8.0
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]     Checking new_debug_unreachable v1.0.4
[INFO] [stderr]     Checking precomputed-hash v0.1.1
[INFO] [stderr]     Checking matches v0.1.9
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]     Checking phf_shared v0.10.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]     Checking futf v0.1.5
[INFO] [stderr]     Checking futures-io v0.3.21
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]     Checking tendril v0.4.2
[INFO] [stderr]    Compiling indexmap v1.8.0
[INFO] [stderr]    Compiling signal-hook v0.3.13
[INFO] [stderr]     Checking http v0.2.6
[INFO] [stderr]     Checking tracing-core v0.1.23
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]    Compiling native-tls v0.2.8
[INFO] [stderr]    Compiling httparse v1.6.0
[INFO] [stderr]     Checking tinyvec v1.5.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]    Compiling openssl-sys v0.9.72
[INFO] [stderr]    Compiling backtrace v0.3.64
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking socket2 v0.4.4
[INFO] [stderr]     Checking mio v0.8.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]     Checking tracing v0.1.32
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking dtoa-short v0.3.3
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling encoding_rs v0.8.30
[INFO] [stderr]     Checking unicode-normalization v0.1.19
[INFO] [stderr]     Checking tower-service v0.3.1
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking gimli v0.26.1
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]     Checking httpdate v1.0.2
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking unicode-bidi v0.3.7
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking miniz_oxide v0.4.4
[INFO] [stderr]     Checking servo_arc v0.1.1
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]     Checking signal-hook-mio v0.2.1
[INFO] [stderr]    Compiling rand_pcg v0.2.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]     Checking parking_lot_core v0.9.1
[INFO] [stderr]     Checking object v0.27.1
[INFO] [stderr]    Compiling openssl v0.10.38
[INFO] [stderr]     Checking thin-slice v0.1.1
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]     Checking rustc-demangle v0.1.21
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking crossterm v0.22.1
[INFO] [stderr]     Checking parking_lot v0.12.0
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking crossbeam-channel v0.5.4
[INFO] [stderr]     Checking bit-set v0.5.2
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking ipnet v2.4.0
[INFO] [stderr]     Checking ego-tree v0.6.2
[INFO] [stderr]     Checking unicode-segmentation v1.9.0
[INFO] [stderr]     Checking crossterm v0.23.1
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking quick-xml v0.23.0-alpha3
[INFO] [stderr]     Checking crossbeam v0.8.1
[INFO] [stderr]     Checking tui v0.17.0
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]    Compiling phf_generator v0.8.0
[INFO] [stderr]    Compiling phf_codegen v0.8.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.1
[INFO] [stderr]    Compiling selectors v0.22.0
[INFO] [stderr]    Compiling markup5ever v0.10.1
[INFO] [stderr]     Checking http-body v0.4.4
[INFO] [stderr]     Checking string_cache v0.8.3
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]    Compiling phf_macros v0.8.0
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling html5ever v0.25.1
[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]     Checking tokio v1.17.0
[INFO] [stderr]     Checking phf v0.8.0
[INFO] [stderr]     Checking xml5ever v0.16.2
[INFO] [stderr]     Checking markup5ever_rcdom v0.1.0
[INFO] [stderr]     Checking select v0.6.0-alpha.1
[INFO] [stderr]     Checking scraper v0.12.0
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking tokio-util v0.6.9
[INFO] [stderr]     Checking tokio-native-tls v0.3.0
[INFO] [stderr]     Checking h2 v0.3.12
[INFO] [stderr]     Checking hyper v0.14.18
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.10
[INFO] [stderr]     Checking 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 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/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]    = 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/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]    = 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/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/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/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: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/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/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: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: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/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: 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: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: 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: 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: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/crawler.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/crawler.rs:163:32
[INFO] [stdout]     |
[INFO] [stdout] 163 |                     b"tag2" => count += 1,
[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: 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] 
[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:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/crawler.rs:163:32
[INFO] [stdout]     |
[INFO] [stdout] 163 |                     b"tag2" => count += 1,
[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: 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] 
[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: 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: `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: 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: `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: 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 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: 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] [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 37.35s
[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" "fdd3ee7e332af11b5d9ca89ec197eee3879a573924269c9199697ab03e9a173e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fdd3ee7e332af11b5d9ca89ec197eee3879a573924269c9199697ab03e9a173e", kill_on_drop: false }`
[INFO] [stdout] fdd3ee7e332af11b5d9ca89ec197eee3879a573924269c9199697ab03e9a173e
