[INFO] cloning repository https://github.com/Tiggax/bion [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Tiggax/bion" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTiggax%2Fbion", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTiggax%2Fbion'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ee94782794f3786a9fc741bb7553e0f91bf9c9ec [INFO] linting Tiggax/bion against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTiggax%2Fbion" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/Tiggax/bion [INFO] finished tweaking git repo https://github.com/Tiggax/bion [INFO] tweaked toml for git repo https://github.com/Tiggax/bion written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Tiggax/bion 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/Tiggax/bion 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] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/Tiggax/ode-solvers.git` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded objc2-io-surface v0.3.0 [INFO] [stderr] Downloaded argmin-math v0.4.0 [INFO] [stderr] Downloaded async-once-cell v0.5.4 [INFO] [stderr] Downloaded objc2-core-graphics v0.3.0 [INFO] [stderr] Downloaded cc v1.2.18 [INFO] [stderr] Downloaded eframe v0.27.2 [INFO] [stderr] Downloaded argmin v0.10.0 [INFO] [stderr] Downloaded arboard v3.5.0 [INFO] [stderr] Downloaded egui_glow v0.27.2 [INFO] [stderr] Downloaded async-executor v1.13.1 [INFO] [stderr] Downloaded quick-xml v0.37.4 [INFO] [stderr] Downloaded egui-wgpu v0.27.2 [INFO] [stderr] Downloaded egui-winit v0.27.2 [INFO] [stderr] Downloaded emath v0.27.2 [INFO] [stderr] Downloaded winresource v0.1.20 [INFO] [stderr] Downloaded ecolor v0.27.2 [INFO] [stderr] Downloaded egui_plot v0.27.2 [INFO] [stderr] Downloaded egui v0.27.2 [INFO] [stderr] Downloaded objc2-app-kit v0.3.0 [INFO] [stderr] Downloaded epaint v0.27.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 98ac13339db4006859421eb6047f005c8884894d4df6be7ae765d0fd71737241 [INFO] running `Command { std: "docker" "start" "-a" "98ac13339db4006859421eb6047f005c8884894d4df6be7ae765d0fd71737241", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "98ac13339db4006859421eb6047f005c8884894d4df6be7ae765d0fd71737241", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "98ac13339db4006859421eb6047f005c8884894d4df6be7ae765d0fd71737241", kill_on_drop: false }` [INFO] [stdout] 98ac13339db4006859421eb6047f005c8884894d4df6be7ae765d0fd71737241 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 14f14b94ddef4015e715e793d0f924c754f97e84923257e0b661fa40bcec6c31 [INFO] running `Command { std: "docker" "start" "-a" "14f14b94ddef4015e715e793d0f924c754f97e84923257e0b661fa40bcec6c31", kill_on_drop: false }` [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling wayland-sys v0.31.6 [INFO] [stderr] Compiling bytemuck_derive v1.9.3 [INFO] [stderr] Compiling quick-xml v0.37.4 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling zerocopy v0.8.24 [INFO] [stderr] Compiling enumflags2_derive v0.7.11 [INFO] [stderr] Compiling wayland-scanner v0.31.6 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Compiling icu_locid_transform_data v1.5.1 [INFO] [stderr] Checking blocking v1.6.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling icu_properties_data v1.5.1 [INFO] [stderr] Compiling icu_normalizer_data v1.5.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Compiling cc v1.2.18 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking enumflags2 v0.7.11 [INFO] [stderr] Compiling winnow v0.7.6 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Compiling toml_datetime v0.6.8 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Compiling serde_spanned v0.6.8 [INFO] [stderr] Checking async-executor v1.13.1 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling wayland-backend v0.3.8 [INFO] [stderr] Checking polling v3.7.4 [INFO] [stderr] Checking xdg-home v1.3.0 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling async-fs v1.6.0 [INFO] [stderr] Checking polling v2.8.0 [INFO] [stderr] Compiling toml_edit v0.22.24 [INFO] [stderr] Checking wayland-client v0.31.8 [INFO] [stderr] Compiling xml-rs v0.8.26 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling zvariant_utils v1.0.1 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking async-io v1.13.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking wayland-cursor v0.31.8 [INFO] [stderr] Checking wayland-protocols v0.31.2 [INFO] [stderr] Checking async-broadcast v0.5.1 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking calloop v0.12.4 [INFO] [stderr] Checking accesskit v0.12.3 [INFO] [stderr] Compiling smithay-client-toolkit v0.18.1 [INFO] [stderr] Checking calloop-wayland-source v0.2.0 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Compiling zvariant_utils v2.1.0 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Compiling winit v0.29.15 [INFO] [stderr] Compiling zvariant_derive v3.15.2 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Checking zvariant v3.15.2 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking emath v0.27.2 [INFO] [stderr] Compiling zbus_macros v3.15.2 [INFO] [stderr] Checking ecolor v0.27.2 [INFO] [stderr] Checking raw-window-handle v0.5.2 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking epaint v0.27.2 [INFO] [stderr] Compiling zvariant_derive v4.2.0 [INFO] [stderr] Checking zbus_names v2.6.1 [INFO] [stderr] Checking wayland-protocols v0.32.6 [INFO] [stderr] Compiling glutin_egl_sys v0.6.0 [INFO] [stderr] Compiling glutin_glx_sys v0.5.0 [INFO] [stderr] Checking wayland-protocols-wlr v0.2.0 [INFO] [stderr] Checking wayland-protocols-plasma v0.2.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking zvariant v4.2.0 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking miniz_oxide v0.8.8 [INFO] [stderr] Checking egui v0.27.2 [INFO] [stderr] Checking async-io v2.4.0 [INFO] [stderr] Checking accesskit_consumer v0.16.1 [INFO] [stderr] Compiling glutin v0.31.3 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Compiling matrixmultiply v0.3.9 [INFO] [stderr] Checking async-once-cell v0.5.4 [INFO] [stderr] Checking flate2 v1.1.1 [INFO] [stderr] Checking wide v0.7.32 [INFO] [stderr] Checking zbus v3.15.2 [INFO] [stderr] Checking sctk-adwaita v0.8.3 [INFO] [stderr] Checking async-fs v2.1.2 [INFO] [stderr] Compiling zbus_macros v4.4.0 [INFO] [stderr] Compiling toml v0.8.20 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking zbus_names v3.0.0 [INFO] [stderr] Compiling glutin-winit v0.4.2 [INFO] [stderr] Checking home v0.5.11 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Checking simba v0.8.1 [INFO] [stderr] Checking webbrowser v0.8.15 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Compiling winresource v0.1.20 [INFO] [stderr] Checking async-net v2.0.0 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.6 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking arboard v3.5.0 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking web-time v0.2.4 [INFO] [stderr] Compiling rfd v0.14.1 [INFO] [stderr] Compiling litrs v0.4.1 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking egui_glow v0.27.2 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking argmin-math v0.4.0 [INFO] [stderr] Compiling bion v1.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking rand_xoshiro v0.6.0 [INFO] [stderr] Checking csv-core v0.1.12 [INFO] [stderr] Compiling document-features v0.2.11 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking jiff v0.2.6 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking argmin v0.10.0 [INFO] [stderr] Checking csv v1.3.1 [INFO] [stderr] Checking zbus v4.4.0 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking atspi-common v0.3.0 [INFO] [stderr] Checking egui_plot v0.27.2 [INFO] [stderr] Checking smithay-clipboard v0.7.2 [INFO] [stderr] Checking nalgebra v0.32.6 [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Checking atspi-proxies v0.3.0 [INFO] [stderr] Checking ashpd v0.8.1 [INFO] [stderr] Checking atspi-connection v0.3.0 [INFO] [stderr] Checking atspi v0.19.0 [INFO] [stderr] Checking accesskit_unix v0.6.2 [INFO] [stderr] Checking accesskit_winit v0.16.1 [INFO] [stderr] Checking egui-winit v0.27.2 [INFO] [stderr] Checking eframe v0.27.2 [INFO] [stderr] Checking ode_solvers v0.4.0 (https://github.com/Tiggax/ode-solvers.git?branch=thesis_fix#1dbfc5f1) [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/model.rs:440:17 [INFO] [stdout] | [INFO] [stdout] 440 | k_la *= (self.initial.volume / v); // dilution volume correction [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 440 - k_la *= (self.initial.volume / v); // dilution volume correction [INFO] [stdout] 440 + k_la *= self.initial.volume / v ; // dilution volume correction [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui/tree.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/model.rs:440:17 [INFO] [stdout] | [INFO] [stdout] 440 | k_la *= (self.initial.volume / v); // dilution volume correction [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 440 - k_la *= (self.initial.volume / v); // dilution volume correction [INFO] [stdout] 440 + k_la *= self.initial.volume / v ; // dilution volume correction [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui/tree.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | name: name, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `o2_flow` is never read [INFO] [stdout] --> src/model.rs:385:40 [INFO] [stdout] | [INFO] [stdout] 385 | let (v, vcd, gluc, glut, c_o2, mut o2_flow, product) = [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/model.rs:473:22 [INFO] [stdout] | [INFO] [stdout] 473 | fn system(&self, x: Time, y: &State, dy: &mut State) {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/model.rs:473:31 [INFO] [stdout] | [INFO] [stdout] 473 | fn system(&self, x: Time, y: &State, dy: &mut State) {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dy` [INFO] [stdout] --> src/model.rs:473:42 [INFO] [stdout] | [INFO] [stdout] 473 | fn system(&self, x: Time, y: &State, dy: &mut State) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/app.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | let mut olds = self.old_sim.clone(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/app.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | let mut last_state = self.sim.clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y_i` [INFO] [stdout] --> src/ui/app.rs:348:55 [INFO] [stdout] | [INFO] [stdout] 348 | ... target.iter().find(|[x_i, y_i]| (x_i - point).abs() <= 0.5) [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_y_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file` [INFO] [stdout] --> src/ui/app.rs:136:29 [INFO] [stdout] | [INFO] [stdout] 136 | let file = if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_file_export` [INFO] [stdout] --> src/ui/app.rs:189:29 [INFO] [stdout] | [INFO] [stdout] 189 | let selected_file_export = path.display().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_file_export` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t_i` [INFO] [stdout] --> src/ui/app.rs:347:38 [INFO] [stdout] | [INFO] [stdout] 347 | if let Some([t_i, y_i]) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_t_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> src/ui/app.rs:466:51 [INFO] [stdout] | [INFO] [stdout] 466 | fn center_panel(&mut self, ui: &mut egui::Ui, ctx: &egui::Context) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plot_resp` [INFO] [stdout] --> src/ui/app.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let plot_resp = my_plot.show(ui, |plot_ui| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plot_resp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `default` is never used [INFO] [stdout] --> src/regressor.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 112 | impl Regressor { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 113 | fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/base.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn default() -> Self { [INFO] [stdout] 16 | | Self { [INFO] [stdout] 17 | | volume: Vec::new(), [INFO] [stdout] 18 | | vcd: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/base.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn default() -> Self { [INFO] [stdout] 37 | | Self { [INFO] [stdout] 38 | | vcd: 0.5, [INFO] [stdout] 39 | | gluc: 7., [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn default() -> Self { [INFO] [stdout] 27 | | Self { [INFO] [stdout] 28 | | n_vcd: 0.7, [INFO] [stdout] 29 | | day: 3.5, [INFO] [stdout] 30 | | } [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / pub fn default() -> Self { [INFO] [stdout] 50 | | Self { [INFO] [stdout] 51 | | product: 1e-4, [INFO] [stdout] 52 | | k_glucose: 1e-4, [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 74 | / pub fn default() -> Self { [INFO] [stdout] 75 | | Self { [INFO] [stdout] 76 | | cell_metabolism: 1.266, [INFO] [stdout] 77 | | air_flow: 5e-3, [INFO] [stdout] ... | [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | / pub fn default() -> Self { [INFO] [stdout] 96 | | Self { [INFO] [stdout] 97 | | minimum: 25., [INFO] [stdout] 98 | | fi_oxygen_max: 15., [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | / pub fn default() -> Self { [INFO] [stdout] 122 | | Self { [INFO] [stdout] 123 | | volume: 45., [INFO] [stdout] 124 | | vcd: 0.5, [INFO] [stdout] ... | [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn default() -> Self { [INFO] [stdout] 148 | | Self { [INFO] [stdout] 149 | | start: 2., [INFO] [stdout] 150 | | rate: 0.03, [INFO] [stdout] ... | [INFO] [stdout] 154 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:172:5 [INFO] [stdout] | [INFO] [stdout] 172 | / pub fn default() -> Self { [INFO] [stdout] 173 | | Self { [INFO] [stdout] 174 | | mu_max: 0.0005, [INFO] [stdout] 175 | | power_input: 20., [INFO] [stdout] ... | [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | / ui.add(Slider::new(&mut self.initial.vcd, 0.0..=10.).text("VCD [MVC/mL]")) [INFO] [stdout] 220 | | .changed() [INFO] [stdout] 221 | | || ui [INFO] [stdout] 222 | | .add( [INFO] [stdout] ... | [INFO] [stdout] 244 | | .changed() [INFO] [stdout] 245 | | || false [INFO] [stdout] | |________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 219 ~ ui.add(Slider::new(&mut self.initial.vcd, 0.0..=10.).text("VCD [MVC/mL]")) [INFO] [stdout] 220 + .changed() || ui [INFO] [stdout] 221 + .add( [INFO] [stdout] 222 + Slider::new(&mut self.initial.volume, 0.0..=100.) [INFO] [stdout] 223 + .text("volume [L]"), [INFO] [stdout] 224 + ) [INFO] [stdout] 225 + .changed() || ui [INFO] [stdout] 226 + .add( [INFO] [stdout] 227 + Slider::new(&mut self.initial.glucose, 0.0..=20.) [INFO] [stdout] 228 + .text("glucose [g/L]"), [INFO] [stdout] 229 + ) [INFO] [stdout] 230 + .changed() || ui [INFO] [stdout] 231 + .add( [INFO] [stdout] 232 + Slider::new(&mut self.initial.glutamine, 0.0..=20.) [INFO] [stdout] 233 + .text("glutamine [g/L]"), [INFO] [stdout] 234 + ) [INFO] [stdout] 235 + .changed() || ui [INFO] [stdout] 236 + .add( [INFO] [stdout] 237 + Slider::new(&mut self.initial.oxygen_part, 0.0..=100.) [INFO] [stdout] 238 + .text("oxigen part [%]"), [INFO] [stdout] 239 + ) [INFO] [stdout] 240 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:251:21 [INFO] [stdout] | [INFO] [stdout] 251 | / ui.add( [INFO] [stdout] 252 | | Slider::new(&mut self.constants.product, 0.0..=0.001) [INFO] [stdout] 253 | | .text("product [mg/MVC min]"), [INFO] [stdout] ... | [INFO] [stdout] 282 | | .changed() [INFO] [stdout] 283 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 251 ~ ui.add( [INFO] [stdout] 252 + Slider::new(&mut self.constants.product, 0.0..=0.001) [INFO] [stdout] 253 + .text("product [mg/MVC min]"), [INFO] [stdout] 254 + ) [INFO] [stdout] 255 + .changed() || ui [INFO] [stdout] 256 + .add( [INFO] [stdout] 257 + Slider::new(&mut self.constants.k_glucose, 0.0..=0.001) [INFO] [stdout] 258 + .text("glucose [MVC/min]"), [INFO] [stdout] 259 + ) [INFO] [stdout] 260 + .changed() || ui [INFO] [stdout] 261 + .add( [INFO] [stdout] 262 + Slider::new(&mut self.constants.k_glutamine, 0.0..=0.001) [INFO] [stdout] 263 + .text("glutamine [MVC/min]"), [INFO] [stdout] 264 + ) [INFO] [stdout] 265 + .changed() || ui [INFO] [stdout] 266 + .add( [INFO] [stdout] 267 + Slider::new(&mut self.constants.kDO, 0.0..=0.001) [INFO] [stdout] 268 + .text("kDO [mol/L]"), [INFO] [stdout] 269 + ) [INFO] [stdout] 270 + .changed() || ui [INFO] [stdout] 271 + .add(Slider::new(&mut self.constants.kP, 0.0..=1.).text("kP [/]")) [INFO] [stdout] 272 + .changed() || ui [INFO] [stdout] 273 + .add( [INFO] [stdout] 274 + Slider::new(&mut self.airation.henry, 0.0..=10.) [INFO] [stdout] 275 + .text("Henry's constant [mol/(bar L)]"), [INFO] [stdout] 276 + ) [INFO] [stdout] 277 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:290:21 [INFO] [stdout] | [INFO] [stdout] 290 | / ui.add(Slider::new(&mut self.temp_shift.day, 0.0..=14.).text("shift day")) [INFO] [stdout] 291 | | .changed() [INFO] [stdout] 292 | | || ui [INFO] [stdout] 293 | | .add( [INFO] [stdout] ... | [INFO] [stdout] 297 | | .changed() [INFO] [stdout] 298 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 290 ~ ui.add(Slider::new(&mut self.temp_shift.day, 0.0..=14.).text("shift day")) [INFO] [stdout] 291 + .changed() || ui [INFO] [stdout] 292 + .add( [INFO] [stdout] 293 + Slider::new(&mut self.temp_shift.n_vcd, 0.0..=2.) [INFO] [stdout] 294 + .text("post shift growth"), [INFO] [stdout] 295 + ) [INFO] [stdout] 296 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:304:21 [INFO] [stdout] | [INFO] [stdout] 304 | / ui.add( [INFO] [stdout] 305 | | Slider::new(&mut self.airation.cell_metabolism, 0.0..=100.) [INFO] [stdout] 306 | | .text("Cell metabolism [mol / (cell min)]"), [INFO] [stdout] ... | [INFO] [stdout] 343 | | .unwrap_or(false) [INFO] [stdout] 344 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 304 ~ ui.add( [INFO] [stdout] 305 + Slider::new(&mut self.airation.cell_metabolism, 0.0..=100.) [INFO] [stdout] 306 + .text("Cell metabolism [mol / (cell min)]"), [INFO] [stdout] 307 + ) [INFO] [stdout] 308 + .changed() || ui [INFO] [stdout] 309 + .add( [INFO] [stdout] 310 + Slider::new(&mut self.airation.air_flow, 0.0..=10.) [INFO] [stdout] 311 + .text("Air flow [L / min]"), [INFO] [stdout] 312 + ) [INFO] [stdout] 313 + .changed() || ui [INFO] [stdout] 314 + .collapsing("PID", |ui| { [INFO] [stdout] 315 + ui.add( [INFO] [stdout] 316 + Slider::new(&mut self.airation.pid.minimum, 0.0..=100.) [INFO] [stdout] 317 + .text("minimum [%]"), [INFO] [stdout] 318 + ) [INFO] [stdout] 319 + .changed() [INFO] [stdout] 320 + || ui [INFO] [stdout] 321 + .add( [INFO] [stdout] 322 + Slider::new( [INFO] [stdout] 323 + &mut self.airation.pid.max_flow, [INFO] [stdout] 324 + 0.0..=100., [INFO] [stdout] 325 + ) [INFO] [stdout] 326 + .text("max_flow [L/min]"), [INFO] [stdout] 327 + ) [INFO] [stdout] 328 + .changed() [INFO] [stdout] 329 + || ui [INFO] [stdout] 330 + .add( [INFO] [stdout] 331 + Slider::new( [INFO] [stdout] 332 + &mut self.airation.pid.fi_oxygen_max, [INFO] [stdout] 333 + 0.0..=100., [INFO] [stdout] 334 + ) [INFO] [stdout] 335 + .text("fi_oxigen_max [L / min]"), [INFO] [stdout] 336 + ) [INFO] [stdout] 337 + .changed() [INFO] [stdout] 338 + || false [INFO] [stdout] 339 + }) [INFO] [stdout] 340 + .body_returned [INFO] [stdout] 341 + .unwrap_or(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:317:33 [INFO] [stdout] | [INFO] [stdout] 317 | / ... ui.add( [INFO] [stdout] 318 | | ... Slider::new(&mut self.airation.pid.minimum, 0.0..=100.) [INFO] [stdout] 319 | | ... .text("minimum [%]"), [INFO] [stdout] ... | [INFO] [stdout] 339 | | ... .changed() [INFO] [stdout] 340 | | ... || false [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 317 ~ ui.add( [INFO] [stdout] 318 + Slider::new(&mut self.airation.pid.minimum, 0.0..=100.) [INFO] [stdout] 319 + .text("minimum [%]"), [INFO] [stdout] 320 + ) [INFO] [stdout] 321 + .changed() || ui [INFO] [stdout] 322 + .add( [INFO] [stdout] 323 + Slider::new( [INFO] [stdout] 324 + &mut self.airation.pid.max_flow, [INFO] [stdout] 325 + 0.0..=100., [INFO] [stdout] 326 + ) [INFO] [stdout] 327 + .text("max_flow [L/min]"), [INFO] [stdout] 328 + ) [INFO] [stdout] 329 + .changed() || ui [INFO] [stdout] 330 + .add( [INFO] [stdout] 331 + Slider::new( [INFO] [stdout] 332 + &mut self.airation.pid.fi_oxygen_max, [INFO] [stdout] 333 + 0.0..=100., [INFO] [stdout] 334 + ) [INFO] [stdout] 335 + .text("fi_oxigen_max [L / min]"), [INFO] [stdout] 336 + ) [INFO] [stdout] 337 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:350:21 [INFO] [stdout] | [INFO] [stdout] 350 | / ui.add(Slider::new(&mut self.feeding.start, 0.0..=14.).text("start")) [INFO] [stdout] 351 | | .changed() [INFO] [stdout] 352 | | || ui [INFO] [stdout] 353 | | .add(Slider::new(&mut self.feeding.rate, 0.0..=1.).text("rate")) [INFO] [stdout] ... | [INFO] [stdout] 363 | | .changed() [INFO] [stdout] 364 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 350 ~ ui.add(Slider::new(&mut self.feeding.start, 0.0..=14.).text("start")) [INFO] [stdout] 351 + .changed() || ui [INFO] [stdout] 352 + .add(Slider::new(&mut self.feeding.rate, 0.0..=1.).text("rate")) [INFO] [stdout] 353 + .changed() || ui [INFO] [stdout] 354 + .add(Slider::new(&mut self.feeding.glucose, 0.0..=100.).text("glucose")) [INFO] [stdout] 355 + .changed() || ui [INFO] [stdout] 356 + .add( [INFO] [stdout] 357 + Slider::new(&mut self.feeding.glutamine, 0.0..=100.) [INFO] [stdout] 358 + .text("glutamine"), [INFO] [stdout] 359 + ) [INFO] [stdout] 360 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/model.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | -1. * c_mu.abs() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using: `-c_mu.abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/regressor.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | / pub fn default() -> Self { [INFO] [stdout] 32 | | Self { [INFO] [stdout] 33 | | target: Target::MuMax, [INFO] [stdout] 34 | | mode: Mode::Mixed, [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/regressor.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 100 | let out = out.into_iter().rev().collect(); [INFO] [stdout] | ------------------------------------------ unnecessary `let` binding [INFO] [stdout] 101 | out [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 100 ~ [INFO] [stdout] 101 ~ out.into_iter().rev().collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/regressor.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | return Err(Error::msg("no result")); [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] 203 - return Err(Error::msg("no result")); [INFO] [stdout] 203 + Err(Error::msg("no result")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/ui/tree.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | / if node.ui(ui) == Action::Delete { [INFO] [stdout] 95 | | false [INFO] [stdout] 96 | | } else { [INFO] [stdout] 97 | | true [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `node.ui(ui) != Action::Delete` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/ui/tree.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | if self.children.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.children.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/ui/tree.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / pub fn default() -> Self { [INFO] [stdout] 152 | | Self { [INFO] [stdout] 153 | | x: 0., [INFO] [stdout] 154 | | y: 0. [INFO] [stdout] 155 | | } [INFO] [stdout] 156 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/ui/app.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 136 | / let file = if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] 137 | | let mut rdr = csv::Reader::from_reader(content.as_bytes()); [INFO] [stdout] 138 | | for result in rdr.deserialize() { [INFO] [stdout] 139 | | if let Ok(res) = result { [INFO] [stdout] ... | [INFO] [stdout] 172 | | }; [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 136 - let file = if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] 136 + if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/ui/app.rs:138:29 [INFO] [stdout] | [INFO] [stdout] 138 | / ... for result in rdr.deserialize() { [INFO] [stdout] 139 | | ... if let Ok(res) = result { [INFO] [stdout] 140 | | ... let record: Record = res; [INFO] [stdout] 141 | | ... if let Some(minute) = record.minutes { [INFO] [stdout] ... | [INFO] [stdout] 171 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/ui/app.rs:139:33 [INFO] [stdout] | [INFO] [stdout] 139 | / ... if let Ok(res) = result { [INFO] [stdout] 140 | | ... let record: Record = res; [INFO] [stdout] 141 | | ... if let Some(minute) = record.minutes { [INFO] [stdout] 142 | | ... if let Some(vcd) = record.vcd { [INFO] [stdout] ... | [INFO] [stdout] 170 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 138 ~ for res in rdr.deserialize().flatten() { [INFO] [stdout] 139 + let record: Record = res; [INFO] [stdout] 140 + if let Some(minute) = record.minutes { [INFO] [stdout] 141 + if let Some(vcd) = record.vcd { [INFO] [stdout] 142 + self.point_nodes.add("VCD".to_string(), minute, vcd); [INFO] [stdout] 143 + } [INFO] [stdout] 144 + if let Some(gln) = record.gln { [INFO] [stdout] 145 + self.point_nodes.add( [INFO] [stdout] 146 + "Glutamin".to_string(), [INFO] [stdout] 147 + minute, [INFO] [stdout] 148 + gln, [INFO] [stdout] 149 + ); [INFO] [stdout] 150 + } [INFO] [stdout] 151 + if let Some(gluc) = record.gluc { [INFO] [stdout] 152 + self.point_nodes.add( [INFO] [stdout] 153 + "Glucose".to_string(), [INFO] [stdout] 154 + minute, [INFO] [stdout] 155 + gluc, [INFO] [stdout] 156 + ); [INFO] [stdout] 157 + } [INFO] [stdout] 158 + if let Some(oxygen) = record.do_50 { [INFO] [stdout] 159 + self.point_nodes.add("DO".to_string(), minute, oxygen); [INFO] [stdout] 160 + } [INFO] [stdout] 161 + if let Some(product) = record.product { [INFO] [stdout] 162 + self.point_nodes.add( [INFO] [stdout] 163 + "Product".to_string(), [INFO] [stdout] 164 + minute, [INFO] [stdout] 165 + product, [INFO] [stdout] 166 + ); [INFO] [stdout] 167 + } [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/ui/app.rs:568:28 [INFO] [stdout] | [INFO] [stdout] 568 | HLine::new(self.sim.airation.pid.minimum.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.sim.airation.pid.minimum` [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: structure field `kP` should have a snake case name [INFO] [stdout] --> src/model.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | pub kP: f64, // [] [INFO] [stdout] | ^^ help: convert the identifier to snake case: `k_p` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `kDO` should have a snake case name [INFO] [stdout] --> src/model.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | pub kDO: f64, // [%] [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `k_do` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `DO` should have a snake case name [INFO] [stdout] --> src/ui/app.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | DO: Option, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier [INFO] [stdout] | [INFO] [stdout] 41 - DO: Option, [INFO] [stdout] 41 + r#do: Option, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `c_O2` should have a snake case name [INFO] [stdout] --> src/ui/app.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | c_O2: Option, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case (notice the capitalization): `c_o2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `DO` should have a snake case name [INFO] [stdout] --> src/ui/app.rs:542:17 [INFO] [stdout] | [INFO] [stdout] 542 | let DO: Vec<[f64; 2]> = self [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier [INFO] [stdout] | [INFO] [stdout] 542 - let DO: Vec<[f64; 2]> = self [INFO] [stdout] 542 + let r#do: Vec<[f64; 2]> = self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `o2_flow` is never read [INFO] [stdout] --> src/model.rs:385:40 [INFO] [stdout] | [INFO] [stdout] 385 | let (v, vcd, gluc, glut, c_o2, mut o2_flow, product) = [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/model.rs:473:22 [INFO] [stdout] | [INFO] [stdout] 473 | fn system(&self, x: Time, y: &State, dy: &mut State) {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/model.rs:473:31 [INFO] [stdout] | [INFO] [stdout] 473 | fn system(&self, x: Time, y: &State, dy: &mut State) {} [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dy` [INFO] [stdout] --> src/model.rs:473:42 [INFO] [stdout] | [INFO] [stdout] 473 | fn system(&self, x: Time, y: &State, dy: &mut State) {} [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_dy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/app.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | let mut olds = self.old_sim.clone(); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/app.rs:84:17 [INFO] [stdout] | [INFO] [stdout] 84 | let mut last_state = self.sim.clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y_i` [INFO] [stdout] --> src/ui/app.rs:348:55 [INFO] [stdout] | [INFO] [stdout] 348 | ... target.iter().find(|[x_i, y_i]| (x_i - point).abs() <= 0.5) [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_y_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file` [INFO] [stdout] --> src/ui/app.rs:136:29 [INFO] [stdout] | [INFO] [stdout] 136 | let file = if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_file_export` [INFO] [stdout] --> src/ui/app.rs:189:29 [INFO] [stdout] | [INFO] [stdout] 189 | let selected_file_export = path.display().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_file_export` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t_i` [INFO] [stdout] --> src/ui/app.rs:347:38 [INFO] [stdout] | [INFO] [stdout] 347 | if let Some([t_i, y_i]) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_t_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> src/ui/app.rs:466:51 [INFO] [stdout] | [INFO] [stdout] 466 | fn center_panel(&mut self, ui: &mut egui::Ui, ctx: &egui::Context) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `plot_resp` [INFO] [stdout] --> src/ui/app.rs:485:13 [INFO] [stdout] | [INFO] [stdout] 485 | let plot_resp = my_plot.show(ui, |plot_ui| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_plot_resp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `default` is never used [INFO] [stdout] --> src/regressor.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 112 | impl Regressor { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 113 | fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/base.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn default() -> Self { [INFO] [stdout] 16 | | Self { [INFO] [stdout] 17 | | volume: Vec::new(), [INFO] [stdout] 18 | | vcd: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/base.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | / pub fn default() -> Self { [INFO] [stdout] 37 | | Self { [INFO] [stdout] 38 | | vcd: 0.5, [INFO] [stdout] 39 | | gluc: 7., [INFO] [stdout] ... | [INFO] [stdout] 42 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn default() -> Self { [INFO] [stdout] 27 | | Self { [INFO] [stdout] 28 | | n_vcd: 0.7, [INFO] [stdout] 29 | | day: 3.5, [INFO] [stdout] 30 | | } [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / pub fn default() -> Self { [INFO] [stdout] 50 | | Self { [INFO] [stdout] 51 | | product: 1e-4, [INFO] [stdout] 52 | | k_glucose: 1e-4, [INFO] [stdout] ... | [INFO] [stdout] 57 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 74 | / pub fn default() -> Self { [INFO] [stdout] 75 | | Self { [INFO] [stdout] 76 | | cell_metabolism: 1.266, [INFO] [stdout] 77 | | air_flow: 5e-3, [INFO] [stdout] ... | [INFO] [stdout] 81 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | / pub fn default() -> Self { [INFO] [stdout] 96 | | Self { [INFO] [stdout] 97 | | minimum: 25., [INFO] [stdout] 98 | | fi_oxygen_max: 15., [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | / pub fn default() -> Self { [INFO] [stdout] 122 | | Self { [INFO] [stdout] 123 | | volume: 45., [INFO] [stdout] 124 | | vcd: 0.5, [INFO] [stdout] ... | [INFO] [stdout] 129 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | / pub fn default() -> Self { [INFO] [stdout] 148 | | Self { [INFO] [stdout] 149 | | start: 2., [INFO] [stdout] 150 | | rate: 0.03, [INFO] [stdout] ... | [INFO] [stdout] 154 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/model.rs:172:5 [INFO] [stdout] | [INFO] [stdout] 172 | / pub fn default() -> Self { [INFO] [stdout] 173 | | Self { [INFO] [stdout] 174 | | mu_max: 0.0005, [INFO] [stdout] 175 | | power_input: 20., [INFO] [stdout] ... | [INFO] [stdout] 185 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:219:21 [INFO] [stdout] | [INFO] [stdout] 219 | / ui.add(Slider::new(&mut self.initial.vcd, 0.0..=10.).text("VCD [MVC/mL]")) [INFO] [stdout] 220 | | .changed() [INFO] [stdout] 221 | | || ui [INFO] [stdout] 222 | | .add( [INFO] [stdout] ... | [INFO] [stdout] 244 | | .changed() [INFO] [stdout] 245 | | || false [INFO] [stdout] | |________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 219 ~ ui.add(Slider::new(&mut self.initial.vcd, 0.0..=10.).text("VCD [MVC/mL]")) [INFO] [stdout] 220 + .changed() || ui [INFO] [stdout] 221 + .add( [INFO] [stdout] 222 + Slider::new(&mut self.initial.volume, 0.0..=100.) [INFO] [stdout] 223 + .text("volume [L]"), [INFO] [stdout] 224 + ) [INFO] [stdout] 225 + .changed() || ui [INFO] [stdout] 226 + .add( [INFO] [stdout] 227 + Slider::new(&mut self.initial.glucose, 0.0..=20.) [INFO] [stdout] 228 + .text("glucose [g/L]"), [INFO] [stdout] 229 + ) [INFO] [stdout] 230 + .changed() || ui [INFO] [stdout] 231 + .add( [INFO] [stdout] 232 + Slider::new(&mut self.initial.glutamine, 0.0..=20.) [INFO] [stdout] 233 + .text("glutamine [g/L]"), [INFO] [stdout] 234 + ) [INFO] [stdout] 235 + .changed() || ui [INFO] [stdout] 236 + .add( [INFO] [stdout] 237 + Slider::new(&mut self.initial.oxygen_part, 0.0..=100.) [INFO] [stdout] 238 + .text("oxigen part [%]"), [INFO] [stdout] 239 + ) [INFO] [stdout] 240 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:251:21 [INFO] [stdout] | [INFO] [stdout] 251 | / ui.add( [INFO] [stdout] 252 | | Slider::new(&mut self.constants.product, 0.0..=0.001) [INFO] [stdout] 253 | | .text("product [mg/MVC min]"), [INFO] [stdout] ... | [INFO] [stdout] 282 | | .changed() [INFO] [stdout] 283 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 251 ~ ui.add( [INFO] [stdout] 252 + Slider::new(&mut self.constants.product, 0.0..=0.001) [INFO] [stdout] 253 + .text("product [mg/MVC min]"), [INFO] [stdout] 254 + ) [INFO] [stdout] 255 + .changed() || ui [INFO] [stdout] 256 + .add( [INFO] [stdout] 257 + Slider::new(&mut self.constants.k_glucose, 0.0..=0.001) [INFO] [stdout] 258 + .text("glucose [MVC/min]"), [INFO] [stdout] 259 + ) [INFO] [stdout] 260 + .changed() || ui [INFO] [stdout] 261 + .add( [INFO] [stdout] 262 + Slider::new(&mut self.constants.k_glutamine, 0.0..=0.001) [INFO] [stdout] 263 + .text("glutamine [MVC/min]"), [INFO] [stdout] 264 + ) [INFO] [stdout] 265 + .changed() || ui [INFO] [stdout] 266 + .add( [INFO] [stdout] 267 + Slider::new(&mut self.constants.kDO, 0.0..=0.001) [INFO] [stdout] 268 + .text("kDO [mol/L]"), [INFO] [stdout] 269 + ) [INFO] [stdout] 270 + .changed() || ui [INFO] [stdout] 271 + .add(Slider::new(&mut self.constants.kP, 0.0..=1.).text("kP [/]")) [INFO] [stdout] 272 + .changed() || ui [INFO] [stdout] 273 + .add( [INFO] [stdout] 274 + Slider::new(&mut self.airation.henry, 0.0..=10.) [INFO] [stdout] 275 + .text("Henry's constant [mol/(bar L)]"), [INFO] [stdout] 276 + ) [INFO] [stdout] 277 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:290:21 [INFO] [stdout] | [INFO] [stdout] 290 | / ui.add(Slider::new(&mut self.temp_shift.day, 0.0..=14.).text("shift day")) [INFO] [stdout] 291 | | .changed() [INFO] [stdout] 292 | | || ui [INFO] [stdout] 293 | | .add( [INFO] [stdout] ... | [INFO] [stdout] 297 | | .changed() [INFO] [stdout] 298 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 290 ~ ui.add(Slider::new(&mut self.temp_shift.day, 0.0..=14.).text("shift day")) [INFO] [stdout] 291 + .changed() || ui [INFO] [stdout] 292 + .add( [INFO] [stdout] 293 + Slider::new(&mut self.temp_shift.n_vcd, 0.0..=2.) [INFO] [stdout] 294 + .text("post shift growth"), [INFO] [stdout] 295 + ) [INFO] [stdout] 296 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:304:21 [INFO] [stdout] | [INFO] [stdout] 304 | / ui.add( [INFO] [stdout] 305 | | Slider::new(&mut self.airation.cell_metabolism, 0.0..=100.) [INFO] [stdout] 306 | | .text("Cell metabolism [mol / (cell min)]"), [INFO] [stdout] ... | [INFO] [stdout] 343 | | .unwrap_or(false) [INFO] [stdout] 344 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 304 ~ ui.add( [INFO] [stdout] 305 + Slider::new(&mut self.airation.cell_metabolism, 0.0..=100.) [INFO] [stdout] 306 + .text("Cell metabolism [mol / (cell min)]"), [INFO] [stdout] 307 + ) [INFO] [stdout] 308 + .changed() || ui [INFO] [stdout] 309 + .add( [INFO] [stdout] 310 + Slider::new(&mut self.airation.air_flow, 0.0..=10.) [INFO] [stdout] 311 + .text("Air flow [L / min]"), [INFO] [stdout] 312 + ) [INFO] [stdout] 313 + .changed() || ui [INFO] [stdout] 314 + .collapsing("PID", |ui| { [INFO] [stdout] 315 + ui.add( [INFO] [stdout] 316 + Slider::new(&mut self.airation.pid.minimum, 0.0..=100.) [INFO] [stdout] 317 + .text("minimum [%]"), [INFO] [stdout] 318 + ) [INFO] [stdout] 319 + .changed() [INFO] [stdout] 320 + || ui [INFO] [stdout] 321 + .add( [INFO] [stdout] 322 + Slider::new( [INFO] [stdout] 323 + &mut self.airation.pid.max_flow, [INFO] [stdout] 324 + 0.0..=100., [INFO] [stdout] 325 + ) [INFO] [stdout] 326 + .text("max_flow [L/min]"), [INFO] [stdout] 327 + ) [INFO] [stdout] 328 + .changed() [INFO] [stdout] 329 + || ui [INFO] [stdout] 330 + .add( [INFO] [stdout] 331 + Slider::new( [INFO] [stdout] 332 + &mut self.airation.pid.fi_oxygen_max, [INFO] [stdout] 333 + 0.0..=100., [INFO] [stdout] 334 + ) [INFO] [stdout] 335 + .text("fi_oxigen_max [L / min]"), [INFO] [stdout] 336 + ) [INFO] [stdout] 337 + .changed() [INFO] [stdout] 338 + || false [INFO] [stdout] 339 + }) [INFO] [stdout] 340 + .body_returned [INFO] [stdout] 341 + .unwrap_or(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:317:33 [INFO] [stdout] | [INFO] [stdout] 317 | / ... ui.add( [INFO] [stdout] 318 | | ... Slider::new(&mut self.airation.pid.minimum, 0.0..=100.) [INFO] [stdout] 319 | | ... .text("minimum [%]"), [INFO] [stdout] ... | [INFO] [stdout] 339 | | ... .changed() [INFO] [stdout] 340 | | ... || false [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 317 ~ ui.add( [INFO] [stdout] 318 + Slider::new(&mut self.airation.pid.minimum, 0.0..=100.) [INFO] [stdout] 319 + .text("minimum [%]"), [INFO] [stdout] 320 + ) [INFO] [stdout] 321 + .changed() || ui [INFO] [stdout] 322 + .add( [INFO] [stdout] 323 + Slider::new( [INFO] [stdout] 324 + &mut self.airation.pid.max_flow, [INFO] [stdout] 325 + 0.0..=100., [INFO] [stdout] 326 + ) [INFO] [stdout] 327 + .text("max_flow [L/min]"), [INFO] [stdout] 328 + ) [INFO] [stdout] 329 + .changed() || ui [INFO] [stdout] 330 + .add( [INFO] [stdout] 331 + Slider::new( [INFO] [stdout] 332 + &mut self.airation.pid.fi_oxygen_max, [INFO] [stdout] 333 + 0.0..=100., [INFO] [stdout] 334 + ) [INFO] [stdout] 335 + .text("fi_oxigen_max [L / min]"), [INFO] [stdout] 336 + ) [INFO] [stdout] 337 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/model.rs:350:21 [INFO] [stdout] | [INFO] [stdout] 350 | / ui.add(Slider::new(&mut self.feeding.start, 0.0..=14.).text("start")) [INFO] [stdout] 351 | | .changed() [INFO] [stdout] 352 | | || ui [INFO] [stdout] 353 | | .add(Slider::new(&mut self.feeding.rate, 0.0..=1.).text("rate")) [INFO] [stdout] ... | [INFO] [stdout] 363 | | .changed() [INFO] [stdout] 364 | | || false [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 350 ~ ui.add(Slider::new(&mut self.feeding.start, 0.0..=14.).text("start")) [INFO] [stdout] 351 + .changed() || ui [INFO] [stdout] 352 + .add(Slider::new(&mut self.feeding.rate, 0.0..=1.).text("rate")) [INFO] [stdout] 353 + .changed() || ui [INFO] [stdout] 354 + .add(Slider::new(&mut self.feeding.glucose, 0.0..=100.).text("glucose")) [INFO] [stdout] 355 + .changed() || ui [INFO] [stdout] 356 + .add( [INFO] [stdout] 357 + Slider::new(&mut self.feeding.glutamine, 0.0..=100.) [INFO] [stdout] 358 + .text("glutamine"), [INFO] [stdout] 359 + ) [INFO] [stdout] 360 + .changed() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/model.rs:407:13 [INFO] [stdout] | [INFO] [stdout] 407 | -1. * c_mu.abs() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using: `-c_mu.abs()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/regressor.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | / pub fn default() -> Self { [INFO] [stdout] 32 | | Self { [INFO] [stdout] 33 | | target: Target::MuMax, [INFO] [stdout] 34 | | mode: Mode::Mixed, [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/regressor.rs:101:9 [INFO] [stdout] | [INFO] [stdout] 100 | let out = out.into_iter().rev().collect(); [INFO] [stdout] | ------------------------------------------ unnecessary `let` binding [INFO] [stdout] 101 | out [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 100 ~ [INFO] [stdout] 101 ~ out.into_iter().rev().collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/regressor.rs:203:13 [INFO] [stdout] | [INFO] [stdout] 203 | return Err(Error::msg("no result")); [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] 203 - return Err(Error::msg("no result")); [INFO] [stdout] 203 + Err(Error::msg("no result")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/ui/tree.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | / if node.ui(ui) == Action::Delete { [INFO] [stdout] 95 | | false [INFO] [stdout] 96 | | } else { [INFO] [stdout] 97 | | true [INFO] [stdout] 98 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `node.ui(ui) != Action::Delete` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/ui/tree.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 134 | if self.children.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.children.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/ui/tree.rs:151:5 [INFO] [stdout] | [INFO] [stdout] 151 | / pub fn default() -> Self { [INFO] [stdout] 152 | | Self { [INFO] [stdout] 153 | | x: 0., [INFO] [stdout] 154 | | y: 0. [INFO] [stdout] 155 | | } [INFO] [stdout] 156 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/ui/app.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 136 | / let file = if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] 137 | | let mut rdr = csv::Reader::from_reader(content.as_bytes()); [INFO] [stdout] 138 | | for result in rdr.deserialize() { [INFO] [stdout] 139 | | if let Ok(res) = result { [INFO] [stdout] ... | [INFO] [stdout] 172 | | }; [INFO] [stdout] | |__________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 136 - let file = if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] 136 + if let Ok(content) = fs::read_to_string(path) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/ui/app.rs:138:29 [INFO] [stdout] | [INFO] [stdout] 138 | / ... for result in rdr.deserialize() { [INFO] [stdout] 139 | | ... if let Ok(res) = result { [INFO] [stdout] 140 | | ... let record: Record = res; [INFO] [stdout] 141 | | ... if let Some(minute) = record.minutes { [INFO] [stdout] ... | [INFO] [stdout] 171 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/ui/app.rs:139:33 [INFO] [stdout] | [INFO] [stdout] 139 | / ... if let Ok(res) = result { [INFO] [stdout] 140 | | ... let record: Record = res; [INFO] [stdout] 141 | | ... if let Some(minute) = record.minutes { [INFO] [stdout] 142 | | ... if let Some(vcd) = record.vcd { [INFO] [stdout] ... | [INFO] [stdout] 170 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 138 ~ for res in rdr.deserialize().flatten() { [INFO] [stdout] 139 + let record: Record = res; [INFO] [stdout] 140 + if let Some(minute) = record.minutes { [INFO] [stdout] 141 + if let Some(vcd) = record.vcd { [INFO] [stdout] 142 + self.point_nodes.add("VCD".to_string(), minute, vcd); [INFO] [stdout] 143 + } [INFO] [stdout] 144 + if let Some(gln) = record.gln { [INFO] [stdout] 145 + self.point_nodes.add( [INFO] [stdout] 146 + "Glutamin".to_string(), [INFO] [stdout] 147 + minute, [INFO] [stdout] 148 + gln, [INFO] [stdout] 149 + ); [INFO] [stdout] 150 + } [INFO] [stdout] 151 + if let Some(gluc) = record.gluc { [INFO] [stdout] 152 + self.point_nodes.add( [INFO] [stdout] 153 + "Glucose".to_string(), [INFO] [stdout] 154 + minute, [INFO] [stdout] 155 + gluc, [INFO] [stdout] 156 + ); [INFO] [stdout] 157 + } [INFO] [stdout] 158 + if let Some(oxygen) = record.do_50 { [INFO] [stdout] 159 + self.point_nodes.add("DO".to_string(), minute, oxygen); [INFO] [stdout] 160 + } [INFO] [stdout] 161 + if let Some(product) = record.product { [INFO] [stdout] 162 + self.point_nodes.add( [INFO] [stdout] 163 + "Product".to_string(), [INFO] [stdout] 164 + minute, [INFO] [stdout] 165 + product, [INFO] [stdout] 166 + ); [INFO] [stdout] 167 + } [INFO] [stdout] 168 + } [INFO] [stdout] 169 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `f64` which implements the `Copy` trait [INFO] [stdout] --> src/ui/app.rs:568:28 [INFO] [stdout] | [INFO] [stdout] 568 | HLine::new(self.sim.airation.pid.minimum.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.sim.airation.pid.minimum` [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: structure field `kP` should have a snake case name [INFO] [stdout] --> src/model.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | pub kP: f64, // [] [INFO] [stdout] | ^^ help: convert the identifier to snake case: `k_p` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `kDO` should have a snake case name [INFO] [stdout] --> src/model.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | pub kDO: f64, // [%] [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `k_do` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `DO` should have a snake case name [INFO] [stdout] --> src/ui/app.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | DO: Option, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier [INFO] [stdout] | [INFO] [stdout] 41 - DO: Option, [INFO] [stdout] 41 + r#do: Option, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `c_O2` should have a snake case name [INFO] [stdout] --> src/ui/app.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | c_O2: Option, [INFO] [stdout] | ^^^^ help: convert the identifier to snake case (notice the capitalization): `c_o2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `DO` should have a snake case name [INFO] [stdout] --> src/ui/app.rs:542:17 [INFO] [stdout] | [INFO] [stdout] 542 | let DO: Vec<[f64; 2]> = self [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier [INFO] [stdout] | [INFO] [stdout] 542 - let DO: Vec<[f64; 2]> = self [INFO] [stdout] 542 + let r#do: Vec<[f64; 2]> = self [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 35s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: ashpd v0.8.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "14f14b94ddef4015e715e793d0f924c754f97e84923257e0b661fa40bcec6c31", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14f14b94ddef4015e715e793d0f924c754f97e84923257e0b661fa40bcec6c31", kill_on_drop: false }` [INFO] [stdout] 14f14b94ddef4015e715e793d0f924c754f97e84923257e0b661fa40bcec6c31