[INFO] cloning repository https://github.com/KUZMINRAPR/todo [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KUZMINRAPR/todo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKUZMINRAPR%2Ftodo", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKUZMINRAPR%2Ftodo'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d2ca4ad8e181aad30448a28a94bf14a7c854ba04 [INFO] checking KUZMINRAPR/todo against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKUZMINRAPR%2Ftodo" "/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/KUZMINRAPR/todo [INFO] finished tweaking git repo https://github.com/KUZMINRAPR/todo [INFO] tweaked toml for git repo https://github.com/KUZMINRAPR/todo written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/KUZMINRAPR/todo on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/KUZMINRAPR/todo 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tokio-macros v2.3.0 [INFO] [stderr] Downloaded postgres-types v0.2.6 [INFO] [stderr] Downloaded sha2 v0.10.8 [INFO] [stderr] Downloaded cpufeatures v0.2.12 [INFO] [stderr] Downloaded futures-macro v0.3.30 [INFO] [stderr] Downloaded tokio-postgres v0.7.10 [INFO] [stderr] Downloaded whoami v1.5.1 [INFO] [stderr] Downloaded futures-task v0.3.30 [INFO] [stderr] Downloaded lru v0.12.3 [INFO] [stderr] Downloaded futures-sink v0.3.30 [INFO] [stderr] Downloaded castaway v0.2.3 [INFO] [stderr] Downloaded rustc-demangle v0.1.24 [INFO] [stderr] Downloaded stability v0.2.1 [INFO] [stderr] Downloaded addr2line v0.22.0 [INFO] [stderr] Downloaded unicode-truncate v1.0.0 [INFO] [stderr] Downloaded compact_str v0.7.1 [INFO] [stderr] Downloaded syn v2.0.68 [INFO] [stderr] Downloaded phf_shared v0.11.2 [INFO] [stderr] Downloaded async-trait v0.1.80 [INFO] [stderr] Downloaded socket2 v0.5.7 [INFO] [stderr] Downloaded futures-channel v0.3.30 [INFO] [stderr] Downloaded rustversion v1.0.17 [INFO] [stderr] Downloaded backtrace v0.3.73 [INFO] [stderr] Downloaded tinyvec v1.6.1 [INFO] [stderr] Downloaded phf v0.11.2 [INFO] [stderr] Downloaded tempfile v3.10.1 [INFO] [stderr] Downloaded encode_unicode v0.3.6 [INFO] [stderr] Downloaded tokio-util v0.7.11 [INFO] [stderr] Downloaded cc v1.0.104 [INFO] [stderr] Downloaded postgres-protocol v0.6.6 [INFO] [stderr] Downloaded unicode-properties v0.1.1 [INFO] [stderr] Downloaded console v0.15.8 [INFO] [stderr] Downloaded unicode-normalization v0.1.23 [INFO] [stderr] Downloaded futures-util v0.3.30 [INFO] [stderr] Downloaded object v0.36.1 [INFO] [stderr] Downloaded gimli v0.29.0 [INFO] [stderr] Downloaded tokio v1.38.0 [INFO] [stderr] Downloaded ratatui v0.27.0 [INFO] [stderr] Downloaded shell-words v1.1.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23 [INFO] running `Command { std: "docker" "start" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Checking tinyvec v1.6.1 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking cpufeatures v0.2.12 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Checking unicode-properties v0.1.1 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking siphasher v0.3.11 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Checking phf_shared v0.11.2 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking castaway v0.2.3 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking compact_str v0.7.1 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Checking console v0.15.8 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking whoami v1.5.1 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling syn v2.0.68 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking lru v0.12.3 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Checking unicode-truncate v1.0.0 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking postgres-protocol v0.6.6 [INFO] [stderr] Checking postgres-types v0.2.6 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling async-trait v0.1.80 [INFO] [stderr] Compiling stability v0.2.1 [INFO] [stderr] Checking tokio v1.38.0 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking dialoguer v0.11.0 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking ratatui v0.27.0 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking tokio-postgres v0.7.10 [INFO] [stderr] Checking todo_list v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Stdout` [INFO] [stdout] --> src/main.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{self, stdout, Stdout}; [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: `dialoguer::Error` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use dialoguer::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ratatui::crossterm::event::MouseEvent` [INFO] [stdout] --> src/todo.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use ratatui::crossterm::event::MouseEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_postgres::Client` [INFO] [stdout] --> src/todo.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio_postgres::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::database` [INFO] [stdout] --> src/todo.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::database; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/todo/task.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Line` [INFO] [stdout] --> src/todo/task.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use ratatui::text::{Line, Text}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Block`, `ListState`, and `List` [INFO] [stdout] --> src/console.rs:5:24 [INFO] [stdout] | [INFO] [stdout] 5 | use ratatui::widgets::{Block, List, ListState}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ratatui::prelude::Text` [INFO] [stdout] --> src/console.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::prelude::Text; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/console.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | if (key.kind != KeyEventKind::Press) {return}; [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] 23 - if (key.kind != KeyEventKind::Press) {return}; [INFO] [stdout] 23 + if key.kind != KeyEventKind::Press {return}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::todo::task::Task` [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::todo::task::Task; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Stdout` [INFO] [stdout] --> src/main.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{self, stdout, Stdout}; [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: `dialoguer::Error` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use dialoguer::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ratatui::crossterm::event::MouseEvent` [INFO] [stdout] --> src/todo.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use ratatui::crossterm::event::MouseEvent; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_postgres::Client` [INFO] [stdout] --> src/todo.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio_postgres::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::database` [INFO] [stdout] --> src/todo.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::database; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/todo/task.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Line` [INFO] [stdout] --> src/todo/task.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | use ratatui::text::{Line, Text}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Block`, `ListState`, and `List` [INFO] [stdout] --> src/console.rs:5:24 [INFO] [stdout] | [INFO] [stdout] 5 | use ratatui::widgets::{Block, List, ListState}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ratatui::prelude::Text` [INFO] [stdout] --> src/console.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use ratatui::prelude::Text; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/console.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | if (key.kind != KeyEventKind::Press) {return}; [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] 23 - if (key.kind != KeyEventKind::Press) {return}; [INFO] [stdout] 23 + if key.kind != KeyEventKind::Press {return}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::todo::task::Task` [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::todo::task::Task; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp` [INFO] [stdout] --> src/todo.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | let temp = db.remove_task(&self.tasks[i]).await; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_temp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/todo.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | fn render(mut self, area: Rect, buf: &mut Buffer) [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: type `Database` is more private than the item `Todo::get_from_db` [INFO] [stdout] --> src/todo.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub async fn get_from_db(&mut self, db: &Database) -> Result<(), tokio_postgres::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::get_from_db` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::add_task` [INFO] [stdout] --> src/todo.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub async fn add_task(&mut self, text: &String, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::add_task` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::edit_task` [INFO] [stdout] --> src/todo.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub async fn edit_task(&mut self,task: &Task,status: bool, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::edit_task` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::remove_task` [INFO] [stdout] --> src/todo.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub async fn remove_task(&mut self, task: &Task, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::remove_task` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::clear` [INFO] [stdout] --> src/todo.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub async fn clear(&mut self, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::clear` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::switch_status` [INFO] [stdout] --> src/todo.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | pub async fn switch_status(&mut self, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::switch_status` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | todo.get_from_db(&db).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 _unused = ...` to ignore the resulting value without dropping it immediately [INFO] [stdout] | [INFO] [stdout] 47 | let _unused = todo.get_from_db(&db).await; [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | console::write_to_terminal(terminal, todo, &db).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] 49 | let _ = console::write_to_terminal(terminal, todo, &db).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/todo.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | db.update_task(&self.tasks[i]).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately [INFO] [stdout] | [INFO] [stdout] 107 | let _unused = db.update_task(&self.tasks[i]).await; [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp` [INFO] [stdout] --> src/todo.rs:70:21 [INFO] [stdout] | [INFO] [stdout] 70 | let temp = db.remove_task(&self.tasks[i]).await; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_temp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/todo.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | fn render(mut self, area: Rect, buf: &mut Buffer) [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: type `Database` is more private than the item `Todo::get_from_db` [INFO] [stdout] --> src/todo.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub async fn get_from_db(&mut self, db: &Database) -> Result<(), tokio_postgres::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::get_from_db` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::add_task` [INFO] [stdout] --> src/todo.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub async fn add_task(&mut self, text: &String, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::add_task` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::edit_task` [INFO] [stdout] --> src/todo.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub async fn edit_task(&mut self,task: &Task,status: bool, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::edit_task` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::remove_task` [INFO] [stdout] --> src/todo.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub async fn remove_task(&mut self, task: &Task, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::remove_task` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::clear` [INFO] [stdout] --> src/todo.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub async fn clear(&mut self, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::clear` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Database` is more private than the item `Todo::switch_status` [INFO] [stdout] --> src/todo.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | pub async fn switch_status(&mut self, db: &Database) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Todo::switch_status` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `Database` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/database.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) struct Database{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | todo.get_from_db(&db).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 _unused = ...` to ignore the resulting value without dropping it immediately [INFO] [stdout] | [INFO] [stdout] 47 | let _unused = todo.get_from_db(&db).await; [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | console::write_to_terminal(terminal, todo, &db).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] 49 | let _ = console::write_to_terminal(terminal, todo, &db).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/todo.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | db.update_task(&self.tasks[i]).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately [INFO] [stdout] | [INFO] [stdout] 107 | let _unused = db.update_task(&self.tasks[i]).await; [INFO] [stdout] | +++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.11s [INFO] running `Command { std: "docker" "inspect" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23", kill_on_drop: false }` [INFO] [stdout] e7ed35f0a52fe5ee519fe8ef299c5023c84ccfbe2bf8345ece56c4c31be27c23