[INFO] cloning repository https://github.com/all-green1/food_agent
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/all-green1/food_agent" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fall-green1%2Ffood_agent", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fall-green1%2Ffood_agent'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 08a878b8174ff34d4649ad63b29e3dd59d291720
[INFO] checking all-green1/food_agent against 8773d2c75a8e90130dcce745a7ec4e66bb9963db+rustflags=-Aunfulfilled-lint-expectations for pr-163637
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fall-green1%2Ffood_agent" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/all-green1/food_agent
[INFO] finished tweaking git repo https://github.com/all-green1/food_agent
[INFO] tweaked toml for git repo https://github.com/all-green1/food_agent written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/all-green1/food_agent on toolchain 8773d2c75a8e90130dcce745a7ec4e66bb9963db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8773d2c75a8e90130dcce745a7ec4e66bb9963db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/all-green1/food_agent 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" "+8773d2c75a8e90130dcce745a7ec4e66bb9963db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `5.0.4+20210325` for dependency `google-calendar3` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `food_agent` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded unindent v0.1.11
[INFO] [stderr]   Downloaded pyo3-macros v0.19.2
[INFO] [stderr]   Downloaded windows-strings v0.4.0
[INFO] [stderr]   Downloaded mysql-common-derive v0.32.1
[INFO] [stderr]   Downloaded saturating v0.1.0
[INFO] [stderr]   Downloaded bufstream v0.1.4
[INFO] [stderr]   Downloaded io-enum v1.2.0
[INFO] [stderr]   Downloaded windows-result v0.3.2
[INFO] [stderr]   Downloaded derive_utils v0.15.0
[INFO] [stderr]   Downloaded indoc v1.0.9
[INFO] [stderr]   Downloaded named_pipe v0.4.1
[INFO] [stderr]   Downloaded lru v0.12.5
[INFO] [stderr]   Downloaded btoi v0.4.3
[INFO] [stderr]   Downloaded socket2 v0.5.9
[INFO] [stderr]   Downloaded pyo3-build-config v0.19.2
[INFO] [stderr]   Downloaded hyper-rustls v0.25.0
[INFO] [stderr]   Downloaded rustls-native-certs v0.7.3
[INFO] [stderr]   Downloaded icu_locid_transform_data v1.5.1
[INFO] [stderr]   Downloaded subprocess v0.2.9
[INFO] [stderr]   Downloaded twox-hash v2.1.0
[INFO] [stderr]   Downloaded windows-core v0.61.0
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.19.2
[INFO] [stderr]   Downloaded google-apis-common v6.0.4
[INFO] [stderr]   Downloaded icu_normalizer_data v1.5.1
[INFO] [stderr]   Downloaded google-calendar3 v5.0.5+20240328
[INFO] [stderr]   Downloaded yup-oauth2 v9.0.0
[INFO] [stderr]   Downloaded pyo3-ffi v0.19.2
[INFO] [stderr]   Downloaded mysql v26.0.0
[INFO] [stderr]   Downloaded cc v1.2.21
[INFO] [stderr]   Downloaded mysql_common v0.34.1
[INFO] [stderr]   Downloaded pyo3 v0.19.2
[INFO] [stderr]   Downloaded icu_properties_data v1.5.1
[INFO] [stderr]   Downloaded tokio v1.44.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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] f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a
[INFO] running `Command { std: "docker" "start" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a", 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" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a" "/opt/rustwide/cargo-home/bin/cargo" "+8773d2c75a8e90130dcce745a7ec4e66bb9963db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a", 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 -Aunfulfilled-lint-expectations" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a" "/opt/rustwide/cargo-home/bin/cargo" "+8773d2c75a8e90130dcce745a7ec4e66bb9963db" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: version requirement `5.0.4+20210325` for dependency `google-calendar3` includes semver metadata which will be ignored, removing the metadata is recommended to avoid confusion
[INFO] [stderr] warning: `food_agent` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]     Checking rustls-pki-types v1.11.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling rustls v0.22.4
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling winnow v0.7.10
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling toml_datetime v0.6.9
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking rustls-native-certs v0.7.3
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]     Checking time-core v0.1.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]    Compiling pyo3-build-config v0.19.2
[INFO] [stderr]     Checking matches v0.1.10
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling subprocess v0.2.9
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]     Checking seahash v4.1.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]    Compiling cc v1.2.21
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking btoi v0.4.3
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]    Compiling mysql v26.0.0
[INFO] [stderr]     Checking saturating v0.1.0
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking pem v3.0.5
[INFO] [stderr]     Checking rustls-native-certs v0.6.3
[INFO] [stderr]     Checking twox-hash v2.1.0
[INFO] [stderr]     Checking unindent v0.1.11
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking bufstream v0.1.4
[INFO] [stderr]    Compiling indoc v1.0.9
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]    Compiling toml_edit v0.22.26
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]    Compiling mysql_common v0.34.1
[INFO] [stderr]    Compiling pyo3-ffi v0.19.2
[INFO] [stderr]    Compiling pyo3 v0.19.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]    Compiling derive_utils v0.15.0
[INFO] [stderr]    Compiling pyo3-macros-backend v0.19.2
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling io-enum v1.2.0
[INFO] [stderr]     Checking tokio v1.44.2
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]    Compiling pyo3-macros v0.19.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling serde_with_macros v3.12.0
[INFO] [stderr]    Compiling mysql-common-derive v0.32.1
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-rustls v0.25.0
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking serde_with v3.12.0
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-rustls v0.25.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking yup-oauth2 v9.0.0
[INFO] [stderr]     Checking google-apis-common v6.0.4
[INFO] [stderr]     Checking google-calendar3 v5.0.5+20240328
[INFO] [stderr]     Checking food_agent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `Breakfast_cereal` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Breakfast_cereal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BreakfastCereal`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Non_dairy` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Non_dairy,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `NonDairy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Edible_oils` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Edible_oils,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EdibleOils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Minerals_and_vitamins` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Minerals_and_vitamins,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `MineralsAndVitamins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/storage.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[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 imports: `FoodType` and `StorageType`
[INFO] [stdout]  --> src/storage.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::{FoodStock, FoodType, StorageType, Unit};
[INFO] [stdout]   |                                ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dotenvy::dotenv`
[INFO] [stdout]  --> src/storage.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use dotenvy::dotenv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/storage.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/storage.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |           ///Create a table if it does not currently exist
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 | /         conn.exec_drop(
[INFO] [stdout] 61 | |             r"CREATE TABLE IF NOT EXISTS food_stock (
[INFO] [stdout] 62 | |                 id INT AUTO_INCREMENT PRIMARY KEY,
[INFO] [stdout] 63 | |                 name VARCHAR(50) NOT NULL,
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |             (),
[INFO] [stdout] 73 | |         )?;
[INFO] [stdout]    | |__________- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDate`
[INFO] [stdout]  --> src/reminder.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{Duration, Utc, TimeZone, NaiveDate, DateTime};
[INFO] [stdout]   |                                       ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FoodType`, `MajorNutrient`, and `StorageType`
[INFO] [stdout]  --> src/reminder.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{FoodStock, FoodType, StorageType, Unit, MajorNutrient};
[INFO] [stdout]   |                                ^^^^^^^^  ^^^^^^^^^^^        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Breakfast_cereal` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Breakfast_cereal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BreakfastCereal`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Non_dairy` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     Non_dairy,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `NonDairy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Edible_oils` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Edible_oils,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `EdibleOils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Minerals_and_vitamins` should have an upper camel case name
[INFO] [stdout]   --> src/models.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Minerals_and_vitamins,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `MineralsAndVitamins`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/storage.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[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 imports: `FoodType` and `StorageType`
[INFO] [stdout]  --> src/storage.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::models::{FoodStock, FoodType, StorageType, Unit};
[INFO] [stdout]   |                                ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dotenvy::dotenv`
[INFO] [stdout]  --> src/storage.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use dotenvy::dotenv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/storage.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/storage.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |           ///Create a table if it does not currently exist
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 | /         conn.exec_drop(
[INFO] [stdout] 61 | |             r"CREATE TABLE IF NOT EXISTS food_stock (
[INFO] [stdout] 62 | |                 id INT AUTO_INCREMENT PRIMARY KEY,
[INFO] [stdout] 63 | |                 name VARCHAR(50) NOT NULL,
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |             (),
[INFO] [stdout] 73 | |         )?;
[INFO] [stdout]    | |__________- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `NaiveDate`
[INFO] [stdout]  --> src/reminder.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{Duration, Utc, TimeZone, NaiveDate, DateTime};
[INFO] [stdout]   |                                       ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FoodType`, `MajorNutrient`, and `StorageType`
[INFO] [stdout]  --> src/reminder.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::models::{FoodStock, FoodType, StorageType, Unit, MajorNutrient};
[INFO] [stdout]   |                                ^^^^^^^^  ^^^^^^^^^^^        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::from_utc_date`: use `from_utc_datetime()` instead
[INFO] [stdout]    --> src/reminder.rs:140:29
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let reminder_date = Utc.from_utc_date(&food.expiry_date).and_hms_opt(9, 0, 0).unwrap();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::from_utc_date`: use `from_utc_datetime()` instead
[INFO] [stdout]    --> src/reminder.rs:140:29
[INFO] [stdout]     |
[INFO] [stdout] 140 |     let reminder_date = Utc.from_utc_date(&food.expiry_date).and_hms_opt(9, 0, 0).unwrap();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::from_utc_date`: use `from_utc_datetime()` instead
[INFO] [stdout]   --> src/reminder.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let reminder_datetime = Utc.from_utc_date(&reminder_date).and_hms_opt(9, 0, 0).unwrap();
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::from_utc_date`: use `from_utc_datetime()` instead
[INFO] [stdout]   --> src/reminder.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let reminder_datetime = Utc.from_utc_date(&reminder_date).and_hms_opt(9, 0, 0).unwrap();
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_data`
[INFO] [stdout]   --> src/reminder.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let token_data = match token_data {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token_data`
[INFO] [stdout]   --> src/reminder.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let token_data = match token_data {
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_token_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Water` is never constructed
[INFO] [stdout]   --> src/models.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum MajorNutrient {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 73 |     Water,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MajorNutrient` has derived impls for the traits `Clone` and `Debug`, but these are 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: method `estimate_expiry` is never used
[INFO] [stdout]    --> src/models.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl FoodStock {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn estimate_expiry(&self) -> NaiveDate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stock_date` and `nutrient` are never read
[INFO] [stdout]   --> src/storage.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SearchResult {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 30 |     pub name: String,
[INFO] [stdout] 31 |     pub stock_date: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 32 |     pub food_type: String,
[INFO] [stdout] 33 |     pub nutrient: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_query_to_date` is never used
[INFO] [stdout]    --> src/storage.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn parse_query_to_date(query: &str) -> Result<NaiveDate, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 28 | impl PyCommandHandler {
[INFO] [stdout]    |      ----------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyCommandHandler` is not local
[INFO] [stdout]    |      `PyCommandHandler` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Water` is never constructed
[INFO] [stdout]   --> src/models.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum MajorNutrient {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 73 |     Water,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MajorNutrient` has derived impls for the traits `Clone` and `Debug`, but these are 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: method `estimate_expiry` is never used
[INFO] [stdout]    --> src/models.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl FoodStock {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn estimate_expiry(&self) -> NaiveDate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stock_date` and `nutrient` are never read
[INFO] [stdout]   --> src/storage.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SearchResult {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 30 |     pub name: String,
[INFO] [stdout] 31 |     pub stock_date: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 32 |     pub food_type: String,
[INFO] [stdout] 33 |     pub nutrient: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SearchResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_query_to_date` is never used
[INFO] [stdout]    --> src/storage.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn parse_query_to_date(query: &str) -> Result<NaiveDate, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/lib.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[pymethods]
[INFO] [stdout]    | -^^^^^^^^^^^
[INFO] [stdout]    | |
[INFO] [stdout]    | `PyClassImplCollector` is not local
[INFO] [stdout]    | `PyClassNewTextSignature` is not local
[INFO] [stdout]    | move the `impl` block outside of this function `trampoline` and up 4 bodies
[INFO] [stdout] 28 | impl PyCommandHandler {
[INFO] [stdout]    |      ----------------
[INFO] [stdout]    |      |
[INFO] [stdout]    |      `PyCommandHandler` is not local
[INFO] [stdout]    |      `PyCommandHandler` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.06s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a", kill_on_drop: false }`
[INFO] [stdout] f11b95425fa958cf906c628e33cc5a905f0e269de68e9781d212f4368f13215a
