[INFO] fetching crate btop 0.1.0... [INFO] linting btop-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate btop 0.1.0 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate btop 0.1.0 [INFO] finished tweaking crates.io crate btop 0.1.0 [INFO] tweaked toml for crates.io crate btop 0.1.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate btop 0.1.0 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate btop 0.1.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded smallvec v1.11.1 [INFO] [stderr] Downloaded rayon-core v1.12.0 [INFO] [stderr] Downloaded time v0.3.29 [INFO] [stderr] Downloaded sysinfo v0.29.10 [INFO] [stderr] Downloaded rayon v1.8.0 [INFO] [stderr] Downloaded ratatui v0.23.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6c4fc90d2b25c657efef508c8530b772fe0ad6875bfeb165cd2eb4361b759bf4 [INFO] running `Command { std: "docker" "start" "-a" "6c4fc90d2b25c657efef508c8530b772fe0ad6875bfeb165cd2eb4361b759bf4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6c4fc90d2b25c657efef508c8530b772fe0ad6875bfeb165cd2eb4361b759bf4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6c4fc90d2b25c657efef508c8530b772fe0ad6875bfeb165cd2eb4361b759bf4", kill_on_drop: false }` [INFO] [stdout] 6c4fc90d2b25c657efef508c8530b772fe0ad6875bfeb165cd2eb4361b759bf4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 60f25d3f3d7ffff05c8fa8aaacf9f62326c9445166ca22d7a56374b697b656fe [INFO] running `Command { std: "docker" "start" "-a" "60f25d3f3d7ffff05c8fa8aaacf9f62326c9445166ca22d7a56374b697b656fe", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.148 [INFO] [stderr] Compiling proc-macro2 v1.0.68 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling parking_lot_core v0.9.8 [INFO] [stderr] Compiling rayon-core v1.12.0 [INFO] [stderr] Checking smallvec v1.11.1 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking bitflags v2.4.0 [INFO] [stderr] Checking num_threads v0.1.6 [INFO] [stderr] Checking deranged v0.3.8 [INFO] [stderr] Compiling indoc v2.0.4 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Checking unicode-segmentation v1.10.1 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking rayon v1.8.0 [INFO] [stderr] Compiling syn v2.0.38 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Checking time v0.3.29 [INFO] [stderr] Checking signal-hook v0.3.17 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Compiling strum_macros v0.25.2 [INFO] [stderr] Checking sysinfo v0.29.10 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking ratatui v0.23.0 [INFO] [stderr] Checking btop v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `DiskExt` [INFO] [stdout] --> src/disk.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use sysinfo::{DiskExt, SystemExt}; [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: `Cell` [INFO] [stdout] --> src/processes.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use tui::{prelude::Constraint, widgets::{Row, Cell, Table, BorderType, Borders, TableState}, style::Style}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Sparkline` and `text::Line` [INFO] [stdout] --> src/memory.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use ratatui::{widgets::{Borders, Sparkline, BarChart, BarGroup, Bar}, text::Line}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DiskExt` [INFO] [stdout] --> src/disk.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use sysinfo::{DiskExt, SystemExt}; [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: `Cell` [INFO] [stdout] --> src/processes.rs:2:47 [INFO] [stdout] | [INFO] [stdout] 2 | use tui::{prelude::Constraint, widgets::{Row, Cell, Table, BorderType, Borders, TableState}, style::Style}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Sparkline` and `text::Line` [INFO] [stdout] --> src/memory.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use ratatui::{widgets::{Borders, Sparkline, BarChart, BarGroup, Bar}, text::Line}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/main.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `disk` [INFO] [stdout] --> src/disk.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | for disk in sys.disks() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_disk` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/disk.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | let block = tui::widgets::Block::default() [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chart` [INFO] [stdout] --> src/disk.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | let chart = BarChart::default(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chart` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app_state` [INFO] [stdout] --> src/main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let app_state = BtopState::new(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled`, `processes`, and `disk` are never read [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct BtopState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 17 | enabled: FeaturesEnabled, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 18 | cpu: cpu::CpuCores, [INFO] [stdout] 19 | processes: processes::ProcessState, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 20 | // memory: [INFO] [stdout] 21 | disk: disk::DiskState, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cpu`, `memory`, `disk`, `network`, and `processes` are never read [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | struct FeaturesEnabled { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 27 | cpu: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | memory: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 29 | disk: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 30 | network: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 31 | processes: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disable_cpu` is never used [INFO] [stdout] --> src/main.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 34 | impl BtopState { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | fn disable_cpu(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `disks` is never read [INFO] [stdout] --> src/disk.rs:6:3 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DiskState { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 6 | disks: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `available`, and `capacity` are never read [INFO] [stdout] --> src/disk.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 9 | struct Disk { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | available: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | capacity: u64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_disk_block` is never used [INFO] [stdout] --> src/disk.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn get_disk_block() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `table` is never read [INFO] [stdout] --> src/processes.rs:7:3 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct ProcessState { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 7 | table: TableState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | return CpuData{ cpu_usage: [0f32; DATA_POINTS], position: DATA_POINTS-1, cpu_usage_u64: [0u64; DATA_POINTS] }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return CpuData{ cpu_usage: [0f32; DATA_POINTS], position: DATA_POINTS-1, cpu_usage_u64: [0u64; DATA_POINTS] }; [INFO] [stdout] 30 + CpuData{ cpu_usage: [0f32; DATA_POINTS], position: DATA_POINTS-1, cpu_usage_u64: [0u64; DATA_POINTS] } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/cpu.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | let data: Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] 35 | data = self.cpu_usage.iter().map(|v| *v as u64).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `data` here [INFO] [stdout] | [INFO] [stdout] 34 ~ [INFO] [stdout] 35 ~ let data: Vec = self.cpu_usage.iter().map(|v| *v as u64).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu.rs:82:3 [INFO] [stdout] | [INFO] [stdout] 82 | return cpu_graph [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 82 - return cpu_graph [INFO] [stdout] 82 + cpu_graph [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/cpu.rs:62:3 [INFO] [stdout] | [INFO] [stdout] 62 | let data: &[u64]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 69 | data = app_state.cpu.cpus[0].cpu_usage_u64.as_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `data` here [INFO] [stdout] | [INFO] [stdout] 62 ~ [INFO] [stdout] 63 | // app_state.cpu.add_datapoint(); [INFO] [stdout] ... [INFO] [stdout] 68 | app_state.cpu.cpus[0].get_cpu_usage_u64(); [INFO] [stdout] 69 ~ let data: &[u64] = app_state.cpu.cpus[0].cpu_usage_u64.as_slice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/processes.rs:28:50 [INFO] [stdout] | [INFO] [stdout] 28 | let mut process_list: Vec<&sysinfo::Process> = system.processes().iter().map(|(_, proc)| proc).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `system.processes().values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `BtopState` [INFO] [stdout] --> src/main.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub fn new() -> BtopState { [INFO] [stdout] 36 | | let enabled = FeaturesEnabled{cpu: true, memory: true, disk: true, network: true, processes: true}; [INFO] [stdout] 37 | | let cpu = cpu::load_cpus(); [INFO] [stdout] 38 | | let processes = processes::ProcessState::new(); [INFO] [stdout] ... | [INFO] [stdout] 41 | | BtopState { enabled, cpu, processes, next_draw_time, refresh_time: 600, disk } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 34 + impl Default for BtopState { [INFO] [stdout] 35 + fn default() -> Self { [INFO] [stdout] 36 + Self::new() [INFO] [stdout] 37 + } [INFO] [stdout] 38 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 73 | if !draw_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `draw_result.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `error` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:104:61 [INFO] [stdout] | [INFO] [stdout] 103 | if error.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = error` [INFO] [stdout] 104 | let message = format!("Failed to draw frame: {}\n", error.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/main.rs:160:43 [INFO] [stdout] | [INFO] [stdout] 160 | app_state.refresh_time.sub_assign(value.abs() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace with: `value.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `disk` [INFO] [stdout] --> src/disk.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | for disk in sys.disks() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_disk` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `block` [INFO] [stdout] --> src/disk.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | let block = tui::widgets::Block::default() [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_block` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chart` [INFO] [stdout] --> src/disk.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | let chart = BarChart::default(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_chart` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app_state` [INFO] [stdout] --> src/main.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 50 | let app_state = BtopState::new(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled`, `processes`, and `disk` are never read [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct BtopState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 17 | enabled: FeaturesEnabled, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 18 | cpu: cpu::CpuCores, [INFO] [stdout] 19 | processes: processes::ProcessState, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 20 | // memory: [INFO] [stdout] 21 | disk: disk::DiskState, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cpu`, `memory`, `disk`, `network`, and `processes` are never read [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | struct FeaturesEnabled { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 27 | cpu: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] 28 | memory: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 29 | disk: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] 30 | network: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 31 | processes: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disable_cpu` is never used [INFO] [stdout] --> src/main.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 34 | impl BtopState { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | fn disable_cpu(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `disks` is never read [INFO] [stdout] --> src/disk.rs:6:3 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DiskState { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 6 | disks: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `available`, and `capacity` are never read [INFO] [stdout] --> src/disk.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 9 | struct Disk { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 10 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 11 | available: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | capacity: u64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_disk_block` is never used [INFO] [stdout] --> src/disk.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn get_disk_block() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `table` is never read [INFO] [stdout] --> src/processes.rs:7:3 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct ProcessState { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 7 | table: TableState, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | return CpuData{ cpu_usage: [0f32; DATA_POINTS], position: DATA_POINTS-1, cpu_usage_u64: [0u64; DATA_POINTS] }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return CpuData{ cpu_usage: [0f32; DATA_POINTS], position: DATA_POINTS-1, cpu_usage_u64: [0u64; DATA_POINTS] }; [INFO] [stdout] 30 + CpuData{ cpu_usage: [0f32; DATA_POINTS], position: DATA_POINTS-1, cpu_usage_u64: [0u64; DATA_POINTS] } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/cpu.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | let data: Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] 35 | data = self.cpu_usage.iter().map(|v| *v as u64).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `data` here [INFO] [stdout] | [INFO] [stdout] 34 ~ [INFO] [stdout] 35 ~ let data: Vec = self.cpu_usage.iter().map(|v| *v as u64).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cpu.rs:82:3 [INFO] [stdout] | [INFO] [stdout] 82 | return cpu_graph [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 82 - return cpu_graph [INFO] [stdout] 82 + cpu_graph [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/cpu.rs:62:3 [INFO] [stdout] | [INFO] [stdout] 62 | let data: &[u64]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] ... [INFO] [stdout] 69 | data = app_state.cpu.cpus[0].cpu_usage_u64.as_slice(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `data` here [INFO] [stdout] | [INFO] [stdout] 62 ~ [INFO] [stdout] 63 | // app_state.cpu.add_datapoint(); [INFO] [stdout] ... [INFO] [stdout] 68 | app_state.cpu.cpus[0].get_cpu_usage_u64(); [INFO] [stdout] 69 ~ let data: &[u64] = app_state.cpu.cpus[0].cpu_usage_u64.as_slice(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> src/processes.rs:28:50 [INFO] [stdout] | [INFO] [stdout] 28 | let mut process_list: Vec<&sysinfo::Process> = system.processes().iter().map(|(_, proc)| proc).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `system.processes().values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `BtopState` [INFO] [stdout] --> src/main.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | / pub fn new() -> BtopState { [INFO] [stdout] 36 | | let enabled = FeaturesEnabled{cpu: true, memory: true, disk: true, network: true, processes: true}; [INFO] [stdout] 37 | | let cpu = cpu::load_cpus(); [INFO] [stdout] 38 | | let processes = processes::ProcessState::new(); [INFO] [stdout] ... | [INFO] [stdout] 41 | | BtopState { enabled, cpu, processes, next_draw_time, refresh_time: 600, disk } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 34 + impl Default for BtopState { [INFO] [stdout] 35 + fn default() -> Self { [INFO] [stdout] 36 + Self::new() [INFO] [stdout] 37 + } [INFO] [stdout] 38 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 73 | if !draw_result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `draw_result.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `error` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:104:61 [INFO] [stdout] | [INFO] [stdout] 103 | if error.is_some() { [INFO] [stdout] | ------------------ help: try: `if let Some() = error` [INFO] [stdout] 104 | let message = format!("Failed to draw frame: {}\n", error.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting the result of `i32::abs()` to u32 [INFO] [stdout] --> src/main.rs:160:43 [INFO] [stdout] | [INFO] [stdout] 160 | app_state.refresh_time.sub_assign(value.abs() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace with: `value.unsigned_abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_abs_to_unsigned [INFO] [stdout] = note: `#[warn(clippy::cast_abs_to_unsigned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.28s [INFO] running `Command { std: "docker" "inspect" "60f25d3f3d7ffff05c8fa8aaacf9f62326c9445166ca22d7a56374b697b656fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "60f25d3f3d7ffff05c8fa8aaacf9f62326c9445166ca22d7a56374b697b656fe", kill_on_drop: false }` [INFO] [stdout] 60f25d3f3d7ffff05c8fa8aaacf9f62326c9445166ca22d7a56374b697b656fe