[INFO] cloning repository https://github.com/Tarjei400/github-notifier
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Tarjei400/github-notifier" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTarjei400%2Fgithub-notifier", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTarjei400%2Fgithub-notifier'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 77e0c24a43bf7b8e37beb6bbea9c78839e4bc093
[INFO] checking Tarjei400/github-notifier against try#48c9d93cf65d550d124c40108859fd993778c157 for pr-153692-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTarjei400%2Fgithub-notifier" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Tarjei400/github-notifier
[INFO] finished tweaking git repo https://github.com/Tarjei400/github-notifier
[INFO] tweaked toml for git repo https://github.com/Tarjei400/github-notifier written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Tarjei400/github-notifier on toolchain 48c9d93cf65d550d124c40108859fd993778c157
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Tarjei400/github-notifier 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" "+48c9d93cf65d550d124c40108859fd993778c157" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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" "+48c9d93cf65d550d124c40108859fd993778c157" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a41be0541f7cca7b35d647a7eeb48f3472873d4bfaba76cf502ad9d22bd375d8
[INFO] running `Command { std: "docker" "start" "-a" "a41be0541f7cca7b35d647a7eeb48f3472873d4bfaba76cf502ad9d22bd375d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a41be0541f7cca7b35d647a7eeb48f3472873d4bfaba76cf502ad9d22bd375d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a41be0541f7cca7b35d647a7eeb48f3472873d4bfaba76cf502ad9d22bd375d8", kill_on_drop: false }`
[INFO] [stdout] a41be0541f7cca7b35d647a7eeb48f3472873d4bfaba76cf502ad9d22bd375d8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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" "+48c9d93cf65d550d124c40108859fd993778c157" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f8ae64acfdb8a354ba0e986ef516eacb09824833f6d873bd4033e6964ba2efed
[INFO] running `Command { std: "docker" "start" "-a" "f8ae64acfdb8a354ba0e986ef516eacb09824833f6d873bd4033e6964ba2efed", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling winnow v0.7.12
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling version-compare v0.2.0
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling target-lexicon v0.12.14
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling cc v1.2.17
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling target-lexicon v0.13.2
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling gio v0.18.4
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]     Checking miniz_oxide v0.8.5
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]     Checking rustls-pki-types v1.11.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling indexmap v2.8.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]    Compiling anyhow v1.0.93
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking flate2 v1.0.35
[INFO] [stderr]    Compiling cfg-expr v0.20.1
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling x11 v2.21.0
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]     Checking aligned-vec v0.5.0
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling rustls v0.23.25
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking async-lock v3.4.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking v_frame v0.3.8
[INFO] [stderr]    Compiling gtk v0.18.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling libxdo-sys v0.11.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking imgref v1.11.0
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking bitstream-io v2.6.0
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]     Checking avif-serialize v0.8.1
[INFO] [stderr]     Checking webpki-roots v0.26.8
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking bytemuck v1.22.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking rgb v0.8.50
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]     Checking image-webp v0.2.1
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking zune-jpeg v0.4.14
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking async-executor v1.13.1
[INFO] [stderr]     Checking av1-grain v0.2.3
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking libxdo v0.6.0
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking deranged v0.4.1
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking ureq-proto v0.3.5
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking num-conv v0.1.0
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[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 tracing-attributes v0.1.28
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling enumflags2_derive v0.7.11
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling profiling-procmacros v1.0.16
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking profiling v1.0.16
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]     Checking tokio v1.44.1
[INFO] [stderr]     Checking rustls-webpki v0.103.1
[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 tracing v0.1.41
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[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 icu_properties v1.5.1
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking tokio-rustls v0.26.2
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-util v0.7.14
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking enumflags2 v0.7.11
[INFO] [stderr]     Checking zvariant_utils v3.2.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking keyboard-types v0.7.0
[INFO] [stderr]     Checking hyper-util v0.1.11
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]     Checking ureq v3.0.10
[INFO] [stderr]    Compiling toml_edit v0.22.24
[INFO] [stderr]    Compiling toml_edit v0.20.7
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking hyper-rustls v0.27.5
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking ravif v0.11.10
[INFO] [stderr]     Checking image v0.25.4
[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 webbrowser v1.0.4
[INFO] [stderr]     Checking reqwest v0.12.15
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling proc-macro-crate v2.0.0
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]    Compiling gtk3-macros v0.18.2
[INFO] [stderr]    Compiling toml v0.8.19
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling system-deps v7.0.5
[INFO] [stderr]    Compiling zvariant_derive v5.6.0
[INFO] [stderr]    Compiling glib-macros v0.21.0
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]    Compiling glib-sys v0.21.0
[INFO] [stderr]    Compiling gobject-sys v0.21.0
[INFO] [stderr]    Compiling gio-sys v0.21.0
[INFO] [stderr]    Compiling zvariant v5.6.0
[INFO] [stderr]     Checking polling v3.7.4
[INFO] [stderr]     Checking async-io v2.4.0
[INFO] [stderr]     Checking async-signal v0.2.10
[INFO] [stderr]     Checking async-process v2.3.0
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]     Checking glib v0.21.0
[INFO] [stderr]     Checking zbus_names v4.2.0
[INFO] [stderr]    Compiling zbus_macros v5.9.0
[INFO] [stderr]     Checking libappindicator-sys v0.9.0
[INFO] [stderr]     Checking zbus v5.9.0
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking atk v0.18.2
[INFO] [stderr]     Checking notify-rust v4.11.6
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking gdk v0.18.2
[INFO] [stderr]     Checking libappindicator v0.9.0
[INFO] [stderr]     Checking muda v0.17.0
[INFO] [stderr]     Checking tray-icon v0.21.0
[INFO] [stderr]     Checking github-notifier v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]  --> src/notify/notify.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::Utc;
[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: `chrono::Utc`
[INFO] [stdout]  --> src/notify/notify.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::Utc;
[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: `TimeZone`
[INFO] [stdout]  --> src/notify/notify.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glib::{DateTime, TimeZone};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TimeZone`
[INFO] [stdout]  --> src/notify/notify.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glib::{DateTime, TimeZone};
[INFO] [stdout]   |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hint`
[INFO] [stdout]  --> src/notify/notify.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use notify_rust::{Hint, Notification, Timeout};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hint`
[INFO] [stdout]  --> src/notify/notify.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use notify_rust::{Hint, Notification, Timeout};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]   --> src/notify/snooze_notifications.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |             match (next_expiring) {
[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] 40 -             match (next_expiring) {
[INFO] [stdout] 40 +             match next_expiring  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/notify/tray.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gtk::prelude::SocketExtManual`
[INFO] [stdout]  --> src/notify/tray.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gtk::prelude::SocketExtManual;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]   --> src/notify/snooze_notifications.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |             match (next_expiring) {
[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] 40 -             match (next_expiring) {
[INFO] [stdout] 40 +             match next_expiring  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::yield_now`
[INFO] [stdout]  --> src/notify/tray.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::task::yield_now;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UnboundedReceiver`, `UnboundedSender`, and `unbounded_channel`
[INFO] [stdout]  --> src/notify/tray.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::notify::notify::NotificationType`
[INFO] [stdout]   --> src/notify/tray.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::notify::notify::NotificationType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/notify/tray.rs:180:36
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   if (action == "day") {
[INFO] [stdout]     |                          ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 -                                 if (action == "day") {
[INFO] [stdout] 180 +                                 if action == "day"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/notify/tray.rs:183:36
[INFO] [stdout]     |
[INFO] [stdout] 183 | ...                   if (action == "week") {
[INFO] [stdout]     |                          ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 183 -                                 if (action == "week") {
[INFO] [stdout] 183 +                                 if action == "week"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/notify/tray.rs:186:36
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   if (action == "month") {
[INFO] [stdout]     |                          ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 186 -                                 if (action == "month") {
[INFO] [stdout] 186 +                                 if action == "month"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/notify/notification_manager.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UnboundedReceiver` and `UnboundedSender`
[INFO] [stdout]  --> src/notify/notification_manager.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `save_last_check_time`
[INFO] [stdout]  --> src/notify/notification_manager.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{ensure_config_dir, load_last_check_time, save_last_check_time, to_offset_date_time, INTERVAL_SECONDS, INTERVAL_TO_NEXT_NO...
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/notify/notification_manager.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if(self.seen_notifications.len() >= 200){
[INFO] [stdout]    |           ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 38 -         if(self.seen_notifications.len() >= 200){
[INFO] [stdout] 38 +         if self.seen_notifications.len() >= 200 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/notify/notification_manager.rs:39:18
[INFO] [stdout]    |
[INFO] [stdout] 39 |             while(self.seen_notifications.len() >= 200){
[INFO] [stdout]    |                  ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -             while(self.seen_notifications.len() >= 200){
[INFO] [stdout] 39 +             while self.seen_notifications.len() >= 200 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/notify/notification_manager.rs:66:125
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let saved_since =  load_last_check_time(&last_check_time_file).unwrap_or_else(|_| Utc.timestamp_opt(0, 0).unwrap());;
[INFO] [stdout]    |                                                                                                                             ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/notify/tray.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gtk::prelude::SocketExtManual`
[INFO] [stdout]  --> src/notify/tray.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gtk::prelude::SocketExtManual;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::yield_now`
[INFO] [stdout]  --> src/notify/tray.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::task::yield_now;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UnboundedReceiver`, `UnboundedSender`, and `unbounded_channel`
[INFO] [stdout]  --> src/notify/tray.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::notify::notify::NotificationType`
[INFO] [stdout]   --> src/notify/tray.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::notify::notify::NotificationType;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/notify/tray.rs:180:36
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   if (action == "day") {
[INFO] [stdout]     |                          ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 -                                 if (action == "day") {
[INFO] [stdout] 180 +                                 if action == "day"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/notify/tray.rs:183:36
[INFO] [stdout]     |
[INFO] [stdout] 183 | ...                   if (action == "week") {
[INFO] [stdout]     |                          ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 183 -                                 if (action == "week") {
[INFO] [stdout] 183 +                                 if action == "week"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/notify/tray.rs:186:36
[INFO] [stdout]     |
[INFO] [stdout] 186 | ...                   if (action == "month") {
[INFO] [stdout]     |                          ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 186 -                                 if (action == "month") {
[INFO] [stdout] 186 +                                 if action == "month"  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/notify/notification_manager.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UnboundedReceiver` and `UnboundedSender`
[INFO] [stdout]  --> src/notify/notification_manager.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `save_last_check_time`
[INFO] [stdout]  --> src/notify/notification_manager.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::{ensure_config_dir, load_last_check_time, save_last_check_time, to_offset_date_time, INTERVAL_SECONDS, INTERVAL_TO_NEXT_NO...
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex` and `mpsc`
[INFO] [stdout]   --> src/main.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::{mpsc, Arc, Mutex};
[INFO] [stdout]    |                 ^^^^       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/notify/notification_manager.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if(self.seen_notifications.len() >= 200){
[INFO] [stdout]    |           ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 38 -         if(self.seen_notifications.len() >= 200){
[INFO] [stdout] 38 +         if self.seen_notifications.len() >= 200 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/notify/notification_manager.rs:39:18
[INFO] [stdout]    |
[INFO] [stdout] 39 |             while(self.seen_notifications.len() >= 200){
[INFO] [stdout]    |                  ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -             while(self.seen_notifications.len() >= 200){
[INFO] [stdout] 39 +             while self.seen_notifications.len() >= 200 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc::unbounded_channel`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::sync::mpsc::unbounded_channel;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/notify/notification_manager.rs:66:125
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let saved_since =  load_last_check_time(&last_check_time_file).unwrap_or_else(|_| Utc.timestamp_opt(0, 0).unwrap());;
[INFO] [stdout]    |                                                                                                                             ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::github::github::fetch_notifications`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::github::github::fetch_notifications;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::notify::notify::github_notification`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::notify::notify::github_notification;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex` and `mpsc`
[INFO] [stdout]   --> src/main.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::{mpsc, Arc, Mutex};
[INFO] [stdout]    |                 ^^^^       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/main.rs:80:121
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let saved_since =  load_last_check_time(&last_check_time_file).unwrap_or_else(|_| Utc.timestamp_opt(0, 0).unwrap());;
[INFO] [stdout]    |                                                                                                                         ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc::unbounded_channel`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tokio::sync::mpsc::unbounded_channel;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::github::github::fetch_notifications`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::github::github::fetch_notifications;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::notify::notify::github_notification`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::notify::notify::github_notification;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/main.rs:80:121
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let saved_since =  load_last_check_time(&last_check_time_file).unwrap_or_else(|_| Utc.timestamp_opt(0, 0).unwrap());;
[INFO] [stdout]    |                                                                                                                         ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/notify/notify.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut store = Arc::new(SnoozeConfigStore::open_default().unwrap());
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/notify/notify.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut store = Arc::new(SnoozeConfigStore::open_default().unwrap());
[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: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]   --> src/main.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let t = DateTime::<Utc>::from_utc(chrono::NaiveDateTime::from_timestamp_opt(timestamp, 0).expect("Invalid timestamp"), Utc);
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_opt`: use `DateTime::from_timestamp` instead
[INFO] [stdout]   --> src/main.rs:39:62
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let t = DateTime::<Utc>::from_utc(chrono::NaiveDateTime::from_timestamp_opt(timestamp, 0).expect("Invalid timestamp"), Utc);
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]   --> src/main.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let t = DateTime::<Utc>::from_utc(chrono::NaiveDateTime::from_timestamp_opt(timestamp, 0).expect("Invalid timestamp"), Utc);
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp_opt`: use `DateTime::from_timestamp` instead
[INFO] [stdout]   --> src/main.rs:39:62
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let t = DateTime::<Utc>::from_utc(chrono::NaiveDateTime::from_timestamp_opt(timestamp, 0).expect("Invalid timestamp"), Utc);
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/github/github.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Ok(mut response) => {
[INFO] [stdout]    |            ----^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/github/github.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 |         Ok(mut response) => {
[INFO] [stdout]    |            ----^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expire`
[INFO] [stdout]   --> src/notify/snooze_notifications.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 |             Some(expire) => true, //If it exists in map it means it is snoozed, let job to clean snoozing
[INFO] [stdout]    |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_expire`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expire`
[INFO] [stdout]   --> src/notify/snooze_notifications.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 |             Some(expire) => true, //If it exists in map it means it is snoozed, let job to clean snoozing
[INFO] [stdout]    |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_expire`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now_enabled`
[INFO] [stdout]    --> src/notify/tray.rs:193:40
[INFO] [stdout]     |
[INFO] [stdout] 193 | ...                   Ok(now_enabled) => {
[INFO] [stdout]     |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_now_enabled`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `menu_built`
[INFO] [stdout]    --> src/notify/tray.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let menu_built = Rc::new(RefCell::new(_tray_icon2
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_built`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now_enabled`
[INFO] [stdout]    --> src/notify/tray.rs:193:40
[INFO] [stdout]     |
[INFO] [stdout] 193 | ...                   Ok(now_enabled) => {
[INFO] [stdout]     |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_now_enabled`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `menu_built`
[INFO] [stdout]    --> src/notify/tray.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let menu_built = Rc::new(RefCell::new(_tray_icon2
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_built`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/notify/notification_manager.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let mut since =  to_offset_date_time(saved_since).ok();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repos`
[INFO] [stdout]   --> src/notify/notification_manager.rs:97:29
[INFO] [stdout]    |
[INFO] [stdout] 97 |                         let repos = self.store.list_all_repos();
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_repos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_since`
[INFO] [stdout]   --> src/notify/notification_manager.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |             let new_since = to_offset_date_time(Utc::now())
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_since`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/notify/notification_manager.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let mut since =  to_offset_date_time(saved_since).ok();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repos`
[INFO] [stdout]   --> src/notify/notification_manager.rs:97:29
[INFO] [stdout]    |
[INFO] [stdout] 97 |                         let repos = self.store.list_all_repos();
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_repos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_since`
[INFO] [stdout]   --> src/notify/notification_manager.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |             let new_since = to_offset_date_time(Utc::now())
[INFO] [stdout]    |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_since`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `insert_stmt`
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_insert_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `insert_stmt`
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_insert_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `insert_stmt`
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_insert_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `insert_stmt`
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         let mut insert_stmt = conn.execute(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_insert_stmt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let mut since =  to_offset_date_time(saved_since).ok();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut store = Arc::new(SnoozeConfigStore::open_default().unwrap());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let mut since =  to_offset_date_time(saved_since).ok();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trayHandle`
[INFO] [stdout]   --> src/main.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let trayHandle = tray.run();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trayHandle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut store = Arc::new(SnoozeConfigStore::open_default().unwrap());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trayHandle`
[INFO] [stdout]   --> src/main.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let trayHandle = tray.run();
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trayHandle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `API_URL` is never used
[INFO] [stdout]   --> src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const API_URL: &str = "https://api.github.com/notifications";
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `API_URL` is never used
[INFO] [stdout]   --> src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const API_URL: &str = "https://api.github.com/notifications";
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_last_check_time` is never used
[INFO] [stdout]   --> src/main.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn save_last_check_time(path: &PathBuf, offset_time: time::OffsetDateTime) -> io::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_last_check_time` is never used
[INFO] [stdout]   --> src/main.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn save_last_check_time(path: &PathBuf, offset_time: time::OffsetDateTime) -> io::Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Message` is never used
[INFO] [stdout]   --> src/main.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Message {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_warning` is never used
[INFO] [stdout]   --> src/github/github.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn notify_warning(title: &str, msg: String ){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Message` is never used
[INFO] [stdout]   --> src/main.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Message {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_warning` is never used
[INFO] [stdout]   --> src/github/github.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn notify_warning(title: &str, msg: String ){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NotificationType` is never used
[INFO] [stdout]  --> src/notify/notify.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum NotificationType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnoozeNotifications` is never constructed
[INFO] [stdout]  --> src/notify/snooze_notifications.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct SnoozeNotifications {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `snooze`, `is_snoozed`, `unsnooze_expires`, and `handle_snooze_message` are never used
[INFO] [stdout]   --> src/notify/snooze_notifications.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl SnoozeNotifications {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn snooze(&mut self, repository: String, duration: Duration) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn is_snoozed(&self, key: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn unsnooze_expires(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn handle_snooze_message(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `prune_expired`, `unsnooze_repo`, `is_repo_snoozed`, `list_snoozed_repos`, `snooze_reason`, and `unsooze_reason` are never used
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl SnoozeConfigStore {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn prune_expired(&self, now: DateTime) -> rusqlite::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn unsnooze_repo(&self, owner: &str, repo: &str) -> rusqlite::Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn is_repo_snoozed(&self, owner: &str, repo: &str, now: DateTime) -> rusqlite::Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn list_snoozed_repos(&self, now: DateTime) -> rusqlite::Result<Vec<(String, String, DateTime)>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn snooze_reason(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn unsooze_reason(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NotificationType` is never used
[INFO] [stdout]  --> src/notify/notify.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum NotificationType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnoozeNotifications` is never constructed
[INFO] [stdout]  --> src/notify/snooze_notifications.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct SnoozeNotifications {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `snooze`, `is_snoozed`, `unsnooze_expires`, and `handle_snooze_message` are never used
[INFO] [stdout]   --> src/notify/snooze_notifications.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl SnoozeNotifications {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn snooze(&mut self, repository: String, duration: Duration) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn is_snoozed(&self, key: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn unsnooze_expires(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn handle_snooze_message(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `prune_expired`, `unsnooze_repo`, `is_repo_snoozed`, `list_snoozed_repos`, `snooze_reason`, and `unsooze_reason` are never used
[INFO] [stdout]    --> src/notify/snooze_config_store.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl SnoozeConfigStore {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn prune_expired(&self, now: DateTime) -> rusqlite::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn unsnooze_repo(&self, owner: &str, repo: &str) -> rusqlite::Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn is_repo_snoozed(&self, owner: &str, repo: &str, now: DateTime) -> rusqlite::Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn list_snoozed_repos(&self, now: DateTime) -> rusqlite::Result<Vec<(String, String, DateTime)>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn snooze_reason(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn unsooze_reason(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `trayHandle` should have a snake case name
[INFO] [stdout]   --> src/main.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let trayHandle = tray.run();
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `tray_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `trayHandle` should have a snake case name
[INFO] [stdout]   --> src/main.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let trayHandle = tray.run();
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `tray_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/github/github.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | /     Notification::new()
[INFO] [stdout] 67 | |         .summary(&title)
[INFO] [stdout] 68 | |         .body(&msg)
[INFO] [stdout] 69 | |         .image("./assets/github-error.png")
[INFO] [stdout] 70 | |         .unwrap()
[INFO] [stdout] 71 | |         .show();
[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] 66 |     let _ = Notification::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/github/github.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     Notification::new()
[INFO] [stdout] 75 | |         .summary(&title)
[INFO] [stdout] 76 | |         .body(&msg)
[INFO] [stdout] 77 | |         .image("./assets/github-warning.png")
[INFO] [stdout] 78 | |         .unwrap()
[INFO] [stdout] 79 | |         .show();
[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] 74 |     let _ = Notification::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/tray.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 filter_menu.append(&reason_menu_item);
[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] 73 |                 let _ = filter_menu.append(&reason_menu_item);
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/tray.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             repo_menu.append(&snooze_menu);
[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] 76 |             let _ = repo_menu.append(&snooze_menu);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/tray.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             repo_menu.append(&filter_menu);
[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] 77 |             let _ = repo_menu.append(&filter_menu);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             snooze_menu.append(&snooze_tomorrow);
[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] 103 |             let _ = snooze_menu.append(&snooze_tomorrow);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             snooze_menu.append(&snooze_week);
[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] 104 |             let _ = snooze_menu.append(&snooze_week);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             snooze_menu.append(&snooze_month);
[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] 105 |             let _ = snooze_menu.append(&snooze_month);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |             owner_menu.append(&repo_menu);
[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] 107 |             let _ = owner_menu.append(&repo_menu);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |             sub_menu.append(&submenu);
[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] 111 |             let _ = sub_menu.append(&submenu);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         menu.append(&submenu);
[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] 122 |         let _ = menu.append(&submenu);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/github/github.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | /     Notification::new()
[INFO] [stdout] 67 | |         .summary(&title)
[INFO] [stdout] 68 | |         .body(&msg)
[INFO] [stdout] 69 | |         .image("./assets/github-error.png")
[INFO] [stdout] 70 | |         .unwrap()
[INFO] [stdout] 71 | |         .show();
[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] 66 |     let _ = Notification::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:189:33
[INFO] [stdout]     |
[INFO] [stdout] 189 | ...                   moved_self.clone().store.snooze_repo(owner, repo, until.unwrap());
[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] 189 |                                 let _ = moved_self.clone().store.snooze_repo(owner, repo, until.unwrap());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/notification_manager.rs:96:25
[INFO] [stdout]    |
[INFO] [stdout] 96 |                         self.store.add_repo(&n.repository.owner.login, &n.repository.full_name);
[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] 96 |                         let _ = self.store.add_repo(&n.repository.owner.login, &n.repository.full_name);
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/github/github.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | /     Notification::new()
[INFO] [stdout] 75 | |         .summary(&title)
[INFO] [stdout] 76 | |         .body(&msg)
[INFO] [stdout] 77 | |         .image("./assets/github-warning.png")
[INFO] [stdout] 78 | |         .unwrap()
[INFO] [stdout] 79 | |         .show();
[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] 74 |     let _ = Notification::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/app_config.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | /         Notification::new()
[INFO] [stdout] 29 | |             .summary("Configuration issue")
[INFO] [stdout] 30 | |             .body(&msg)
[INFO] [stdout] 31 | |             .image("./assets/github-warning.png")
[INFO] [stdout] 32 | |             .unwrap()
[INFO] [stdout] 33 | |             .show();
[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] 28 |         let _ = Notification::new()
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/tray.rs:73:17
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 filter_menu.append(&reason_menu_item);
[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] 73 |                 let _ = filter_menu.append(&reason_menu_item);
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/tray.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |             repo_menu.append(&snooze_menu);
[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] 76 |             let _ = repo_menu.append(&snooze_menu);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/tray.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |             repo_menu.append(&filter_menu);
[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] 77 |             let _ = repo_menu.append(&filter_menu);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |             snooze_menu.append(&snooze_tomorrow);
[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] 103 |             let _ = snooze_menu.append(&snooze_tomorrow);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:104:13
[INFO] [stdout]     |
[INFO] [stdout] 104 |             snooze_menu.append(&snooze_week);
[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] 104 |             let _ = snooze_menu.append(&snooze_week);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             snooze_menu.append(&snooze_month);
[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] 105 |             let _ = snooze_menu.append(&snooze_month);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |             owner_menu.append(&repo_menu);
[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] 107 |             let _ = owner_menu.append(&repo_menu);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |             sub_menu.append(&submenu);
[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] 111 |             let _ = sub_menu.append(&submenu);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |         menu.append(&submenu);
[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] 122 |         let _ = menu.append(&submenu);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/notify/tray.rs:189:33
[INFO] [stdout]     |
[INFO] [stdout] 189 | ...                   moved_self.clone().store.snooze_repo(owner, repo, until.unwrap());
[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] 189 |                                 let _ = moved_self.clone().store.snooze_repo(owner, repo, until.unwrap());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/notify/notification_manager.rs:96:25
[INFO] [stdout]    |
[INFO] [stdout] 96 |                         self.store.add_repo(&n.repository.owner.login, &n.repository.full_name);
[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] 96 |                         let _ = self.store.add_repo(&n.repository.owner.login, &n.repository.full_name);
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/app_config.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | /         Notification::new()
[INFO] [stdout] 29 | |             .summary("Configuration issue")
[INFO] [stdout] 30 | |             .body(&msg)
[INFO] [stdout] 31 | |             .image("./assets/github-warning.png")
[INFO] [stdout] 32 | |             .unwrap()
[INFO] [stdout] 33 | |             .show();
[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] 28 |         let _ = Notification::new()
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 30s
[INFO] running `Command { std: "docker" "inspect" "f8ae64acfdb8a354ba0e986ef516eacb09824833f6d873bd4033e6964ba2efed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8ae64acfdb8a354ba0e986ef516eacb09824833f6d873bd4033e6964ba2efed", kill_on_drop: false }`
[INFO] [stdout] f8ae64acfdb8a354ba0e986ef516eacb09824833f6d873bd4033e6964ba2efed
