[INFO] cloning repository https://github.com/denis-hananein/busy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/denis-hananein/busy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdenis-hananein%2Fbusy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdenis-hananein%2Fbusy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 84ef424d2dbc1fe108ea1dc4256d77ed8e2b9523 [INFO] linting denis-hananein/busy against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdenis-hananein%2Fbusy" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/denis-hananein/busy [INFO] finished tweaking git repo https://github.com/denis-hananein/busy [INFO] tweaked toml for git repo https://github.com/denis-hananein/busy written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/denis-hananein/busy on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/denis-hananein/busy 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded is_executable v1.0.1 [INFO] [stderr] Downloaded clap v4.5.15 [INFO] [stderr] Downloaded tempfile v3.12.0 [INFO] [stderr] Downloaded serde_derive v1.0.205 [INFO] [stderr] Downloaded uuid-macro-internal v1.10.0 [INFO] [stderr] Downloaded clap_complete v4.5.14 [INFO] [stderr] Downloaded cc v1.1.8 [INFO] [stderr] Downloaded clap_builder v4.5.15 [INFO] [stderr] Downloaded serde v1.0.205 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 514b34a04a0779bef07939ee420da0f74615b274be073de16ec146c93ce502d0 [INFO] running `Command { std: "docker" "start" "-a" "514b34a04a0779bef07939ee420da0f74615b274be073de16ec146c93ce502d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "514b34a04a0779bef07939ee420da0f74615b274be073de16ec146c93ce502d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "514b34a04a0779bef07939ee420da0f74615b274be073de16ec146c93ce502d0", kill_on_drop: false }` [INFO] [stdout] 514b34a04a0779bef07939ee420da0f74615b274be073de16ec146c93ce502d0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 21356a083f62c3e4d60f5c41c5a476bc1b7e3c6866955848c59b7f2165323710 [INFO] running `Command { std: "docker" "start" "-a" "21356a083f62c3e4d60f5c41c5a476bc1b7e3c6866955848c59b7f2165323710", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling serde v1.0.205 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling serde_json v1.0.122 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking clap_builder v4.5.15 [INFO] [stderr] Checking shlex v1.3.0 [INFO] [stderr] Checking is_executable v1.0.1 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Checking subprocess v0.2.9 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.205 [INFO] [stderr] Compiling clap_derive v4.5.13 [INFO] [stderr] Compiling uuid-macro-internal v1.10.0 [INFO] [stderr] Checking env_filter v0.1.2 [INFO] [stderr] Checking env_logger v0.11.5 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking clap v4.5.15 [INFO] [stderr] Checking clap_complete v4.5.14 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking busy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead [INFO] [stdout] --> src/time.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | return chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M"); [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::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead [INFO] [stdout] --> src/time.rs:23:24 [INFO] [stdout] | [INFO] [stdout] 23 | return chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Busy` [INFO] [stdout] --> src/busy.rs:20:3 [INFO] [stdout] | [INFO] [stdout] 20 | / pub fn new() -> Self { [INFO] [stdout] 21 | | let config = Config::new(); [INFO] [stdout] 22 | | [INFO] [stdout] 23 | | log::debug!("busy data folder: {}", config.storage_dir_path); [INFO] [stdout] ... | [INFO] [stdout] 45 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 19 + impl Default for Busy { [INFO] [stdout] 20 + fn default() -> Self { [INFO] [stdout] 21 + Self::new() [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | return Ok("sync success".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 - return Ok("sync success".to_string()); [INFO] [stdout] 51 + Ok("sync success".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | return pushed_ids; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 - return pushed_ids; [INFO] [stdout] 84 + pushed_ids [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/busy.rs:75:27 [INFO] [stdout] | [INFO] [stdout] 75 | pushed_ids.push(found_tag.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `found_tag.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/busy.rs:80:27 [INFO] [stdout] | [INFO] [stdout] 80 | pushed_ids.push(new_tag.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `new_tag.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | return Ok(task); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return Ok(task); [INFO] [stdout] 106 + Ok(task) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/busy.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | if !self.active_task().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.active_task().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | return Ok(task); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return Ok(task); [INFO] [stdout] 131 + Ok(task) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | return Ok(new_task); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return Ok(new_task); [INFO] [stdout] 211 + Ok(new_task) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 218 - return Ok(()); [INFO] [stdout] 218 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/busy.rs:217:52 [INFO] [stdout] | [INFO] [stdout] 217 | self.commit(&format_task_commit("replace", &task)); [INFO] [stdout] | ^^^^^ help: change this to: `task` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return Ok(()); [INFO] [stdout] 232 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/busy.rs:243:5 [INFO] [stdout] | [INFO] [stdout] 243 | / self [INFO] [stdout] 244 | | .storage [INFO] [stdout] 245 | | .tasks() [INFO] [stdout] 246 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 253 | | }) [INFO] [stdout] 254 | | .map(|t| t.clone()) [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 243 ~ self [INFO] [stdout] 244 + .storage [INFO] [stdout] 245 + .tasks() [INFO] [stdout] 246 + .iter() [INFO] [stdout] 247 + .filter(|t| { [INFO] [stdout] 248 + let mut within_the_period = period.contains(&t.start_time()); [INFO] [stdout] 249 + if t.stop_time().is_some() { [INFO] [stdout] 250 + within_the_period = within_the_period && period.contains(t.stop_time().as_ref().unwrap()); [INFO] [stdout] 251 + } [INFO] [stdout] 252 + return within_the_period; [INFO] [stdout] 253 + }).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | return within_the_period; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 252 - return within_the_period; [INFO] [stdout] 252 + within_the_period [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | / return self [INFO] [stdout] 264 | | .storage [INFO] [stdout] 265 | | .tasks() [INFO] [stdout] 266 | | .iter() [INFO] [stdout] 267 | | .find(|t| t.id() == task_id) [INFO] [stdout] 268 | | .map(|t| t.clone()); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 263 ~ self [INFO] [stdout] 264 + .storage [INFO] [stdout] 265 + .tasks() [INFO] [stdout] 266 + .iter() [INFO] [stdout] 267 + .find(|t| t.id() == task_id) [INFO] [stdout] 268 ~ .map(|t| t.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/busy.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 263 | return self [INFO] [stdout] | ____________^ [INFO] [stdout] 264 | | .storage [INFO] [stdout] 265 | | .tasks() [INFO] [stdout] 266 | | .iter() [INFO] [stdout] 267 | | .find(|t| t.id() == task_id) [INFO] [stdout] 268 | | .map(|t| t.clone()); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 263 ~ return self [INFO] [stdout] 264 + .storage [INFO] [stdout] 265 + .tasks() [INFO] [stdout] 266 + .iter() [INFO] [stdout] 267 ~ .find(|t| t.id() == task_id).cloned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/busy.rs:276:5 [INFO] [stdout] | [INFO] [stdout] 276 | / match found_task { [INFO] [stdout] 277 | | Some(task) => Some(task.clone()), [INFO] [stdout] 278 | | None => None, [INFO] [stdout] 279 | | } [INFO] [stdout] | |_____^ help: try: `found_task.map(|task| task.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 295 - return None; [INFO] [stdout] 295 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return self.storage.tasks(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 308 - return self.storage.tasks(); [INFO] [stdout] 308 + self.storage.tasks() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | return self.storage.tags(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 312 - return self.storage.tags(); [INFO] [stdout] 312 + self.storage.tags() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:328:5 [INFO] [stdout] | [INFO] [stdout] 328 | return project; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 328 - return project; [INFO] [stdout] 328 + project [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:336:5 [INFO] [stdout] | [INFO] [stdout] 336 | return project.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 336 - return project.unwrap(); [INFO] [stdout] 336 + project.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | / return self.storage.projects().iter().find_map(|p| { [INFO] [stdout] 341 | | if p.name() == project_name { [INFO] [stdout] 342 | | return Some(p.clone()); [INFO] [stdout] ... | [INFO] [stdout] 345 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 340 ~ self.storage.projects().iter().find_map(|p| { [INFO] [stdout] 341 + if p.name() == project_name { [INFO] [stdout] 342 + return Some(p.clone()); [INFO] [stdout] 343 + } [INFO] [stdout] 344 + return None; [INFO] [stdout] 345 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:344:7 [INFO] [stdout] | [INFO] [stdout] 344 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 344 - return None; [INFO] [stdout] 344 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:353:7 [INFO] [stdout] | [INFO] [stdout] 353 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 353 - return None; [INFO] [stdout] 353 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/busy.rs:358:5 [INFO] [stdout] | [INFO] [stdout] 358 | / match self.syncer.commit(msg) { [INFO] [stdout] 359 | | Err(err) => println!("commit err: {err} msg: {msg}"), [INFO] [stdout] 360 | | _ => {} [INFO] [stdout] 361 | | }; [INFO] [stdout] | |_____^ help: try: `if let Err(err) = self.syncer.commit(msg) { println!("commit err: {err} msg: {msg}") }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Busy` [INFO] [stdout] --> src/busy.rs:20:3 [INFO] [stdout] | [INFO] [stdout] 20 | / pub fn new() -> Self { [INFO] [stdout] 21 | | let config = Config::new(); [INFO] [stdout] 22 | | [INFO] [stdout] 23 | | log::debug!("busy data folder: {}", config.storage_dir_path); [INFO] [stdout] ... | [INFO] [stdout] 45 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 19 + impl Default for Busy { [INFO] [stdout] 20 + fn default() -> Self { [INFO] [stdout] 21 + Self::new() [INFO] [stdout] 22 + } [INFO] [stdout] 23 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | return Ok("sync success".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 - return Ok("sync success".to_string()); [INFO] [stdout] 51 + Ok("sync success".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Config` [INFO] [stdout] --> src/config.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 10 | / pub fn new() -> Self { [INFO] [stdout] 11 | | const BUSY_DEFAULT_STORAGE_DIR: &str = ".busy"; [INFO] [stdout] 12 | | const BUSY_DEFAULT_CONFIG_PATH: &str = ".config/busy/config.json"; [INFO] [stdout] ... | [INFO] [stdout] 46 | | return serde_json::from_reader(get_config_file()).unwrap(); [INFO] [stdout] 47 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 9 + impl Default for Config { [INFO] [stdout] 10 + fn default() -> Self { [INFO] [stdout] 11 + Self::new() [INFO] [stdout] 12 + } [INFO] [stdout] 13 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/config.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | return serde_json::from_reader(get_config_file()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 - return serde_json::from_reader(get_config_file()).unwrap(); [INFO] [stdout] 46 + serde_json::from_reader(get_config_file()).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | return pushed_ids; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 - return pushed_ids; [INFO] [stdout] 84 + pushed_ids [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/busy.rs:75:27 [INFO] [stdout] | [INFO] [stdout] 75 | pushed_ids.push(found_tag.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `found_tag.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> src/config.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/busy.rs:80:27 [INFO] [stdout] | [INFO] [stdout] 80 | pushed_ids.push(new_tag.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `new_tag.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | return Ok(task); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 - return Ok(task); [INFO] [stdout] 106 + Ok(task) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / return Self { [INFO] [stdout] 11 | | from, [INFO] [stdout] 12 | | to: chrono::Local::now(), [INFO] [stdout] 13 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 10 ~ Self { [INFO] [stdout] 11 + from, [INFO] [stdout] 12 + to: chrono::Local::now(), [INFO] [stdout] 13 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return &self.from <= moment && moment <= &self.to; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return &self.from <= moment && moment <= &self.to; [INFO] [stdout] 17 + &self.from <= moment && moment <= &self.to [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/busy.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | if !self.active_task().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.active_task().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | return Ok(task); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 131 - return Ok(task); [INFO] [stdout] 131 + Ok(task) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:22:3 [INFO] [stdout] | [INFO] [stdout] 22 | / return get_checked_sub_signed_from_now( [INFO] [stdout] 23 | | chrono::Duration::days(period_days) [INFO] [stdout] 24 | | .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 25 | | .unwrap(), [INFO] [stdout] 26 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 ~ get_checked_sub_signed_from_now( [INFO] [stdout] 23 + chrono::Duration::days(period_days) [INFO] [stdout] 24 + .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 25 + .unwrap(), [INFO] [stdout] 26 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:30:3 [INFO] [stdout] | [INFO] [stdout] 30 | / return get_checked_sub_signed_from_now( [INFO] [stdout] 31 | | chrono::Duration::days(chrono::Local::now().weekday().num_days_from_monday().into()) [INFO] [stdout] 32 | | .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 33 | | .unwrap(), [INFO] [stdout] 34 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 ~ get_checked_sub_signed_from_now( [INFO] [stdout] 31 + chrono::Duration::days(chrono::Local::now().weekday().num_days_from_monday().into()) [INFO] [stdout] 32 + .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 33 + .unwrap(), [INFO] [stdout] 34 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:38:3 [INFO] [stdout] | [INFO] [stdout] 38 | return get_checked_sub_signed_from_now(get_duration_from_midnight()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return get_checked_sub_signed_from_now(get_duration_from_midnight()); [INFO] [stdout] 38 + get_checked_sub_signed_from_now(get_duration_from_midnight()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:42:3 [INFO] [stdout] | [INFO] [stdout] 42 | / return chrono::Duration::seconds( [INFO] [stdout] 43 | | chrono::Local::now() [INFO] [stdout] 44 | | .time() [INFO] [stdout] 45 | | .num_seconds_from_midnight() [INFO] [stdout] 46 | | .into(), [INFO] [stdout] 47 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 ~ chrono::Duration::seconds( [INFO] [stdout] 43 + chrono::Local::now() [INFO] [stdout] 44 + .time() [INFO] [stdout] 45 + .num_seconds_from_midnight() [INFO] [stdout] 46 + .into(), [INFO] [stdout] 47 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:51:3 [INFO] [stdout] | [INFO] [stdout] 51 | return chrono::Local::now().checked_sub_signed(duration).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 - return chrono::Local::now().checked_sub_signed(duration).unwrap(); [INFO] [stdout] 51 + chrono::Local::now().checked_sub_signed(duration).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | return Ok(new_task); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 211 - return Ok(new_task); [INFO] [stdout] 211 + Ok(new_task) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 218 - return Ok(()); [INFO] [stdout] 218 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/busy.rs:217:52 [INFO] [stdout] | [INFO] [stdout] 217 | self.commit(&format_task_commit("replace", &task)); [INFO] [stdout] | ^^^^^ help: change this to: `task` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 232 - return Ok(()); [INFO] [stdout] 232 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/busy.rs:243:5 [INFO] [stdout] | [INFO] [stdout] 243 | / self [INFO] [stdout] 244 | | .storage [INFO] [stdout] 245 | | .tasks() [INFO] [stdout] 246 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 253 | | }) [INFO] [stdout] 254 | | .map(|t| t.clone()) [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 243 ~ self [INFO] [stdout] 244 + .storage [INFO] [stdout] 245 + .tasks() [INFO] [stdout] 246 + .iter() [INFO] [stdout] 247 + .filter(|t| { [INFO] [stdout] 248 + let mut within_the_period = period.contains(&t.start_time()); [INFO] [stdout] 249 + if t.stop_time().is_some() { [INFO] [stdout] 250 + within_the_period = within_the_period && period.contains(t.stop_time().as_ref().unwrap()); [INFO] [stdout] 251 + } [INFO] [stdout] 252 + return within_the_period; [INFO] [stdout] 253 + }).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | return within_the_period; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 252 - return within_the_period; [INFO] [stdout] 252 + within_the_period [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/storage/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | mod storage; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | / return self [INFO] [stdout] 264 | | .storage [INFO] [stdout] 265 | | .tasks() [INFO] [stdout] 266 | | .iter() [INFO] [stdout] 267 | | .find(|t| t.id() == task_id) [INFO] [stdout] 268 | | .map(|t| t.clone()); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 263 ~ self [INFO] [stdout] 264 + .storage [INFO] [stdout] 265 + .tasks() [INFO] [stdout] 266 + .iter() [INFO] [stdout] 267 + .find(|t| t.id() == task_id) [INFO] [stdout] 268 ~ .map(|t| t.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/storage/storage.rs:16:42 [INFO] [stdout] | [INFO] [stdout] 16 | fn find_tag_by_names(&self, tag_names: &Vec) -> Vec; [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/busy.rs:263:12 [INFO] [stdout] | [INFO] [stdout] 263 | return self [INFO] [stdout] | ____________^ [INFO] [stdout] 264 | | .storage [INFO] [stdout] 265 | | .tasks() [INFO] [stdout] 266 | | .iter() [INFO] [stdout] 267 | | .find(|t| t.id() == task_id) [INFO] [stdout] 268 | | .map(|t| t.clone()); [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 263 ~ return self [INFO] [stdout] 264 + .storage [INFO] [stdout] 265 + .tasks() [INFO] [stdout] 266 + .iter() [INFO] [stdout] 267 ~ .find(|t| t.id() == task_id).cloned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/storage/storage.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | fn find_tags(&self, tag_ids: &Vec) -> Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `&[uuid::Uuid]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | return ids; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 - return ids; [INFO] [stdout] 46 + ids [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 38 | ids.push(task.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `task.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | ids.push(project.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `project.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | ids.push(tag.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `tag.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/busy.rs:276:5 [INFO] [stdout] | [INFO] [stdout] 276 | / match found_task { [INFO] [stdout] 277 | | Some(task) => Some(task.clone()), [INFO] [stdout] 278 | | None => None, [INFO] [stdout] 279 | | } [INFO] [stdout] | |_____^ help: try: `found_task.map(|task| task.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:295:7 [INFO] [stdout] | [INFO] [stdout] 295 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 295 - return None; [INFO] [stdout] 295 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return self.storage.tasks(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 308 - return self.storage.tasks(); [INFO] [stdout] 308 + self.storage.tasks() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:312:5 [INFO] [stdout] | [INFO] [stdout] 312 | return self.storage.tags(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 312 - return self.storage.tags(); [INFO] [stdout] 312 + self.storage.tags() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:328:5 [INFO] [stdout] | [INFO] [stdout] 328 | return project; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 328 - return project; [INFO] [stdout] 328 + project [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:336:5 [INFO] [stdout] | [INFO] [stdout] 336 | return project.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 336 - return project.unwrap(); [INFO] [stdout] 336 + project.unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `item` after checking its variant with `is_some` [INFO] [stdout] --> src/storage/storage_json.rs:68:19 [INFO] [stdout] | [INFO] [stdout] 67 | if item.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = item` [INFO] [stdout] 68 | return Some(item.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | / return self.storage.projects().iter().find_map(|p| { [INFO] [stdout] 341 | | if p.name() == project_name { [INFO] [stdout] 342 | | return Some(p.clone()); [INFO] [stdout] ... | [INFO] [stdout] 345 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 340 ~ self.storage.projects().iter().find_map(|p| { [INFO] [stdout] 341 + if p.name() == project_name { [INFO] [stdout] 342 + return Some(p.clone()); [INFO] [stdout] 343 + } [INFO] [stdout] 344 + return None; [INFO] [stdout] 345 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return None; [INFO] [stdout] 70 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:344:7 [INFO] [stdout] | [INFO] [stdout] 344 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 344 - return None; [INFO] [stdout] 344 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:64:7 [INFO] [stdout] | [INFO] [stdout] 64 | return formatted_id == short_id; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - return formatted_id == short_id; [INFO] [stdout] 64 + formatted_id == short_id [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:68:19 [INFO] [stdout] | [INFO] [stdout] 68 | return Some(item.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*item.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/busy.rs:353:7 [INFO] [stdout] | [INFO] [stdout] 353 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 353 - return None; [INFO] [stdout] 353 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | return tasks; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 - return tasks; [INFO] [stdout] 96 + tasks [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/busy.rs:358:5 [INFO] [stdout] | [INFO] [stdout] 358 | / match self.syncer.commit(msg) { [INFO] [stdout] 359 | | Err(err) => println!("commit err: {err} msg: {msg}"), [INFO] [stdout] 360 | | _ => {} [INFO] [stdout] 361 | | }; [INFO] [stdout] | |_____^ help: try: `if let Err(err) = self.syncer.commit(msg) { println!("commit err: {err} msg: {msg}") }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/storage/storage_json.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | tasks.sort_by(|a, b| a.start_time().cmp(&b.start_time())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 95 - tasks.sort_by(|a, b| a.start_time().cmp(&b.start_time())); [INFO] [stdout] 95 + tasks.sort_by_key(|a| a.start_time()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/storage/storage_json.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / match self.tags.all().iter().find(|t| t.name() == tag) { [INFO] [stdout] 101 | | Some(found_tag) => Some(found_tag.clone()), [INFO] [stdout] 102 | | _ => None, [INFO] [stdout] 103 | | } [INFO] [stdout] | |_____^ help: try: `self.tags.all().iter().find(|t| t.name() == tag).map(|found_tag| found_tag.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `found_tag` after checking its variant with `is_some` [INFO] [stdout] --> src/storage/storage_json.rs:111:19 [INFO] [stdout] | [INFO] [stdout] 110 | if found_tag.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = found_tag` [INFO] [stdout] 111 | tags.push(found_tag.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | return tags; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 114 - return tags; [INFO] [stdout] 114 + tags [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | return tags; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 125 - return tags; [INFO] [stdout] 125 + tags [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/storage/storage_json.rs:120:7 [INFO] [stdout] | [INFO] [stdout] 120 | / match self.tag_by_id(*tag_id) { [INFO] [stdout] 121 | | Some(found_tag) => tags.push(found_tag.clone()), [INFO] [stdout] 122 | | _ => {} [INFO] [stdout] 123 | | }; [INFO] [stdout] | |_______^ help: try: `if let Some(found_tag) = self.tag_by_id(*tag_id) { tags.push(found_tag.clone()) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | return storage_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 187 - return storage_item; [INFO] [stdout] 187 + storage_item [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:221:40 [INFO] [stdout] | [INFO] [stdout] 221 | let position = self.position_by_id(item.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `item.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Config` [INFO] [stdout] --> src/config.rs:10:3 [INFO] [stdout] | [INFO] [stdout] 10 | / pub fn new() -> Self { [INFO] [stdout] 11 | | const BUSY_DEFAULT_STORAGE_DIR: &str = ".busy"; [INFO] [stdout] 12 | | const BUSY_DEFAULT_CONFIG_PATH: &str = ".config/busy/config.json"; [INFO] [stdout] ... | [INFO] [stdout] 46 | | return serde_json::from_reader(get_config_file()).unwrap(); [INFO] [stdout] 47 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 9 + impl Default for Config { [INFO] [stdout] 10 + fn default() -> Self { [INFO] [stdout] 11 + Self::new() [INFO] [stdout] 12 + } [INFO] [stdout] 13 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/config.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | return serde_json::from_reader(get_config_file()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 - return serde_json::from_reader(get_config_file()).unwrap(); [INFO] [stdout] 46 + serde_json::from_reader(get_config_file()).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> src/config.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | / return Self { [INFO] [stdout] 11 | | from, [INFO] [stdout] 12 | | to: chrono::Local::now(), [INFO] [stdout] 13 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 10 ~ Self { [INFO] [stdout] 11 + from, [INFO] [stdout] 12 + to: chrono::Local::now(), [INFO] [stdout] 13 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | return &self.from <= moment && moment <= &self.to; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return &self.from <= moment && moment <= &self.to; [INFO] [stdout] 17 + &self.from <= moment && moment <= &self.to [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:22:3 [INFO] [stdout] | [INFO] [stdout] 22 | / return get_checked_sub_signed_from_now( [INFO] [stdout] 23 | | chrono::Duration::days(period_days) [INFO] [stdout] 24 | | .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 25 | | .unwrap(), [INFO] [stdout] 26 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 ~ get_checked_sub_signed_from_now( [INFO] [stdout] 23 + chrono::Duration::days(period_days) [INFO] [stdout] 24 + .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 25 + .unwrap(), [INFO] [stdout] 26 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:30:3 [INFO] [stdout] | [INFO] [stdout] 30 | / return get_checked_sub_signed_from_now( [INFO] [stdout] 31 | | chrono::Duration::days(chrono::Local::now().weekday().num_days_from_monday().into()) [INFO] [stdout] 32 | | .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 33 | | .unwrap(), [INFO] [stdout] 34 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 ~ get_checked_sub_signed_from_now( [INFO] [stdout] 31 + chrono::Duration::days(chrono::Local::now().weekday().num_days_from_monday().into()) [INFO] [stdout] 32 + .checked_add(&get_duration_from_midnight()) [INFO] [stdout] 33 + .unwrap(), [INFO] [stdout] 34 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:38:3 [INFO] [stdout] | [INFO] [stdout] 38 | return get_checked_sub_signed_from_now(get_duration_from_midnight()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return get_checked_sub_signed_from_now(get_duration_from_midnight()); [INFO] [stdout] 38 + get_checked_sub_signed_from_now(get_duration_from_midnight()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:42:3 [INFO] [stdout] | [INFO] [stdout] 42 | / return chrono::Duration::seconds( [INFO] [stdout] 43 | | chrono::Local::now() [INFO] [stdout] 44 | | .time() [INFO] [stdout] 45 | | .num_seconds_from_midnight() [INFO] [stdout] 46 | | .into(), [INFO] [stdout] 47 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 42 ~ chrono::Duration::seconds( [INFO] [stdout] 43 + chrono::Local::now() [INFO] [stdout] 44 + .time() [INFO] [stdout] 45 + .num_seconds_from_midnight() [INFO] [stdout] 46 + .into(), [INFO] [stdout] 47 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/duration.rs:51:3 [INFO] [stdout] | [INFO] [stdout] 51 | return chrono::Local::now().checked_sub_signed(duration).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 51 - return chrono::Local::now().checked_sub_signed(duration).unwrap(); [INFO] [stdout] 51 + chrono::Local::now().checked_sub_signed(duration).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:315:14 [INFO] [stdout] | [INFO] [stdout] 315 | let id = new_item.id().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `new_item.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:318:20 [INFO] [stdout] | [INFO] [stdout] 318 | storage.remove(id.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/storage/storage_json.rs:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | assert_eq!(all_items.is_empty(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 321 - assert_eq!(all_items.is_empty(), true); [INFO] [stdout] 321 + assert!(all_items.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/storage/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | mod storage; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/storage/storage.rs:16:42 [INFO] [stdout] | [INFO] [stdout] 16 | fn find_tag_by_names(&self, tag_names: &Vec) -> Vec; [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/storage/storage.rs:17:32 [INFO] [stdout] | [INFO] [stdout] 17 | fn find_tags(&self, tag_ids: &Vec) -> Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `&[uuid::Uuid]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | return ids; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 46 - return ids; [INFO] [stdout] 46 + ids [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:38:16 [INFO] [stdout] | [INFO] [stdout] 38 | ids.push(task.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `task.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | ids.push(project.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `project.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | ids.push(tag.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `tag.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `item` after checking its variant with `is_some` [INFO] [stdout] --> src/storage/storage_json.rs:68:19 [INFO] [stdout] | [INFO] [stdout] 67 | if item.is_some() { [INFO] [stdout] | ----------------- help: try: `if let Some() = item` [INFO] [stdout] 68 | return Some(item.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 70 - return None; [INFO] [stdout] 70 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:64:7 [INFO] [stdout] | [INFO] [stdout] 64 | return formatted_id == short_id; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 64 - return formatted_id == short_id; [INFO] [stdout] 64 + formatted_id == short_id [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:68:19 [INFO] [stdout] | [INFO] [stdout] 68 | return Some(item.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*item.unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | return tasks; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 - return tasks; [INFO] [stdout] 96 + tasks [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/storage/storage_json.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | tasks.sort_by(|a, b| a.start_time().cmp(&b.start_time())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 95 - tasks.sort_by(|a, b| a.start_time().cmp(&b.start_time())); [INFO] [stdout] 95 + tasks.sort_by_key(|a| a.start_time()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/storage/storage_json.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / match self.tags.all().iter().find(|t| t.name() == tag) { [INFO] [stdout] 101 | | Some(found_tag) => Some(found_tag.clone()), [INFO] [stdout] 102 | | _ => None, [INFO] [stdout] 103 | | } [INFO] [stdout] | |_____^ help: try: `self.tags.all().iter().find(|t| t.name() == tag).map(|found_tag| found_tag.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `found_tag` after checking its variant with `is_some` [INFO] [stdout] --> src/storage/storage_json.rs:111:19 [INFO] [stdout] | [INFO] [stdout] 110 | if found_tag.is_some() { [INFO] [stdout] | ---------------------- help: try: `if let Some() = found_tag` [INFO] [stdout] 111 | tags.push(found_tag.unwrap().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `EmptySyncer` [INFO] [stdout] --> src/sync/syncer_empty.rs:6:3 [INFO] [stdout] | [INFO] [stdout] 6 | / pub fn new() -> Self { [INFO] [stdout] 7 | | return Self {}; [INFO] [stdout] 8 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 5 + impl Default for EmptySyncer { [INFO] [stdout] 6 + fn default() -> Self { [INFO] [stdout] 7 + Self::new() [INFO] [stdout] 8 + } [INFO] [stdout] 9 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | return tags; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 114 - return tags; [INFO] [stdout] 114 + tags [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | return tags; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 125 - return tags; [INFO] [stdout] 125 + tags [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | return Self {}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 7 - return Self {}; [INFO] [stdout] 7 + Self {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/storage/storage_json.rs:120:7 [INFO] [stdout] | [INFO] [stdout] 120 | / match self.tag_by_id(*tag_id) { [INFO] [stdout] 121 | | Some(found_tag) => tags.push(found_tag.clone()), [INFO] [stdout] 122 | | _ => {} [INFO] [stdout] 123 | | }; [INFO] [stdout] | |_______^ help: try: `if let Some(found_tag) = self.tag_by_id(*tag_id) { tags.push(found_tag.clone()) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/storage/storage_json.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | return storage_item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 187 - return storage_item; [INFO] [stdout] 187 + storage_item [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | return std::io::Result::Ok(format!("cmd: 'commit', msg: {msg}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return std::io::Result::Ok(format!("cmd: 'commit', msg: {msg}")); [INFO] [stdout] 13 + std::io::Result::Ok(format!("cmd: 'commit', msg: {msg}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | return std::io::Result::Ok(format!("cmd: 'sync'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 - return std::io::Result::Ok(format!("cmd: 'sync'")); [INFO] [stdout] 16 + std::io::Result::Ok(format!("cmd: 'sync'")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/sync/syncer_empty.rs:16:32 [INFO] [stdout] | [INFO] [stdout] 16 | return std::io::Result::Ok(format!("cmd: 'sync'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"cmd: 'sync'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | return std::io::Result::Ok(format!("cmd: 'push_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return std::io::Result::Ok(format!("cmd: 'push_force'")); [INFO] [stdout] 19 + std::io::Result::Ok(format!("cmd: 'push_force'")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/sync/syncer_empty.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | return std::io::Result::Ok(format!("cmd: 'push_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"cmd: 'push_force'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | return std::io::Result::Ok(format!("cmd: 'pull_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return std::io::Result::Ok(format!("cmd: 'pull_force'")); [INFO] [stdout] 22 + std::io::Result::Ok(format!("cmd: 'pull_force'")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/sync/syncer_empty.rs:22:32 [INFO] [stdout] | [INFO] [stdout] 22 | return std::io::Result::Ok(format!("cmd: 'pull_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"cmd: 'pull_force'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return obj; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return obj; [INFO] [stdout] 26 + obj [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/storage/storage_json.rs:221:40 [INFO] [stdout] | [INFO] [stdout] 221 | let position = self.position_by_id(item.id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `item.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return Ok("initialization success".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return Ok("initialization success".to_string()); [INFO] [stdout] 40 + Ok("initialization success".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return self.git_with_args(&["push", "-u", "origin", self.branch.clone().as_str()]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return self.git_with_args(&["push", "-u", "origin", self.branch.clone().as_str()]); [INFO] [stdout] 44 + self.git_with_args(&["push", "-u", "origin", self.branch.clone().as_str()]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | return self.git_with_args(&["pull", "origin", self.branch.clone().as_str()]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return self.git_with_args(&["pull", "origin", self.branch.clone().as_str()]); [INFO] [stdout] 48 + self.git_with_args(&["pull", "origin", self.branch.clone().as_str()]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | return Ok("remote isn't set".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 63 - return Ok("remote isn't set".to_string()); [INFO] [stdout] 63 + Ok("remote isn't set".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return git_with_args(&self.main_folder_path, self.key_file.as_ref(), args); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return git_with_args(&self.main_folder_path, self.key_file.as_ref(), args); [INFO] [stdout] 76 + git_with_args(&self.main_folder_path, self.key_file.as_ref(), args) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return self.git_with_args(&["commit", "-a", "-m", msg]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return self.git_with_args(&["commit", "-a", "-m", msg]); [INFO] [stdout] 83 + self.git_with_args(&["commit", "-a", "-m", msg]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / return Ok(format!( [INFO] [stdout] 90 | | "git pull output:\n{}\n\ngit push output:\n{}", [INFO] [stdout] 91 | | pull_output, push_output [INFO] [stdout] 92 | | )); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 ~ Ok(format!( [INFO] [stdout] 90 + "git pull output:\n{}\n\ngit push output:\n{}", [INFO] [stdout] 91 + pull_output, push_output [INFO] [stdout] 92 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / return self.git_with_args(&[ [INFO] [stdout] 97 | | "push", [INFO] [stdout] 98 | | "--force", [INFO] [stdout] 99 | | "-u", [INFO] [stdout] 100 | | "origin", [INFO] [stdout] 101 | | self.branch.clone().as_str(), [INFO] [stdout] 102 | | ]); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 ~ self.git_with_args(&[ [INFO] [stdout] 97 + "push", [INFO] [stdout] 98 + "--force", [INFO] [stdout] 99 + "-u", [INFO] [stdout] 100 + "origin", [INFO] [stdout] 101 + self.branch.clone().as_str(), [INFO] [stdout] 102 ~ ]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / return self.git_with_args(&[ [INFO] [stdout] 107 | | "pull", [INFO] [stdout] 108 | | "--force", [INFO] [stdout] 109 | | "--rebase", [INFO] [stdout] 110 | | "origin", [INFO] [stdout] 111 | | self.branch.clone().as_str(), [INFO] [stdout] 112 | | ]); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 ~ self.git_with_args(&[ [INFO] [stdout] 107 + "pull", [INFO] [stdout] 108 + "--force", [INFO] [stdout] 109 + "--rebase", [INFO] [stdout] 110 + "origin", [INFO] [stdout] 111 + self.branch.clone().as_str(), [INFO] [stdout] 112 ~ ]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `key_file` after checking its variant with `is_some` [INFO] [stdout] --> src/sync/syncer_git.rs:122:57 [INFO] [stdout] | [INFO] [stdout] 121 | if key_file.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = key_file` [INFO] [stdout] 122 | command.env("GIT_SSH_COMMAND", format!("ssh -i {}", key_file.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:134:3 [INFO] [stdout] | [INFO] [stdout] 134 | return Ok(stdout); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return Ok(stdout); [INFO] [stdout] 134 + Ok(stdout) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/sync/syncer_git.rs:129:16 [INFO] [stdout] | [INFO] [stdout] 129 | return Err(std::io::Error::new(std::io::ErrorKind::Other, stdout)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 129 - return Err(std::io::Error::new(std::io::ErrorKind::Other, stdout)); [INFO] [stdout] 129 + return Err(std::io::Error::other(stdout)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `EmptySyncer` [INFO] [stdout] --> src/sync/syncer_empty.rs:6:3 [INFO] [stdout] | [INFO] [stdout] 6 | / pub fn new() -> Self { [INFO] [stdout] 7 | | return Self {}; [INFO] [stdout] 8 | | } [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 5 + impl Default for EmptySyncer { [INFO] [stdout] 6 + fn default() -> Self { [INFO] [stdout] 7 + Self::new() [INFO] [stdout] 8 + } [INFO] [stdout] 9 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | return Self {}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 7 - return Self {}; [INFO] [stdout] 7 + Self {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | return std::io::Result::Ok(format!("cmd: 'commit', msg: {msg}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 - return std::io::Result::Ok(format!("cmd: 'commit', msg: {msg}")); [INFO] [stdout] 13 + std::io::Result::Ok(format!("cmd: 'commit', msg: {msg}")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | return std::io::Result::Ok(format!("cmd: 'sync'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 - return std::io::Result::Ok(format!("cmd: 'sync'")); [INFO] [stdout] 16 + std::io::Result::Ok(format!("cmd: 'sync'")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/sync/syncer_empty.rs:16:32 [INFO] [stdout] | [INFO] [stdout] 16 | return std::io::Result::Ok(format!("cmd: 'sync'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"cmd: 'sync'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | return std::io::Result::Ok(format!("cmd: 'push_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 19 - return std::io::Result::Ok(format!("cmd: 'push_force'")); [INFO] [stdout] 19 + std::io::Result::Ok(format!("cmd: 'push_force'")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/sync/syncer_empty.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | return std::io::Result::Ok(format!("cmd: 'push_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"cmd: 'push_force'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_empty.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | return std::io::Result::Ok(format!("cmd: 'pull_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return std::io::Result::Ok(format!("cmd: 'pull_force'")); [INFO] [stdout] 22 + std::io::Result::Ok(format!("cmd: 'pull_force'")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/sync/syncer_empty.rs:22:32 [INFO] [stdout] | [INFO] [stdout] 22 | return std::io::Result::Ok(format!("cmd: 'pull_force'")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"cmd: 'pull_force'".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return obj; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return obj; [INFO] [stdout] 26 + obj [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return Ok("initialization success".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return Ok("initialization success".to_string()); [INFO] [stdout] 40 + Ok("initialization success".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | return self.git_with_args(&["push", "-u", "origin", self.branch.clone().as_str()]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 44 - return self.git_with_args(&["push", "-u", "origin", self.branch.clone().as_str()]); [INFO] [stdout] 44 + self.git_with_args(&["push", "-u", "origin", self.branch.clone().as_str()]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | return self.git_with_args(&["pull", "origin", self.branch.clone().as_str()]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 - return self.git_with_args(&["pull", "origin", self.branch.clone().as_str()]); [INFO] [stdout] 48 + self.git_with_args(&["pull", "origin", self.branch.clone().as_str()]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | return Ok("remote isn't set".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 63 - return Ok("remote isn't set".to_string()); [INFO] [stdout] 63 + Ok("remote isn't set".to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | return git_with_args(&self.main_folder_path, self.key_file.as_ref(), args); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 76 - return git_with_args(&self.main_folder_path, self.key_file.as_ref(), args); [INFO] [stdout] 76 + git_with_args(&self.main_folder_path, self.key_file.as_ref(), args) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | return self.git_with_args(&["commit", "-a", "-m", msg]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 - return self.git_with_args(&["commit", "-a", "-m", msg]); [INFO] [stdout] 83 + self.git_with_args(&["commit", "-a", "-m", msg]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | / return Ok(format!( [INFO] [stdout] 90 | | "git pull output:\n{}\n\ngit push output:\n{}", [INFO] [stdout] 91 | | pull_output, push_output [INFO] [stdout] 92 | | )); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 ~ Ok(format!( [INFO] [stdout] 90 + "git pull output:\n{}\n\ngit push output:\n{}", [INFO] [stdout] 91 + pull_output, push_output [INFO] [stdout] 92 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | / return self.git_with_args(&[ [INFO] [stdout] 97 | | "push", [INFO] [stdout] 98 | | "--force", [INFO] [stdout] 99 | | "-u", [INFO] [stdout] 100 | | "origin", [INFO] [stdout] 101 | | self.branch.clone().as_str(), [INFO] [stdout] 102 | | ]); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 96 ~ self.git_with_args(&[ [INFO] [stdout] 97 + "push", [INFO] [stdout] 98 + "--force", [INFO] [stdout] 99 + "-u", [INFO] [stdout] 100 + "origin", [INFO] [stdout] 101 + self.branch.clone().as_str(), [INFO] [stdout] 102 ~ ]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / return self.git_with_args(&[ [INFO] [stdout] 107 | | "pull", [INFO] [stdout] 108 | | "--force", [INFO] [stdout] 109 | | "--rebase", [INFO] [stdout] 110 | | "origin", [INFO] [stdout] 111 | | self.branch.clone().as_str(), [INFO] [stdout] 112 | | ]); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 ~ self.git_with_args(&[ [INFO] [stdout] 107 + "pull", [INFO] [stdout] 108 + "--force", [INFO] [stdout] 109 + "--rebase", [INFO] [stdout] 110 + "origin", [INFO] [stdout] 111 + self.branch.clone().as_str(), [INFO] [stdout] 112 ~ ]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `key_file` after checking its variant with `is_some` [INFO] [stdout] --> src/sync/syncer_git.rs:122:57 [INFO] [stdout] | [INFO] [stdout] 121 | if key_file.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = key_file` [INFO] [stdout] 122 | command.env("GIT_SSH_COMMAND", format!("ssh -i {}", key_file.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sync/syncer_git.rs:134:3 [INFO] [stdout] | [INFO] [stdout] 134 | return Ok(stdout); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 134 - return Ok(stdout); [INFO] [stdout] 134 + Ok(stdout) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/sync/syncer_git.rs:129:16 [INFO] [stdout] | [INFO] [stdout] 129 | return Err(std::io::Error::new(std::io::ErrorKind::Other, stdout)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 129 - return Err(std::io::Error::new(std::io::ErrorKind::Other, stdout)); [INFO] [stdout] 129 + return Err(std::io::Error::other(stdout)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/task.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | return total_duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return total_duration; [INFO] [stdout] 69 + total_duration [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/task.rs:106:43 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn from_task(task: &Task, all_tags: &Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 106 - pub fn from_task(task: &Task, all_tags: &Vec) -> Self { [INFO] [stdout] 106 + pub fn from_task(task: &Task, all_tags: &[Tag]) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/task.rs:108:11 [INFO] [stdout] | [INFO] [stdout] 108 | id: task.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `task.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/task.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | return new_tags; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 132 - return new_tags; [INFO] [stdout] 132 + new_tags [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/task.rs:121:49 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn resolve_new_tags(&self, existing_tags: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 121 - pub fn resolve_new_tags(&self, existing_tags: &Vec) -> Vec { [INFO] [stdout] 121 + pub fn resolve_new_tags(&self, existing_tags: &[Tag]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/task.rs:135:35 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn to_task(&self, all_tags: &Vec) -> Task { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 135 - pub fn to_task(&self, all_tags: &Vec) -> Task { [INFO] [stdout] 135 + pub fn to_task(&self, all_tags: &[Tag]) -> Task { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/task.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | return found_tag.id(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 144 - return found_tag.id(); [INFO] [stdout] 144 + found_tag.id() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/task.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | return total_duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return total_duration; [INFO] [stdout] 69 + total_duration [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/time.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / return self [INFO] [stdout] 12 | | .stop_time [INFO] [stdout] 13 | | .unwrap_or(chrono::Local::now()) [INFO] [stdout] 14 | | .signed_duration_since(self.start_time); [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 ~ self [INFO] [stdout] 12 + .stop_time [INFO] [stdout] 13 + .unwrap_or(chrono::Local::now()) [INFO] [stdout] 14 ~ .signed_duration_since(self.start_time) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/time.rs:23:3 [INFO] [stdout] | [INFO] [stdout] 23 | return chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M"); [INFO] [stdout] 23 + chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/task.rs:106:43 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn from_task(task: &Task, all_tags: &Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 106 - pub fn from_task(task: &Task, all_tags: &Vec) -> Self { [INFO] [stdout] 106 + pub fn from_task(task: &Task, all_tags: &[Tag]) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/task.rs:108:11 [INFO] [stdout] | [INFO] [stdout] 108 | id: task.id().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `task.id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/task.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | return new_tags; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 132 - return new_tags; [INFO] [stdout] 132 + new_tags [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/task.rs:121:49 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn resolve_new_tags(&self, existing_tags: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 121 - pub fn resolve_new_tags(&self, existing_tags: &Vec) -> Vec { [INFO] [stdout] 121 + pub fn resolve_new_tags(&self, existing_tags: &[Tag]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/task.rs:135:35 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn to_task(&self, all_tags: &Vec) -> Task { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 135 - pub fn to_task(&self, all_tags: &Vec) -> Task { [INFO] [stdout] 135 + pub fn to_task(&self, all_tags: &[Tag]) -> Task { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/task.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | return found_tag.id(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 144 - return found_tag.id(); [INFO] [stdout] 144 + found_tag.id() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/time.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / return self [INFO] [stdout] 12 | | .stop_time [INFO] [stdout] 13 | | .unwrap_or(chrono::Local::now()) [INFO] [stdout] 14 | | .signed_duration_since(self.start_time); [INFO] [stdout] | |_____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 ~ self [INFO] [stdout] 12 + .stop_time [INFO] [stdout] 13 + .unwrap_or(chrono::Local::now()) [INFO] [stdout] 14 ~ .signed_duration_since(self.start_time) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/time.rs:23:3 [INFO] [stdout] | [INFO] [stdout] 23 | return chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M"); [INFO] [stdout] 23 + chrono::Local.datetime_from_str(&input, "%Y-%m-%d %H:%M") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/busy.rs:311:52 [INFO] [stdout] | [INFO] [stdout] 311 | completions.complete(&mut BusyCli::command()); [INFO] [stdout] | ---------------------------------------------^ unreachable expression [INFO] [stdout] | | [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `std::convert::Infallible`, which is uninhabited [INFO] [stdout] --> src/bin/busy.rs:311:7 [INFO] [stdout] | [INFO] [stdout] 311 | completions.complete(&mut BusyCli::command()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/busy.rs:311:52 [INFO] [stdout] | [INFO] [stdout] 311 | completions.complete(&mut BusyCli::command()); [INFO] [stdout] | ---------------------------------------------^ unreachable expression [INFO] [stdout] | | [INFO] [stdout] | any code following this expression is unreachable [INFO] [stdout] | [INFO] [stdout] note: this expression has type `std::convert::Infallible`, which is uninhabited [INFO] [stdout] --> src/bin/busy.rs:311:7 [INFO] [stdout] | [INFO] [stdout] 311 | completions.complete(&mut BusyCli::command()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/fmt.rs:5:3 [INFO] [stdout] | [INFO] [stdout] 5 | / return format!( [INFO] [stdout] 6 | | "{hours:>3} {minutes:>3}", [INFO] [stdout] 7 | | hours = format_number(hours, "h"), [INFO] [stdout] 8 | | minutes = format_number_force(minutes % 60, "m") [INFO] [stdout] 9 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 5 ~ format!( [INFO] [stdout] 6 + "{hours:>3} {minutes:>3}", [INFO] [stdout] 7 + hours = format_number(hours, "h"), [INFO] [stdout] 8 + minutes = format_number_force(minutes % 60, "m") [INFO] [stdout] 9 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/fmt.rs:16:3 [INFO] [stdout] | [INFO] [stdout] 16 | / return format!( [INFO] [stdout] 17 | | "{hours}{pad}{minutes:>3}", [INFO] [stdout] 18 | | hours = format_number_without_paddings(hours, "h"), [INFO] [stdout] 19 | | pad = match hours == 0 { [INFO] [stdout] ... | [INFO] [stdout] 23 | | minutes = format_number_force(minutes % 60, "m"), [INFO] [stdout] 24 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ format!( [INFO] [stdout] 17 + "{hours}{pad}{minutes:>3}", [INFO] [stdout] 18 + hours = format_number_without_paddings(hours, "h"), [INFO] [stdout] 19 + pad = match hours == 0 { [INFO] [stdout] 20 + true => "", [INFO] [stdout] 21 + false => " ", [INFO] [stdout] 22 + }, [INFO] [stdout] 23 + minutes = format_number_force(minutes % 60, "m"), [INFO] [stdout] 24 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/bin/view/viewer.rs:156:7 [INFO] [stdout] | [INFO] [stdout] 156 | total_duration = total_duration + self.total_time(tasks); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration += self.total_time(tasks)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/bin/view/viewer.rs:169:62 [INFO] [stdout] | [INFO] [stdout] 169 | let project_tags = project_to_tags.entry(project_id).or_insert(BTreeSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/bin/view/viewer.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | return by_dates; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 - return by_dates; [INFO] [stdout] 255 + by_dates [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/bin/view/viewer.rs:221:11 [INFO] [stdout] | [INFO] [stdout] 221 | tags: &Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 221 - tags: &Vec, [INFO] [stdout] 221 + tags: &[Tag], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/bin/view/viewer.rs:238:7 [INFO] [stdout] | [INFO] [stdout] 238 | / if !tags.is_empty() { [INFO] [stdout] 239 | | if !task [INFO] [stdout] 240 | | .tags() [INFO] [stdout] 241 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 246 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 238 ~ if !tags.is_empty() [INFO] [stdout] 239 ~ && !task [INFO] [stdout] 240 | .tags() [INFO] [stdout] ... [INFO] [stdout] 244 | continue; [INFO] [stdout] 245 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/bin/view/viewer.rs:276:7 [INFO] [stdout] | [INFO] [stdout] 276 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:281:5 [INFO] [stdout] | [INFO] [stdout] 281 | / return tasks [INFO] [stdout] 282 | | .iter() [INFO] [stdout] 283 | | .map(|t| t.duration()) [INFO] [stdout] 284 | | .reduce(|acc, new_d| acc + new_d) [INFO] [stdout] 285 | | .unwrap_or(chrono::Duration::zero()); [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 281 ~ tasks [INFO] [stdout] 282 + .iter() [INFO] [stdout] 283 + .map(|t| t.duration()) [INFO] [stdout] 284 + .reduce(|acc, new_d| acc + new_d) [INFO] [stdout] 285 ~ .unwrap_or(chrono::Duration::zero()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/bin/view/viewer.rs:280:31 [INFO] [stdout] | [INFO] [stdout] 280 | fn total_time(&self, tasks: &Vec) -> chrono::Duration { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 280 - fn total_time(&self, tasks: &Vec) -> chrono::Duration { [INFO] [stdout] 280 + fn total_time(&self, tasks: &[Task]) -> chrono::Duration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return "default".to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 308 - return "default".to_string(); [INFO] [stdout] 308 + "default".to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:400:3 [INFO] [stdout] | [INFO] [stdout] 400 | return formatted_time_frames; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 400 - return formatted_time_frames; [INFO] [stdout] 400 + formatted_time_frames [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:430:3 [INFO] [stdout] | [INFO] [stdout] 430 | return time.naive_local().format("%H:%M").to_string().color(color); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 430 - return time.naive_local().format("%H:%M").to_string().color(color); [INFO] [stdout] 430 + time.naive_local().format("%H:%M").to_string().color(color) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/busy.rs:364:3 [INFO] [stdout] | [INFO] [stdout] 364 | return serde_json::from_str(&buf).expect("can't decode item back, please try again"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 364 - return serde_json::from_str(&buf).expect("can't decode item back, please try again"); [INFO] [stdout] 364 + serde_json::from_str(&buf).expect("can't decode item back, please try again") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `project` after checking its variant with `is_some` [INFO] [stdout] --> src/bin/busy.rs:445:26 [INFO] [stdout] | [INFO] [stdout] 444 | if project.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = project` [INFO] [stdout] 445 | project_ids.insert(project.unwrap().id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/busy.rs:451:3 [INFO] [stdout] | [INFO] [stdout] 451 | return Some(project_ids); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 451 - return Some(project_ids); [INFO] [stdout] 451 + Some(project_ids) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/bin/busy.rs:445:26 [INFO] [stdout] | [INFO] [stdout] 445 | project_ids.insert(project.unwrap().id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `project.unwrap().id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/bin/busy.rs:467:20 [INFO] [stdout] | [INFO] [stdout] 467 | Some(id) => Ok(id.clone()), [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/fmt.rs:5:3 [INFO] [stdout] | [INFO] [stdout] 5 | / return format!( [INFO] [stdout] 6 | | "{hours:>3} {minutes:>3}", [INFO] [stdout] 7 | | hours = format_number(hours, "h"), [INFO] [stdout] 8 | | minutes = format_number_force(minutes % 60, "m") [INFO] [stdout] 9 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 5 ~ format!( [INFO] [stdout] 6 + "{hours:>3} {minutes:>3}", [INFO] [stdout] 7 + hours = format_number(hours, "h"), [INFO] [stdout] 8 + minutes = format_number_force(minutes % 60, "m") [INFO] [stdout] 9 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/fmt.rs:16:3 [INFO] [stdout] | [INFO] [stdout] 16 | / return format!( [INFO] [stdout] 17 | | "{hours}{pad}{minutes:>3}", [INFO] [stdout] 18 | | hours = format_number_without_paddings(hours, "h"), [INFO] [stdout] 19 | | pad = match hours == 0 { [INFO] [stdout] ... | [INFO] [stdout] 23 | | minutes = format_number_force(minutes % 60, "m"), [INFO] [stdout] 24 | | ); [INFO] [stdout] | |___^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ format!( [INFO] [stdout] 17 + "{hours}{pad}{minutes:>3}", [INFO] [stdout] 18 + hours = format_number_without_paddings(hours, "h"), [INFO] [stdout] 19 + pad = match hours == 0 { [INFO] [stdout] 20 + true => "", [INFO] [stdout] 21 + false => " ", [INFO] [stdout] 22 + }, [INFO] [stdout] 23 + minutes = format_number_force(minutes % 60, "m"), [INFO] [stdout] 24 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/bin/view/viewer.rs:156:7 [INFO] [stdout] | [INFO] [stdout] 156 | total_duration = total_duration + self.total_time(tasks); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration += self.total_time(tasks)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/bin/view/viewer.rs:169:62 [INFO] [stdout] | [INFO] [stdout] 169 | let project_tags = project_to_tags.entry(project_id).or_insert(BTreeSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/bin/view/viewer.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | return by_dates; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 255 - return by_dates; [INFO] [stdout] 255 + by_dates [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/bin/view/viewer.rs:221:11 [INFO] [stdout] | [INFO] [stdout] 221 | tags: &Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 221 - tags: &Vec, [INFO] [stdout] 221 + tags: &[Tag], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/bin/view/viewer.rs:238:7 [INFO] [stdout] | [INFO] [stdout] 238 | / if !tags.is_empty() { [INFO] [stdout] 239 | | if !task [INFO] [stdout] 240 | | .tags() [INFO] [stdout] 241 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 246 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 238 ~ if !tags.is_empty() [INFO] [stdout] 239 ~ && !task [INFO] [stdout] 240 | .tags() [INFO] [stdout] ... [INFO] [stdout] 244 | continue; [INFO] [stdout] 245 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/bin/view/viewer.rs:276:7 [INFO] [stdout] | [INFO] [stdout] 276 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:281:5 [INFO] [stdout] | [INFO] [stdout] 281 | / return tasks [INFO] [stdout] 282 | | .iter() [INFO] [stdout] 283 | | .map(|t| t.duration()) [INFO] [stdout] 284 | | .reduce(|acc, new_d| acc + new_d) [INFO] [stdout] 285 | | .unwrap_or(chrono::Duration::zero()); [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 281 ~ tasks [INFO] [stdout] 282 + .iter() [INFO] [stdout] 283 + .map(|t| t.duration()) [INFO] [stdout] 284 + .reduce(|acc, new_d| acc + new_d) [INFO] [stdout] 285 ~ .unwrap_or(chrono::Duration::zero()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/bin/view/viewer.rs:280:31 [INFO] [stdout] | [INFO] [stdout] 280 | fn total_time(&self, tasks: &Vec) -> chrono::Duration { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 280 - fn total_time(&self, tasks: &Vec) -> chrono::Duration { [INFO] [stdout] 280 + fn total_time(&self, tasks: &[Task]) -> chrono::Duration { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return "default".to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 308 - return "default".to_string(); [INFO] [stdout] 308 + "default".to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:400:3 [INFO] [stdout] | [INFO] [stdout] 400 | return formatted_time_frames; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 400 - return formatted_time_frames; [INFO] [stdout] 400 + formatted_time_frames [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/view/viewer.rs:430:3 [INFO] [stdout] | [INFO] [stdout] 430 | return time.naive_local().format("%H:%M").to_string().color(color); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 430 - return time.naive_local().format("%H:%M").to_string().color(color); [INFO] [stdout] 430 + time.naive_local().format("%H:%M").to_string().color(color) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/busy.rs:364:3 [INFO] [stdout] | [INFO] [stdout] 364 | return serde_json::from_str(&buf).expect("can't decode item back, please try again"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 364 - return serde_json::from_str(&buf).expect("can't decode item back, please try again"); [INFO] [stdout] 364 + serde_json::from_str(&buf).expect("can't decode item back, please try again") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `project` after checking its variant with `is_some` [INFO] [stdout] --> src/bin/busy.rs:445:26 [INFO] [stdout] | [INFO] [stdout] 444 | if project.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = project` [INFO] [stdout] 445 | project_ids.insert(project.unwrap().id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/bin/busy.rs:451:3 [INFO] [stdout] | [INFO] [stdout] 451 | return Some(project_ids); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 451 - return Some(project_ids); [INFO] [stdout] 451 + Some(project_ids) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/bin/busy.rs:445:26 [INFO] [stdout] | [INFO] [stdout] 445 | project_ids.insert(project.unwrap().id().clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `project.unwrap().id()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/bin/busy.rs:467:20 [INFO] [stdout] | [INFO] [stdout] 467 | Some(id) => Ok(id.clone()), [INFO] [stdout] | ^^^^^^^^^^ help: try removing the `clone` call: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.59s [INFO] running `Command { std: "docker" "inspect" "21356a083f62c3e4d60f5c41c5a476bc1b7e3c6866955848c59b7f2165323710", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "21356a083f62c3e4d60f5c41c5a476bc1b7e3c6866955848c59b7f2165323710", kill_on_drop: false }` [INFO] [stdout] 21356a083f62c3e4d60f5c41c5a476bc1b7e3c6866955848c59b7f2165323710