[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
