[INFO] cloning repository https://github.com/averrows/habit-tracker
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/averrows/habit-tracker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faverrows%2Fhabit-tracker", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faverrows%2Fhabit-tracker'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4ac31ea9ee3e73f59f5370c4cc408edcdbdf9469
[INFO] checking averrows/habit-tracker against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faverrows%2Fhabit-tracker" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/averrows/habit-tracker
[INFO] finished tweaking git repo https://github.com/averrows/habit-tracker
[INFO] tweaked toml for git repo https://github.com/averrows/habit-tracker written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/averrows/habit-tracker on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/averrows/habit-tracker 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bitflags v2.2.1
[INFO] [stderr]   Downloaded rusqlite v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a95c2a24b4c2a067565c392a197631c99bddf570c4c404e375622387b62e613c
[INFO] running `Command { std: "docker" "start" "-a" "a95c2a24b4c2a067565c392a197631c99bddf570c4c404e375622387b62e613c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a95c2a24b4c2a067565c392a197631c99bddf570c4c404e375622387b62e613c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a95c2a24b4c2a067565c392a197631c99bddf570c4c404e375622387b62e613c", kill_on_drop: false }`
[INFO] [stdout] a95c2a24b4c2a067565c392a197631c99bddf570c4c404e375622387b62e613c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1a2368c294e62fec72903bd666312f15633331f30df3f9561994c841e6bd2d0c
[INFO] running `Command { std: "docker" "start" "-a" "1a2368c294e62fec72903bd666312f15633331f30df3f9561994c841e6bd2d0c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.144
[INFO] [stderr]    Compiling parking_lot_core v0.9.7
[INFO] [stderr]    Compiling signal-hook v0.3.15
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]     Checking once_cell v1.17.1
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking bitflags v2.2.1
[INFO] [stderr]     Checking iana-time-zone v0.1.56
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking mio v0.8.6
[INFO] [stderr]     Checking getrandom v0.2.9
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking ahash v0.7.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.3
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking chrono v0.4.24
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking crossterm v0.26.1
[INFO] [stderr]     Checking hashlink v0.8.1
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stderr]     Checking tui v0.19.0
[INFO] [stderr]     Checking habits-tracker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, and `self`
[INFO] [stdout]  --> src/pages/login_page.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{Event, self, KeyCode};
[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: `Text`
[INFO] [stdout]  --> src/pages/home_page.rs:1:97
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tui::{backend::Backend, Frame, widgets::{Paragraph, Block, Borders, ListItem, List}, text::{Text, Span, Spans}, style::{Style, Mo...
[INFO] [stdout]   |                                                                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error`, `thread`, and `time::Duration`
[INFO] [stdout]  --> src/main.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{io::{self, Stdout}, thread, time::Duration, path::Path, fs::File, error::Error, str::FromStr};
[INFO] [stdout]   |                               ^^^^^^  ^^^^^^^^^^^^^^                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EnableMouseCapture` and `KeyEvent`
[INFO] [stdout]  --> src/main.rs:5:171
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...ecute, event::{DisableMouseCapture, Event, KeyEvent, KeyCode, self, EnableMouseCapture}};
[INFO] [stdout]   |                                               ^^^^^^^^                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `Borders`, `Constraint`, `Frame`, and `Layout`
[INFO] [stdout]  --> src/main.rs:8:69
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tui::{backend::{CrosstermBackend, Backend}, Terminal, widgets::{Block, Borders}, layout::{Layout, Constraint}, Frame};
[INFO] [stdout]   |                                                                     ^^^^^  ^^^^^^^            ^^^^^^  ^^^^^^^^^^   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::habit::Habit`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::habit::Habit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::widgets::*`
[INFO] [stdout]   --> src/main.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub use tui::widgets::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Frame` and `backend::Backend`
[INFO] [stdout]   --> src/main.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub use tui::{backend::Backend, Frame};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, and `self`
[INFO] [stdout]  --> src/pages/login_page.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crossterm::event::{Event, self, KeyCode};
[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: `Text`
[INFO] [stdout]  --> src/pages/home_page.rs:1:97
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tui::{backend::Backend, Frame, widgets::{Paragraph, Block, Borders, ListItem, List}, text::{Text, Span, Spans}, style::{Style, Mo...
[INFO] [stdout]   |                                                                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::Error`, `thread`, and `time::Duration`
[INFO] [stdout]  --> src/main.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{io::{self, Stdout}, thread, time::Duration, path::Path, fs::File, error::Error, str::FromStr};
[INFO] [stdout]   |                               ^^^^^^  ^^^^^^^^^^^^^^                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EnableMouseCapture` and `KeyEvent`
[INFO] [stdout]  --> src/main.rs:5:171
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...ecute, event::{DisableMouseCapture, Event, KeyEvent, KeyCode, self, EnableMouseCapture}};
[INFO] [stdout]   |                                               ^^^^^^^^                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Block`, `Borders`, `Constraint`, `Frame`, and `Layout`
[INFO] [stdout]  --> src/main.rs:8:69
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tui::{backend::{CrosstermBackend, Backend}, Terminal, widgets::{Block, Borders}, layout::{Layout, Constraint}, Frame};
[INFO] [stdout]   |                                                                     ^^^^^  ^^^^^^^            ^^^^^^  ^^^^^^^^^^   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::habit::Habit`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::habit::Habit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tui::widgets::*`
[INFO] [stdout]   --> src/main.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub use tui::widgets::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Frame` and `backend::Backend`
[INFO] [stdout]   --> src/main.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub use tui::{backend::Backend, Frame};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 68 | /     loop {
[INFO] [stdout] 69 | |         terminal.draw(|f| {
[INFO] [stdout] 70 | |             match state.current_page {
[INFO] [stdout] 71 | |                 Pages::Login => {
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |         })?;
[INFO] [stdout] 80 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 81 |       disable_raw_mode()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 68 | /     loop {
[INFO] [stdout] 69 | |         terminal.draw(|f| {
[INFO] [stdout] 70 | |             match state.current_page {
[INFO] [stdout] 71 | |                 Pages::Login => {
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |         })?;
[INFO] [stdout] 80 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 81 |       disable_raw_mode()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Backend`
[INFO] [stdout]  --> src/main.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tui::{backend::{CrosstermBackend, Backend}, Terminal, widgets::{Block, Borders}, layout::{Layout, Constraint}, Frame};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Backend`
[INFO] [stdout]  --> src/main.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tui::{backend::{CrosstermBackend, Backend}, Terminal, widgets::{Block, Borders}, layout::{Layout, Constraint}, Frame};
[INFO] [stdout]   |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 _ => {}
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 Pages::Login => {
[INFO] [stdout]    |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 74 |                 Pages::Home => {
[INFO] [stdout]    |                 ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 77 |                 _ => {}
[INFO] [stdout]    |                 ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 _ => {}
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 Pages::Login => {
[INFO] [stdout]    |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 74 |                 Pages::Home => {
[INFO] [stdout]    |                 ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 77 |                 _ => {}
[INFO] [stdout]    |                 ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:105:6
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut terminal: Terminal<CrosstermBackend<&mut io::Stdout>> = Terminal::new(backend)?;
[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: fields `start`, `duration`, `is_good`, and `daily_status` are never read
[INFO] [stdout]   --> src/habit.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Habit {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout]  8 |     pub name: String,
[INFO] [stdout]  9 |     pub start: DateTime<Local>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 10 |     pub description: String,
[INFO] [stdout] 11 |     pub duration: i32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub is_good: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 13 |     pub daily_status: Vec<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Habit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `save`, and `create_table` are never used
[INFO] [stdout]   --> src/habit.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Habit {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 29 |   pub fn new(name: &str, description: &str, duration: i32, is_good: bool) -> Habit {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn save(&self, conn: &mut Connection) -> Result<(),rusqlite::Error> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |   fn create_table(&self, conn: &mut Connection) -> Result<(), rusqlite::Error>{
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:105:6
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut terminal: Terminal<CrosstermBackend<&mut io::Stdout>> = Terminal::new(backend)?;
[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: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     pages::login_page::login_page(f, &mut state);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let _ = pages::login_page::login_page(f, &mut state);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start`, `duration`, `is_good`, and `daily_status` are never read
[INFO] [stdout]   --> src/habit.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Habit {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout]  8 |     pub name: String,
[INFO] [stdout]  9 |     pub start: DateTime<Local>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 10 |     pub description: String,
[INFO] [stdout] 11 |     pub duration: i32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub is_good: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 13 |     pub daily_status: Vec<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Habit` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `save`, and `create_table` are never used
[INFO] [stdout]   --> src/habit.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Habit {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 29 |   pub fn new(name: &str, description: &str, duration: i32, is_good: bool) -> Habit {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |   pub fn save(&self, conn: &mut Connection) -> Result<(),rusqlite::Error> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |   fn create_table(&self, conn: &mut Connection) -> Result<(), rusqlite::Error>{
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     pages::login_page::login_page(f, &mut state);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let _ = pages::login_page::login_page(f, &mut state);
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.38s
[INFO] running `Command { std: "docker" "inspect" "1a2368c294e62fec72903bd666312f15633331f30df3f9561994c841e6bd2d0c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a2368c294e62fec72903bd666312f15633331f30df3f9561994c841e6bd2d0c", kill_on_drop: false }`
[INFO] [stdout] 1a2368c294e62fec72903bd666312f15633331f30df3f9561994c841e6bd2d0c
