[INFO] cloning repository https://github.com/julimuriass/seminario-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/julimuriass/seminario-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjulimuriass%2Fseminario-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjulimuriass%2Fseminario-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4cb6cab582b4ef7681a1ef9656c4b4c8f6b180ad [INFO] linting julimuriass/seminario-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjulimuriass%2Fseminario-rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/julimuriass/seminario-rust [INFO] finished tweaking git repo https://github.com/julimuriass/seminario-rust [INFO] tweaked toml for git repo https://github.com/julimuriass/seminario-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/julimuriass/seminario-rust 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/julimuriass/seminario-rust 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] warning: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest [INFO] [stderr] See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature. [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded gzip-header v1.0.0 [INFO] [stderr] Downloaded procfs v0.17.0 [INFO] [stderr] Downloaded coveralls-api v0.7.0 [INFO] [stderr] Downloaded llvm_profparser v0.8.3 [INFO] [stderr] Downloaded procfs-core v0.17.0 [INFO] [stderr] Downloaded cc v1.2.24 [INFO] [stderr] Downloaded cargo-tarpaulin v0.32.7 [INFO] [stderr] Downloaded object v0.26.2 [INFO] [stderr] Downloaded libgit2-sys v0.18.1+1.9.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 07271ea5c49966a7a37e2daa86bf4b6f6f53587d585a1392be382b8734e5188e [INFO] running `Command { std: "docker" "start" "-a" "07271ea5c49966a7a37e2daa86bf4b6f6f53587d585a1392be382b8734e5188e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "07271ea5c49966a7a37e2daa86bf4b6f6f53587d585a1392be382b8734e5188e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "07271ea5c49966a7a37e2daa86bf4b6f6f53587d585a1392be382b8734e5188e", kill_on_drop: false }` [INFO] [stdout] 07271ea5c49966a7a37e2daa86bf4b6f6f53587d585a1392be382b8734e5188e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 82f2cb1453388d0b03a8f8165bdeb69fc93328a8769f1b3a012f64fe94618327 [INFO] running `Command { std: "docker" "start" "-a" "82f2cb1453388d0b03a8f8165bdeb69fc93328a8769f1b3a012f64fe94618327", kill_on_drop: false }` [INFO] [stderr] warning: the cargo feature `edition2024` has been stabilized in the 1.85 release and is no longer necessary to be listed in the manifest [INFO] [stderr] See https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-edition-field for more information about using this feature. [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling cc v1.2.24 [INFO] [stderr] Checking tokio v1.45.0 [INFO] [stderr] Checking miniz_oxide v0.8.8 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling indexmap v1.8.2 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling camino v1.1.9 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking gzip-header v1.0.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Checking toml_write v0.1.1 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling llvm_profparser v0.8.3 [INFO] [stderr] Compiling procfs v0.17.0 [INFO] [stderr] Checking md5 v0.7.0 [INFO] [stderr] Checking clap_builder v4.5.38 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking deflate v1.0.0 [INFO] [stderr] Checking ruzstd v0.7.3 [INFO] [stderr] Compiling cargo-tarpaulin v0.32.7 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking leb128 v0.2.5 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking quick-xml v0.37.5 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Checking flate2 v1.1.1 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Checking object v0.26.2 [INFO] [stderr] Compiling openssl-sys v0.9.108 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling libgit2-sys v0.18.1+1.9.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking hyper-util v0.1.12 [INFO] [stderr] Checking clap v4.5.38 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking git2 v0.20.2 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking toml_datetime v0.6.9 [INFO] [stderr] Checking cargo-platform v0.1.9 [INFO] [stderr] Checking humantime-serde v1.1.1 [INFO] [stderr] Checking toml_edit v0.22.26 [INFO] [stderr] Checking reqwest v0.12.15 [INFO] [stderr] Checking cargo_metadata v0.19.2 [INFO] [stderr] Checking procfs-core v0.17.0 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking toml v0.8.22 [INFO] [stderr] Checking coveralls-api v0.7.0 [INFO] [stderr] Checking seminario-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/tp03/ej07.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | if self.autos.len()+1 <= self.x.try_into().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `self.autos.len() < self.x.try_into().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tp03/ej08.rs:99:16 [INFO] [stdout] | [INFO] [stdout] 99 | if (song.titulo == nombre) { [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] 99 - if (song.titulo == nombre) { [INFO] [stdout] 99 + if song.titulo == nombre { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp03/ej09.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | tratamiento: tratamiento, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tratamiento` [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 pattern [INFO] [stdout] --> src/tp03/ej10.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 54 - (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] 54 + EstadoPrestamo::EnPrestamo => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::eq` [INFO] [stdout] --> src/tp04/ej03.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ptr::eq; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:227:13 [INFO] [stdout] | [INFO] [stdout] 227 | username: username, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | nombre: nombre, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `nombre` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | apellido: apellido, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `apellido` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:230:13 [INFO] [stdout] | [INFO] [stdout] 230 | email: email, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `email` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | fecha: fecha, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `fecha` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | productos: productos, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `productos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | medio_pago: medio_pago, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `medio_pago` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::panic` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use core::panic; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/tp03/ej07.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | if self.autos.len()+1 <= self.x.try_into().unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `self.autos.len() < self.x.try_into().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/tp03/ej08.rs:99:16 [INFO] [stdout] | [INFO] [stdout] 99 | if (song.titulo == nombre) { [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] 99 - if (song.titulo == nombre) { [INFO] [stdout] 99 + if song.titulo == nombre { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after outer attribute [INFO] [stdout] --> src/tp03/ej08.rs:139:2 [INFO] [stdout] | [INFO] [stdout] 139 | / #[cfg(test)] [INFO] [stdout] 140 | | [INFO] [stdout] | |_^ [INFO] [stdout] 141 | mod test { [INFO] [stdout] | -------- the attribute applies to this module [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_outer_attr)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp03/ej09.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | tratamiento: tratamiento, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tratamiento` [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 pattern [INFO] [stdout] --> src/tp03/ej10.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 54 - (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] 54 + EstadoPrestamo::EnPrestamo => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/tp03/ej10.rs:574:17 [INFO] [stdout] | [INFO] [stdout] 574 | (EstadoPrestamo::Devuelto) => true, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 574 - (EstadoPrestamo::Devuelto) => true, [INFO] [stdout] 574 + EstadoPrestamo::Devuelto => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr::eq` [INFO] [stdout] --> src/tp04/ej03.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::ptr::eq; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:227:13 [INFO] [stdout] | [INFO] [stdout] 227 | username: username, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `username` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | nombre: nombre, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `nombre` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:229:13 [INFO] [stdout] | [INFO] [stdout] 229 | apellido: apellido, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `apellido` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/ej03.rs:230:13 [INFO] [stdout] | [INFO] [stdout] 230 | email: email, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `email` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | fecha: fecha, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `fecha` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | productos: productos, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `productos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | medio_pago: medio_pago, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `medio_pago` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `core::panic` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use core::panic; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `days_in_current_month` is never read [INFO] [stdout] --> src/tp03/ej03.rs:76:41 [INFO] [stdout] | [INFO] [stdout] 76 | let mut days_in_current_month = days_in_month[self.mes as usize]; [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: value assigned to `days_in_current_month` is never read [INFO] [stdout] --> src/tp03/ej03.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | days_in_current_month = 29; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `numero_tarjeta` [INFO] [stdout] --> src/tp04/ej03.rs:141:41 [INFO] [stdout] | [INFO] [stdout] 141 | MedioPago::TarjetaCredito { numero_tarjeta } => String::from("TarjetaCredito"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `numero_tarjeta: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cbu` [INFO] [stdout] --> src/tp04/ej03.rs:142:38 [INFO] [stdout] | [INFO] [stdout] 142 | MedioPago::MercadoPago { cbu } => String::from("MercadoPago"), [INFO] [stdout] | ^^^ help: try ignoring the field: `cbu: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cuenta_destino` [INFO] [stdout] --> src/tp04/ej03.rs:143:48 [INFO] [stdout] | [INFO] [stdout] 143 | MedioPago::TransferenciaBancaria { cuenta_destino, cuenta_origen } => String::from("TransferenciaBancaria"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `cuenta_destino: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cuenta_origen` [INFO] [stdout] --> src/tp04/ej03.rs:143:64 [INFO] [stdout] | [INFO] [stdout] 143 | MedioPago::TransferenciaBancaria { cuenta_destino, cuenta_origen } => String::from("TransferenciaBancaria"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `cuenta_origen: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tipo_cripto` [INFO] [stdout] --> src/tp04/ej03.rs:144:33 [INFO] [stdout] | [INFO] [stdout] 144 | MedioPago::Cripto { tipo_cripto } => String::from("Cripto"), [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `tipo_cripto: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/tp04/ej03.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 234 | if let user_existe = self.usuarios.iter().find(|u| u.id == id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_existe` [INFO] [stdout] --> src/tp04/ej03.rs:234:16 [INFO] [stdout] | [INFO] [stdout] 234 | if let user_existe = self.usuarios.iter().find(|u| u.id == id) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_existe` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `suscripcion` [INFO] [stdout] --> src/tp04/ej03.rs:352:50 [INFO] [stdout] | [INFO] [stdout] 352 | u.suscripciones.iter().for_each(|suscripcion| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suscripcion` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let mut var_ingresada: bool = match var_ingresada.trim().parse(){ [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/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let mut var_ingresada = var_ingresada && t; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let mut var_ingresada = var_ingresada || t; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | let mut number :u32 = 2; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | let mut number_ingresado:u32 = match number_ingresado.trim().parse(){ [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let mut number = number + number_ingresado; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | let mut caracter: char = caracter.trim().parse() [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `suma_auxiliar` is never read [INFO] [stdout] --> src/main.rs:171:38 [INFO] [stdout] | [INFO] [stdout] 171 | let mut suma_auxiliar: i32 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v1::Examen` is more private than the item `tp03::julieta_murias_v1::obtener_materia_calificacion_alta` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v1::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v1::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v1::Examen` is more private than the item `tp03::julieta_murias_v1::obtener_materia_calificacion_baja` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v1::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v1::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej07::Color` is more private than the item `tp03::ej07::compare_colors` [INFO] [stdout] --> src/tp03/ej07.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn compare_colors(color1: &Color, color2: &Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej07::compare_colors` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej07::Color` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej07.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | enum Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej07::Auto` is more private than the item `tp03::ej07::compare` [INFO] [stdout] --> src/tp03/ej07.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn compare (auto1: &Auto, auto2: &Auto) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej07::compare` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej07::Auto` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej07.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | struct Auto { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej08::Genero` is more private than the item `tp03::ej08::compare_genre` [INFO] [stdout] --> src/tp03/ej08.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn compare_genre(genero1: &Genero, genero2: &Genero) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej08::compare_genre` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej08::Genero` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej08.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | enum Genero { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej08::Cancion` is more private than the item `tp03::ej08::compare` [INFO] [stdout] --> src/tp03/ej08.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn compare (cancion1: &Cancion, cancion2: &Cancion) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej08::compare` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej08::Cancion` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej08.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | struct Cancion { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::Dueño` is more private than the item `tp03::ej09::compare_owners` [INFO] [stdout] --> src/tp03/ej09.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn compare_owners(owner1: &Dueño, owner2: &Dueño) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_owners` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::Dueño` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | struct Dueño { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::TipoAnimal` is more private than the item `tp03::ej09::compare_type` [INFO] [stdout] --> src/tp03/ej09.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn compare_type(type1: &TipoAnimal, type2: &TipoAnimal) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_type` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::TipoAnimal` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | enum TipoAnimal { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::Mascota` is more private than the item `tp03::ej09::compare_pets` [INFO] [stdout] --> src/tp03/ej09.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn compare_pets (mascota1: &Mascota, mascota2: &Mascota) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_pets` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::Mascota` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | struct Mascota { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::Atencion` is more private than the item `tp03::ej09::compare_atencion` [INFO] [stdout] --> src/tp03/ej09.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn compare_atencion(atencion1: &Atencion, atencion2: &Atencion) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_atencion` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::Atencion` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | struct Atencion { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej10::EstadoPrestamo` is more private than the item `tp03::ej10::no_devolvio` [INFO] [stdout] --> src/tp03/ej10.rs:52:1 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn no_devolvio (estado: &EstadoPrestamo) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej10::no_devolvio` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej10::EstadoPrestamo` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej10.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | enum EstadoPrestamo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej10::Cliente` is more private than the item `tp03::ej10::compare_clientes` [INFO] [stdout] --> src/tp03/ej10.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn compare_clientes (cliente1: &Cliente, cliente2: &Cliente) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej10::compare_clientes` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej10::Cliente` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej10.rs:46:1 [INFO] [stdout] | [INFO] [stdout] 46 | struct Cliente { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v2::Examen` is more private than the item `tp03::julieta_murias_v2::obtener_materia_calificacion_alta` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v2::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v2::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v2::Examen` is more private than the item `tp03::julieta_murias_v2::obtener_materia_calificacion_baja` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v2::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v2::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp04::ej02::Persona<'_>` is more private than the item `tp04::ej02::compare` [INFO] [stdout] --> src/tp04/ej02.rs:109:1 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn compare (person1: Persona, person2: Persona) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp04::ej02::compare` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp04::ej02::Persona<'_>` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp04/ej02.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | struct Persona <'a>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Persona` is never constructed [INFO] [stdout] --> src/tp03/ej01.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Persona { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `to_string`, `obtener_edad`, and `actualizar_direccion` are never used [INFO] [stdout] --> src/tp03/ej01.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | impl Persona { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 8 | fn new (edad: u32, nombre: String, direccion: Option) -> Persona { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | fn to_string (&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | fn obtener_edad (&self) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn actualizar_direccion (&mut self, new_direction: Option){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rectangulo` is never constructed [INFO] [stdout] --> src/tp03/ej02.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Rectangulo { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `calcular_area`, `calcular_perimetro`, and `es_cuadrado` are never used [INFO] [stdout] --> src/tp03/ej02.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 6 | impl Rectangulo { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 7 | [INFO] [stdout] 8 | fn new (ancho: f64, longitud: f64) -> Rectangulo { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | fn calcular_area (&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | fn calcular_perimetro (&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn es_cuadrado (&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Fecha` is never constructed [INFO] [stdout] --> src/tp03/ej03.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct Fecha { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `es_bisiesto`, `es_fecha_valida`, `sumar_dias`, `restar_dias`, and `es_mayor` are never used [INFO] [stdout] --> src/tp03/ej03.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl Fecha { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 10 | pub fn new (dia: u32, mes: u32, año: u32) -> Fecha { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | fn es_bisiesto (&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn es_fecha_valida (&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn sumar_dias (&mut self, mut days: u32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | fn restar_dias (&mut self, mut days: u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | pub fn es_mayor (&self, other: &Fecha) -> bool { //Retorna true si la fecha que recibí es mayor. [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Triangulo` is never constructed [INFO] [stdout] --> src/tp03/ej04.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Triangulo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `determinar_tipo`, `calcular_area`, and `calcular_perimetro` are never used [INFO] [stdout] --> src/tp03/ej04.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | impl Triangulo { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 8 | fn new (lado1: f64, lado2: f64, lado3: f64) -> Triangulo { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | fn determinar_tipo (&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn calcular_area (&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn calcular_perimetro (&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Producto` is never constructed [INFO] [stdout] --> src/tp03/ej05.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Producto { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `calcular_impuestos`, `aplicar_descuento`, and `calcular_precio_total` are never used [INFO] [stdout] --> src/tp03/ej05.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | impl Producto { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 8 | fn new(nombre: String, precio_bruto: f64, id: u32) -> Producto { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | fn calcular_impuestos(&self, tax_percentage: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fn aplicar_descuento(&self, discount_percentage: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn calcular_precio_total(&self, tax_percentage: Option, discount_percentage: Option) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Examen` is never constructed [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Estudiante` is never constructed [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct Estudiante { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Informe` is never constructed [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | struct Informe { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `obtener_materia_calificacion_alta` is never used [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `obtener_materia_calificacion_baja` is never used [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl Examen { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 66 | fn new(nombre_materia: String, nota: f64) -> Examen { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `obtener_promedio`, `obtener_calificacion_mas_alta`, `obtener_calificacion_mas_baja`, and `generar_informe` are never used [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 74 | impl Estudiante { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 75 | fn new(nombre: String, id: i32) -> Estudiante { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn obtener_promedio(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn obtener_calificacion_mas_alta(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn obtener_calificacion_mas_baja(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | fn generar_informe (&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Color` is never used [INFO] [stdout] --> src/tp03/ej07.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | enum Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Auto` is never constructed [INFO] [stdout] --> src/tp03/ej07.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | struct Auto { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConsecionarioAuto` is never constructed [INFO] [stdout] --> src/tp03/ej07.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | struct ConsecionarioAuto { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_colors` is never used [INFO] [stdout] --> src/tp03/ej07.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn compare_colors(color1: &Color, color2: &Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare` is never used [INFO] [stdout] --> src/tp03/ej07.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn compare (auto1: &Auto, auto2: &Auto) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `agregar_auto`, `eliminar_auto`, and `buscar_auto` are never used [INFO] [stdout] --> src/tp03/ej07.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 50 | impl ConsecionarioAuto { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 51 | fn new(nombre: String, direccion: String, x: u32) -> ConsecionarioAuto { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | fn agregar_auto(&mut self, auto: &Auto) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | fn eliminar_auto(&mut self, auto: &Auto) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | fn buscar_auto(&self, auto: &Auto) -> Option<&Auto> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `calcular_precio` are never used [INFO] [stdout] --> src/tp03/ej07.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 94 | impl Auto { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 95 | fn new(marca: String, modelo: String, precio_bruto: f64, año: u32, color: Color ) -> Auto { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | fn calcular_precio(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Genero` is never used [INFO] [stdout] --> src/tp03/ej08.rs:2:6 [INFO] [stdout] | [INFO] [stdout] 2 | enum Genero { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cancion` is never constructed [INFO] [stdout] --> src/tp03/ej08.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | struct Cancion { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PlayList` is never constructed [INFO] [stdout] --> src/tp03/ej08.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct PlayList { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/tp03/ej08.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl Cancion { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 23 | fn new(titulo: String, artista: String, genero: Genero) -> Cancion { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_genre` is never used [INFO] [stdout] --> src/tp03/ej08.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn compare_genre(genero1: &Genero, genero2: &Genero) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare` is never used [INFO] [stdout] --> src/tp03/ej08.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn compare (cancion1: &Cancion, cancion2: &Cancion) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tp03/ej08.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 50 | impl PlayList { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 51 | fn new(nombre: String) -> PlayList { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn agregar_cancion(&mut self, cancion: &Cancion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn eliminar_cancion(&mut self, cancion: &Cancion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | fn mover_cancion(&mut self, cancion: &Cancion, posicion_nueva: u32){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn buscar_cancion_por_nombre(&self, nombre: String) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn obtener_canciones_por_genero(&self, genero: Genero) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | fn obtener_canciones_por_artista(&self, artista: String) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn modificar_titulo_playlist(&mut self, titulo_nuevo: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn eliminar_todas_las_canciones(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TipoAnimal` is never used [INFO] [stdout] --> src/tp03/ej09.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum TipoAnimal { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Veterinaria` is never constructed [INFO] [stdout] --> src/tp03/ej09.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct Veterinaria { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Atencion` is never constructed [INFO] [stdout] --> src/tp03/ej09.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | struct Atencion { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mascota` is never constructed [INFO] [stdout] --> src/tp03/ej09.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct Mascota { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Dueño` is never constructed [INFO] [stdout] --> src/tp03/ej09.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | struct Dueño { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_owners` is never used [INFO] [stdout] --> src/tp03/ej09.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn compare_owners(owner1: &Dueño, owner2: &Dueño) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_type` is never used [INFO] [stdout] --> src/tp03/ej09.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn compare_type(type1: &TipoAnimal, type2: &TipoAnimal) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_pets` is never used [INFO] [stdout] --> src/tp03/ej09.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn compare_pets (mascota1: &Mascota, mascota2: &Mascota) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_fecha` is never used [INFO] [stdout] --> src/tp03/ej09.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn compare_fecha(fecha1: &Option, fecha2: &Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_atencion` is never used [INFO] [stdout] --> src/tp03/ej09.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn compare_atencion(atencion1: &Atencion, atencion2: &Atencion) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tp03/ej09.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 85 | impl Veterinaria { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 86 | fn new(nombre: String, direccion: String, id: i32) -> Veterinaria { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn agregar_nueva_mascota(&mut self, mascota: Mascota, fecha: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn agregar_mascota_maxima_prioridad(&mut self, mascota: Mascota, fecha: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | fn atender_mascota(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn eliminar_mascota(&mut self, mascota: Mascota) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | fn registrar_atencion(&mut self, tratamiento: String, diagnostico: String, fecha: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | fn buscar_atencion(&self, nombre_mascota: String, nombre_dueño: String, telefono: u32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | fn modificar_diagnostico(&mut self, diagnostico_nuevo: String, atencion: &Atencion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn modificar_fecha(&mut self, fecha_nueva: Option, atencion: &Atencion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn eliminar_atencion (&mut self, atencion: &Atencion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Genero` is never used [INFO] [stdout] --> src/tp03/ej10.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | enum Genero { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EstadoPrestamo` is never used [INFO] [stdout] --> src/tp03/ej10.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | enum EstadoPrestamo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Biblioteca` is never constructed [INFO] [stdout] --> src/tp03/ej10.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | struct Biblioteca { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Libro` is never constructed [INFO] [stdout] --> src/tp03/ej10.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | struct Libro { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Prestamo` is never constructed [INFO] [stdout] --> src/tp03/ej10.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | struct Prestamo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cliente` is never constructed [INFO] [stdout] --> src/tp03/ej10.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | struct Cliente { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `no_devolvio` is never used [INFO] [stdout] --> src/tp03/ej10.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn no_devolvio (estado: &EstadoPrestamo) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_clientes` is never used [INFO] [stdout] --> src/tp03/ej10.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn compare_clientes (cliente1: &Cliente, cliente2: &Cliente) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tp03/ej10.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl Biblioteca { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 66 | fn obtener_cantidad_copias (&self, libro: &Libro) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | fn decrementar_cantidad_copias (&mut self, libro: &Libro) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn incrementar_cantidad_copias (&mut self, libro: &Libro) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn contar_prestamos_cliente (&self, cliente: &Cliente) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn realizar_prestamo (&mut self, libro: &Libro, cliente: &Cliente) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | fn prestamos_vencer(&self, cant_dias: u32, fecha_actual: &Fecha) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn prestamos_vencidos(&self, fecha_actual: &Fecha) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | fn buscar_prestamo (&self, libro: &Libro, cliente: &Cliente) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | fn devolver_libro (&mut self, libro: &Libro, cliente: &Cliente) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Examen` is never constructed [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Estudiante` is never constructed [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct Estudiante { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Informe` is never constructed [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | struct Informe { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `obtener_materia_calificacion_alta` is never used [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `obtener_materia_calificacion_baja` is never used [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl Examen { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 66 | fn new(nombre_materia: String, nota: f64) -> Examen { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `obtener_promedio`, `obtener_calificacion_mas_alta`, `obtener_calificacion_mas_baja`, and `generar_informe` are never used [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 74 | impl Estudiante { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 75 | fn new(nombre: String, id: i32) -> Estudiante { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | fn obtener_promedio(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn obtener_calificacion_mas_alta(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn obtener_calificacion_mas_baja(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | fn generar_informe (&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Primo` is never used [INFO] [stdout] --> src/tp04/ej01.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait Primo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `contar_primos` is never used [INFO] [stdout] --> src/tp04/ej01.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn contar_primos(numeros: &Vec) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Persona` is never constructed [INFO] [stdout] --> src/tp04/ej02.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Persona <'a>{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `PersonaOps` is never used [INFO] [stdout] --> src/tp04/ej02.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | trait PersonaOps <'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare` is never used [INFO] [stdout] --> src/tp04/ej02.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn compare (person1: Persona, person2: Persona) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `TipoSuscripcion` is never used [INFO] [stdout] --> src/tp04/ej03.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum TipoSuscripcion { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `costo_mensual`, `upgrade`, `downgrade`, `soy_basic`, `soy_clasic`, and `soy_super` are never used [INFO] [stdout] --> src/tp04/ej03.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl TipoSuscripcion { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 23 | fn costo_mensual(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | fn upgrade(&self) -> Option{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn downgrade(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | fn soy_basic(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | fn soy_clasic(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn soy_super(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Suscripcion` is never constructed [INFO] [stdout] --> src/tp04/ej03.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | struct Suscripcion { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `activar_suscripcion`, `desactivar_suscripcion`, `upgrade`, and `downgrade` are never used [INFO] [stdout] --> src/tp04/ej03.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 78 | impl Suscripcion { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 79 | fn new(tipo: TipoSuscripcion, duracion_meses: u8, fecha_inicio: String) -> Suscripcion { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn activar_suscripcion(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | fn desactivar_suscripcion(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn upgrade(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | fn downgrade(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MedioPago` is never used [INFO] [stdout] --> src/tp04/ej03.rs:121:6 [INFO] [stdout] | [INFO] [stdout] 121 | enum MedioPago { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_string` is never used [INFO] [stdout] --> src/tp04/ej03.rs:138:8 [INFO] [stdout] | [INFO] [stdout] 137 | impl MedioPago { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 138 | fn to_string(&self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Usuario` is never constructed [INFO] [stdout] --> src/tp04/ej03.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct Usuario { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/tp04/ej03.rs:161:8 [INFO] [stdout] | [INFO] [stdout] 160 | impl Usuario { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 161 | fn agregar_suscripcion(&mut self, suscripcion: Suscripcion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn obtener_suscripcion_activa(&self) -> Option<&Suscripcion> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | fn obtener_suscripcion_activa_mutable(&mut self) -> Option<&mut Suscripcion> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn cancelar_suscripcion(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | fn tiene_suscripcion_activa(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | fn upgrade_suscripcion(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | fn downgrade_suscripcion(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StreamingRust` is never constructed [INFO] [stdout] --> src/tp04/ej03.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | struct StreamingRust { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tp04/ej03.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 214 | impl StreamingRust { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 215 | [INFO] [stdout] 216 | pub fn crear_plataforma() -> StreamingRust { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn crear_usuario(&mut self, suscripcion: &Suscripcion, medio_pago: &MedioPago, id: u32, username: String, nombre: String, a... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | pub fn upgrade_suscripcion(&mut self, usuario: &mut Usuario) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn downgrade_suscripcion(&mut self, usuario: &mut Usuario) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn cancelar_suscripcion(&mut self, usuario: &mut Usuario) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn suscripcion_mas_contratada_activos(&self) -> Option<(TipoSuscripcion, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn suscripcion_mas_contratada(&self) -> Option<(TipoSuscripcion, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn medio_pago_mas_usado_activos(&self) -> Option<(String, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | pub fn medio_pago_mas_usado(&self) -> Option<(String, u32)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Producto` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct Producto { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Categoria` is never used [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum Categoria { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DatosPersona` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | struct DatosPersona { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `F64Wrapper` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | struct F64Wrapper(f64); //F64Wrapper is a simple struct that contains a single field of type f64. [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Vendedor` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | struct Vendedor { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cliente` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | struct Cliente { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VentaProducto` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | struct VentaProducto { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Venta` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | struct Venta { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MedioPago` is never used [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:86:6 [INFO] [stdout] | [INFO] [stdout] 86 | enum MedioPago { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SistemaVentas` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | struct SistemaVentas { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReportePorCategoria` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:101:8 [INFO] [stdout] | [INFO] [stdout] 101 | struct ReportePorCategoria { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReportePorVendedor` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | struct ReportePorVendedor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 109 | impl SistemaVentas { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 110 | pub fn new() -> SistemaVentas { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn crear_venta(&mut self, fecha: String, cliente: &Cliente, vendedor: &Vendedor, productos: Vec, medio_pago:... [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub fn obtener_porcentaje_descuento(&self, categoria: &Categoria) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn obtener_descuento_suscripcion(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn precio_final_venta(&self, venta: &Venta) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | fn reporte_por_vendedor(&self) -> ReportePorVendedor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | fn reporte_por_categoria(&self) -> ReportePorCategoria { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Informe` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 234 | struct Informe { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VentaInforme` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:240:8 [INFO] [stdout] | [INFO] [stdout] 240 | struct VentaInforme { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_historial_ventas` and `ordenar_ventas_por_fecha` are never used [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 247 | impl SistemaVentas { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] 248 | pub fn get_historial_ventas(&self, id: u32, categoria: Categoria) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub fn ordenar_ventas_por_fecha(&self, ventas: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `tp03::ej01::Persona` [INFO] [stdout] --> src/tp03/ej01.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / fn to_string (&self) -> String { [INFO] [stdout] 17 | | let direction_str = if let Some(dir) = &self.direccion{ [INFO] [stdout] 18 | | dir.as_str() [INFO] [stdout] 19 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 23 | | format! ("Name: {}, age: {}, direction: {}", self.nombre, self.edad, direction_str) [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `tp03::ej01::Persona` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tp03/ej03.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | self.año % 4 == 0 && self.año % 100 != 0 || self.año % 400 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `self.año.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tp03/ej03.rs:22:30 [INFO] [stdout] | [INFO] [stdout] 22 | self.año % 4 == 0 && self.año % 100 != 0 || self.año % 400 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.año.is_multiple_of(100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tp03/ej03.rs:22:53 [INFO] [stdout] | [INFO] [stdout] 22 | self.año % 4 == 0 && self.año % 100 != 0 || self.año % 400 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `self.año.is_multiple_of(400)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tp03/ej04.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | ... if (self.lado1 == self.lado2 && self.lado2 != self.lado3) || (self.lado1 == self.lado3 && self.lado3 != self.lado2) || (self.l... [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] 20 - if (self.lado1 == self.lado2 && self.lado2 != self.lado3) || (self.lado1 == self.lado3 && self.lado3 != self.lado2) || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [INFO] [stdout] 20 + if !(self.lado2 == self.lado3 || self.lado1 != self.lado2 && self.lado1 != self.lado3) || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [INFO] [stdout] | [INFO] [stdout] 20 - if (self.lado1 == self.lado2 && self.lado2 != self.lado3) || (self.lado1 == self.lado3 && self.lado3 != self.lado2) || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [INFO] [stdout] 20 + if (self.lado1 == self.lado3 || self.lado1 == self.lado2) && self.lado2 != self.lado3 || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [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/tp03/julieta_murias_v1.rs:24:52 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [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] 24 - pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] 24 + pub fn obtener_materia_calificacion_alta(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:44:52 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [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] 44 - pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] 44 + pub fn obtener_materia_calificacion_baja(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | return None; //Si no tiene notas devuelvo nada. [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] 132 - return None; //Si no tiene notas devuelvo nada. [INFO] [stdout] 132 + None//Si no tiene notas devuelvo nada. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | return Some(informe); //Returno el Option con el informe. [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] 145 - return Some(informe); //Returno el Option con el informe. [INFO] [stdout] 145 + Some(informe)//Returno el Option con el informe. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: name `ROJO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | ROJO, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Rojo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VERDE` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | VERDE, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Verde` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AZUL` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | AZUL, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Azul` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AMARILLO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | AMARILLO, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Amarillo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BLANCO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | BLANCO, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Blanco` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NEGRO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | NEGRO, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Negro` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej07.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | return true; [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 true; [INFO] [stdout] 63 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej07.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | return false; [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] 65 - return false; [INFO] [stdout] 65 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej07.rs:73:40 [INFO] [stdout] | [INFO] [stdout] 73 | if compare(&self.autos[i], &auto) { [INFO] [stdout] | ^^^^^ help: change this to: `auto` [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: manual implementation of `Iterator::find` [INFO] [stdout] --> src/tp03/ej07.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / for car in self.autos.iter() { [INFO] [stdout] 86 | | if compare(&car, &auto) { [INFO] [stdout] 87 | | return Some(car); [INFO] [stdout] ... | [INFO] [stdout] 90 | | None //If I didn't find it, return nothing (None). [INFO] [stdout] | |____________^ help: replace with an iterator: `self.autos.iter().find(|&car| compare(&car, &auto)).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej07.rs:86:24 [INFO] [stdout] | [INFO] [stdout] 86 | if compare(&car, &auto) { [INFO] [stdout] | ^^^^ help: change this to: `car` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej07.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | if compare(&car, &auto) { [INFO] [stdout] | ^^^^^ help: change this to: `auto` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej07.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | let es_primario = match self.color { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 110 | | Color::AMARILLO | Color::AZUL | Color::ROJO => true, [INFO] [stdout] 111 | | _ => false, [INFO] [stdout] 112 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 109 - let es_primario = match self.color { [INFO] [stdout] 110 - Color::AMARILLO | Color::AZUL | Color::ROJO => true, [INFO] [stdout] 111 - _ => false, [INFO] [stdout] 112 - }; [INFO] [stdout] 109 + let es_primario = matches!(self.color, Color::AMARILLO | Color::AZUL | Color::ROJO); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROCK` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | ROCK, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Rock` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `POP` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | POP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Pop` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `JAZZ` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | JAZZ, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Jazz` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RAP` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | RAP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Rap` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OTROS` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | OTROS, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Otros` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej08.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / match (genero1, genero2) { [INFO] [stdout] 34 | | (Genero::JAZZ, Genero::JAZZ) => true, [INFO] [stdout] 35 | | (Genero::ROCK, Genero::ROCK) => true, [INFO] [stdout] 36 | | (Genero::RAP, Genero::RAP) => true, [INFO] [stdout] ... | [INFO] [stdout] 39 | | _ => false, [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 33 - match (genero1, genero2) { [INFO] [stdout] 34 - (Genero::JAZZ, Genero::JAZZ) => true, [INFO] [stdout] 35 - (Genero::ROCK, Genero::ROCK) => true, [INFO] [stdout] 36 - (Genero::RAP, Genero::RAP) => true, [INFO] [stdout] 37 - (Genero::POP, Genero::POP) => true, [INFO] [stdout] 38 - (Genero::OTROS, Genero::OTROS) => true, [INFO] [stdout] 39 - _ => false, [INFO] [stdout] 40 - } [INFO] [stdout] 33 + matches!((genero1, genero2), (Genero::JAZZ, Genero::JAZZ) | (Genero::ROCK, Genero::ROCK) | (Genero::RAP, Genero::RAP) | (Genero::POP, Genero::POP) | (Genero::OTROS, Genero::OTROS)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej08.rs:66:44 [INFO] [stdout] | [INFO] [stdout] 66 | if compare(&self.canciones[i], &cancion) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cancion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej08.rs:83:48 [INFO] [stdout] | [INFO] [stdout] 83 | if compare(&self.canciones[i], &cancion) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cancion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PERRO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | PERRO, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Perro` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `GATO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GATO, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Gato` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CABALLO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | CABALLO, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Caballo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OTROS` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | OTROS, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Otros` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej09.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / match (type1, type2) { [INFO] [stdout] 53 | | (TipoAnimal::CABALLO, TipoAnimal::CABALLO) => true, [INFO] [stdout] 54 | | (TipoAnimal::PERRO, TipoAnimal::PERRO) => true, [INFO] [stdout] 55 | | (TipoAnimal::GATO, TipoAnimal::GATO) => true, [INFO] [stdout] 56 | | (TipoAnimal::OTROS, TipoAnimal::OTROS) => true, [INFO] [stdout] 57 | | _ => false, [INFO] [stdout] 58 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 52 - match (type1, type2) { [INFO] [stdout] 53 - (TipoAnimal::CABALLO, TipoAnimal::CABALLO) => true, [INFO] [stdout] 54 - (TipoAnimal::PERRO, TipoAnimal::PERRO) => true, [INFO] [stdout] 55 - (TipoAnimal::GATO, TipoAnimal::GATO) => true, [INFO] [stdout] 56 - (TipoAnimal::OTROS, TipoAnimal::OTROS) => true, [INFO] [stdout] 57 - _ => false, [INFO] [stdout] 58 - } [INFO] [stdout] 52 + matches!((type1, type2), (TipoAnimal::CABALLO, TipoAnimal::CABALLO) | (TipoAnimal::PERRO, TipoAnimal::PERRO) | (TipoAnimal::GATO, TipoAnimal::GATO) | (TipoAnimal::OTROS, TipoAnimal::OTROS)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej09.rs:166:54 [INFO] [stdout] | [INFO] [stdout] 166 | if compare_atencion(&self.atenciones[i], &atencion) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `atencion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej09.rs:181:54 [INFO] [stdout] | [INFO] [stdout] 181 | if compare_atencion(&self.atenciones[i], &atencion) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `atencion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej09.rs:196:54 [INFO] [stdout] | [INFO] [stdout] 196 | if compare_atencion(&self.atenciones[i], &atencion) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `atencion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej10.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / match estado { [INFO] [stdout] 54 | | (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] 55 | | _ => false, [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 53 - match estado { [INFO] [stdout] 54 - (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] 55 - _ => false, [INFO] [stdout] 56 - } [INFO] [stdout] 53 + matches!(estado, EstadoPrestamo::EnPrestamo) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej10.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | return book.copias_disponiles; [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] 68 - return book.copias_disponiles; [INFO] [stdout] 68 + book.copias_disponiles [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej10.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | return 0; [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 0; [INFO] [stdout] 70 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:90:52 [INFO] [stdout] | [INFO] [stdout] 90 | if compare_clientes(&prestamo.cliente, &cliente) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cliente` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tp03/ej10.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / if okay_prestamo && self.contar_prestamos_cliente(cliente) < 5 { [INFO] [stdout] 107 | | if let Some(book) = self.libros.get_mut(&libro.isbn) { [INFO] [stdout] 108 | | book.copias_disponiles -= 1; [INFO] [stdout] 109 | | return true; [INFO] [stdout] 110 | | } [INFO] [stdout] 111 | | } [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] 106 ~ if okay_prestamo && self.contar_prestamos_cliente(cliente) < 5 [INFO] [stdout] 107 ~ && let Some(book) = self.libros.get_mut(&libro.isbn) { [INFO] [stdout] 108 | book.copias_disponiles -= 1; [INFO] [stdout] 109 | return true; [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:129:50 [INFO] [stdout] | [INFO] [stdout] 129 | (prestamo.fecha_vencimiento.es_mayor(&fecha_actual) || fecha_igual) // fecha_vencimiento >= fecha_actual [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `fecha_actual` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:142:50 [INFO] [stdout] | [INFO] [stdout] 142 | !prestamo.fecha_vencimiento.es_mayor(&fecha_actual) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `fecha_actual` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:152:52 [INFO] [stdout] | [INFO] [stdout] 152 | if compare_clientes(&prestamo.cliente, &cliente) && prestamo.isbn_libro == libro.isbn { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cliente` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:161:52 [INFO] [stdout] | [INFO] [stdout] 161 | if compare_clientes(&prestamo.cliente, &cliente) && prestamo.isbn_libro == libro.isbn { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cliente` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:24:52 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [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] 24 - pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] 24 + pub fn obtener_materia_calificacion_alta(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:44:52 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [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] 44 - pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] 44 + pub fn obtener_materia_calificacion_baja(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | return None; //Si no tiene notas devuelvo nada. [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 None; //Si no tiene notas devuelvo nada. [INFO] [stdout] 132 + None//Si no tiene notas devuelvo nada. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | return Some(informe); //Returno el Option con el informe. [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] 145 - return Some(informe); //Returno el Option con el informe. [INFO] [stdout] 145 + Some(informe)//Returno el Option con el informe. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej01.rs:21:31 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn contar_primos(numeros: &Vec) -> u32 { [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] 21 - pub fn contar_primos(numeros: &Vec) -> u32 { [INFO] [stdout] 21 + pub fn contar_primos(numeros: &[i32]) -> u32 { [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/tp04/ej02.rs:14:45 [INFO] [stdout] | [INFO] [stdout] 14 | fn filtrar_por_salario(&self, personas: &'a Vec>, salario: f64) -> Option>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:15:49 [INFO] [stdout] | [INFO] [stdout] 15 | fn filtrar_por_edad_ciudad(&self, personas: &'a Vec>, edad: u8, ciudad: String) -> Option>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:16:40 [INFO] [stdout] | [INFO] [stdout] 16 | fn todos_viven_en(&self, personas: &'a Vec>, ciudad: &str) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:17:40 [INFO] [stdout] | [INFO] [stdout] 17 | fn alguno_vive_en(&self, personas: &'a Vec>, ciudad: &str) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:18:40 [INFO] [stdout] | [INFO] [stdout] 18 | fn persona_existe(&self, personas: &'a Vec>, persona: &Persona<'a>) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:19:43 [INFO] [stdout] | [INFO] [stdout] 19 | fn recolectar_edades(&self, personas: &'a Vec>) -> Option>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:20:45 [INFO] [stdout] | [INFO] [stdout] 20 | fn salario_mayor_menor(&self, personas: &'a Vec>) -> Option<(&Persona<'a>, &Persona<'a>)>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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/tp04/ej02.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | 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] 33 - return None; [INFO] [stdout] 33 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return Some(people); [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] 35 - return Some(people); [INFO] [stdout] 35 + Some(people) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp04/ej02.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | if people.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `people.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | 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] 43 - return None; [INFO] [stdout] 43 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | return Some(people); [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] 45 - return Some(people); [INFO] [stdout] 45 + Some(people) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej01.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | let mut me_without_direction = Persona::new (19, String::from("Julieta"), None); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message1` [INFO] [stdout] --> src/tp03/ej01.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let message1 = me_with_direction.to_string(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp04/ej02.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | if people.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `people.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp04/ej02.rs:53:63 [INFO] [stdout] | [INFO] [stdout] 53 | personas.iter().all(|p| p.ciudad.eq_ignore_ascii_case(&ciudad)) [INFO] [stdout] | ^^^^^^^ help: change this to: `ciudad` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp04/ej02.rs:60:63 [INFO] [stdout] | [INFO] [stdout] 60 | personas.iter().any(|p| p.ciudad.eq_ignore_ascii_case(&ciudad)) [INFO] [stdout] | ^^^^^^^ help: change this to: `ciudad` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | 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] 72 - return None; [INFO] [stdout] 72 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | return Some(edades); [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] 75 - return Some(edades); [INFO] [stdout] 75 + Some(edades) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | 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] 81 - return None; [INFO] [stdout] 81 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / match (self, other) { [INFO] [stdout] 13 | | (TipoSuscripcion::Basic, TipoSuscripcion::Basic) => true, [INFO] [stdout] 14 | | (TipoSuscripcion::Clasic, TipoSuscripcion::Clasic) => true, [INFO] [stdout] 15 | | (TipoSuscripcion::Super, TipoSuscripcion::Super) => true, [INFO] [stdout] 16 | | _ => false, [INFO] [stdout] 17 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 12 - match (self, other) { [INFO] [stdout] 13 - (TipoSuscripcion::Basic, TipoSuscripcion::Basic) => true, [INFO] [stdout] 14 - (TipoSuscripcion::Clasic, TipoSuscripcion::Clasic) => true, [INFO] [stdout] 15 - (TipoSuscripcion::Super, TipoSuscripcion::Super) => true, [INFO] [stdout] 16 - _ => false, [INFO] [stdout] 17 - } [INFO] [stdout] 12 + matches!((self, other), (TipoSuscripcion::Basic, TipoSuscripcion::Basic) | (TipoSuscripcion::Clasic, TipoSuscripcion::Clasic) | (TipoSuscripcion::Super, TipoSuscripcion::Super)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / match self { [INFO] [stdout] 50 | | TipoSuscripcion::Basic => true, [INFO] [stdout] 51 | | _ => false, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 49 - match self { [INFO] [stdout] 50 - TipoSuscripcion::Basic => true, [INFO] [stdout] 51 - _ => false, [INFO] [stdout] 52 - } [INFO] [stdout] 49 + matches!(self, TipoSuscripcion::Basic) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / match self { [INFO] [stdout] 57 | | TipoSuscripcion::Clasic => true, [INFO] [stdout] 58 | | _ => false, [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 56 - match self { [INFO] [stdout] 57 - TipoSuscripcion::Clasic => true, [INFO] [stdout] 58 - _ => false, [INFO] [stdout] 59 - } [INFO] [stdout] 56 + matches!(self, TipoSuscripcion::Clasic) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | / match self { [INFO] [stdout] 64 | | TipoSuscripcion::Super => true, [INFO] [stdout] 65 | | _ => false, [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 63 - match self { [INFO] [stdout] 64 - TipoSuscripcion::Super => true, [INFO] [stdout] 65 - _ => false, [INFO] [stdout] 66 - } [INFO] [stdout] 63 + matches!(self, TipoSuscripcion::Super) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `days_in_current_month` is never read [INFO] [stdout] --> src/tp03/ej03.rs:76:41 [INFO] [stdout] | [INFO] [stdout] 76 | let mut days_in_current_month = days_in_month[self.mes as usize]; [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: value assigned to `days_in_current_month` is never read [INFO] [stdout] --> src/tp03/ej03.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | days_in_current_month = 29; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej03.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | let mut date1 = Fecha { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej03.rs:140:13 [INFO] [stdout] | [INFO] [stdout] 140 | let mut date2 = Fecha::new(21, 13, 2024); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej03.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | let mut date1 = Fecha { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej03.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | let mut date2 = Fecha::new(21, 12, 2024); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `tp04::ej03::MedioPago` [INFO] [stdout] --> src/tp04/ej03.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | / fn to_string(&self) -> String { [INFO] [stdout] 139 | | match self { [INFO] [stdout] 140 | | MedioPago::Efectivo => String::from("Efectivo"), [INFO] [stdout] 141 | | MedioPago::TarjetaCredito { numero_tarjeta } => String::from("TarjetaCredito"), [INFO] [stdout] ... | [INFO] [stdout] 146 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `tp04::ej03::MedioPago` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/tp04/ej03.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn crear_usuario(&mut self, suscripcion: &Suscripcion, medio_pago: &MedioPago, id: u32, username: String, nombre: String, apellido: String, email: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:183:13 [INFO] [stdout] | [INFO] [stdout] 183 | let mut student= Estudiante::new(String::from("Pepe"), 123); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | let mut student2= Estudiante::new(String::from("Pepe"), 999); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:210:13 [INFO] [stdout] | [INFO] [stdout] 210 | let mut student2= Estudiante::new(String::from("Pepe"), 999); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | let mut student2= Estudiante::new(String::from("Pepe"), 999); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | return entry.1; [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 entry.1; [INFO] [stdout] 134 + entry.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | return 0.0; [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] 136 - return 0.0; [INFO] [stdout] 136 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:155:20 [INFO] [stdout] | [INFO] [stdout] 155 | if self.categorias_descuento.iter().any(|c| *c == p.producto.categoria) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.categorias_descuento.contains(&p.producto.categoria)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | ... precio_producto = precio_producto * p.cantidad as f64; //Multiplico el precio (con el descuento aplicado o no) por la cantida... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `precio_producto *= p.cantidad as f64` [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: returning the result of a `let` binding from a block [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 192 | / let reporte = ReportePorVendedor { [INFO] [stdout] 193 | | ventas_vendedor: hm_auxiliar, [INFO] [stdout] 194 | | }; [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 195 | [INFO] [stdout] 196 | reporte [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] 192 ~ [INFO] [stdout] 193 | [INFO] [stdout] 194 ~ ReportePorVendedor { [INFO] [stdout] 195 + ventas_vendedor: hm_auxiliar, [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:229:10 [INFO] [stdout] | [INFO] [stdout] 225 | / let reporte = ReportePorCategoria { [INFO] [stdout] 226 | | ventas_categoria: hm_auxiliar, [INFO] [stdout] 227 | | }; [INFO] [stdout] | |___________- unnecessary `let` binding [INFO] [stdout] 228 | [INFO] [stdout] 229 | reporte [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] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 225 ~ [INFO] [stdout] 226 | [INFO] [stdout] 227 ~ ReportePorCategoria { [INFO] [stdout] 228 + ventas_categoria: hm_auxiliar, [INFO] [stdout] 229 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej08.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | let mut jazz_songs: Vec; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:319:52 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn ordenar_ventas_por_fecha(&self, ventas: &mut 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] 319 - pub fn ordenar_ventas_por_fecha(&self, ventas: &mut Vec) { [INFO] [stdout] 319 + pub fn ordenar_ventas_por_fecha(&self, ventas: &mut [VentaInforme]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej08.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | let mut pop_songs= playlist.obtener_canciones_por_genero(Genero::POP); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej08.rs:281:13 [INFO] [stdout] | [INFO] [stdout] 281 | let mut pepa_songs: Vec; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/ej08.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | let mut titi_songs= playlist.obtener_canciones_por_artista(String::from("titi")); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:80:20 [INFO] [stdout] | [INFO] [stdout] 80 | chain.push_str(&*chain_ingresada); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `&chain_ingresada` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `index` is only used to index `arreglo` [INFO] [stdout] --> src/main.rs:118:18 [INFO] [stdout] | [INFO] [stdout] 118 | for index in 0..arreglo.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 118 - for index in 0..arreglo.len() { [INFO] [stdout] 118 + for in &arreglo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual case-insensitive ASCII comparison [INFO] [stdout] --> src/main.rs:141:12 [INFO] [stdout] | [INFO] [stdout] 141 | if caracter.to_ascii_lowercase() == letra.to_ascii_lowercase(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ignore_case_cmp [INFO] [stdout] = note: `#[warn(clippy::manual_ignore_case_cmp)]` on by default [INFO] [stdout] help: consider using `.eq_ignore_ascii_case()` instead [INFO] [stdout] | [INFO] [stdout] 141 - if caracter.to_ascii_lowercase() == letra.to_ascii_lowercase(){ [INFO] [stdout] 141 + if caracter.eq_ignore_ascii_case(&letra){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | cantidad = cantidad + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cantidad += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `numero` is only used to index `numeros` [INFO] [stdout] --> src/main.rs:155:19 [INFO] [stdout] | [INFO] [stdout] 155 | for numero in 0..numeros.len(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 155 - for numero in 0..numeros.len(){ [INFO] [stdout] 155 + for in &numeros{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `elemento` is only used to index `numeros_suma` [INFO] [stdout] --> src/main.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | for elemento in 0..numeros_suma.len(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 177 - for elemento in 0..numeros_suma.len(){ [INFO] [stdout] 177 + for in &numeros_suma{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | suscripcion.upgrade(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 191 | let _ = suscripcion.upgrade(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | suscripcion.downgrade(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 201 | let _ = suscripcion.downgrade(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | user.upgrade_suscripcion(); //Update subscription. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 245 | let _ = user.upgrade_suscripcion(); //Update subscription. [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:252:13 [INFO] [stdout] | [INFO] [stdout] 252 | user.downgrade_suscripcion(); //Downgrade subscription. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 252 | let _ = user.downgrade_suscripcion(); //Downgrade subscription. [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | user.cancelar_suscripcion(); //Downgrade subscription. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 258 | let _ = user.cancelar_suscripcion(); //Downgrade subscription. [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `esta_devuelto` [INFO] [stdout] --> src/tp03/ej10.rs:572:13 [INFO] [stdout] | [INFO] [stdout] 572 | let esta_devuelto = { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_esta_devuelto` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:183:13 [INFO] [stdout] | [INFO] [stdout] 183 | let mut student= Estudiante::new(String::from("Pepe"), 123); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | let mut student2= Estudiante::new(String::from("Pepe"), 999); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:210:13 [INFO] [stdout] | [INFO] [stdout] 210 | let mut student2= Estudiante::new(String::from("Pepe"), 999); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | let mut student2= Estudiante::new(String::from("Pepe"), 999); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `numero_tarjeta` [INFO] [stdout] --> src/tp04/ej03.rs:141:41 [INFO] [stdout] | [INFO] [stdout] 141 | MedioPago::TarjetaCredito { numero_tarjeta } => String::from("TarjetaCredito"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `numero_tarjeta: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cbu` [INFO] [stdout] --> src/tp04/ej03.rs:142:38 [INFO] [stdout] | [INFO] [stdout] 142 | MedioPago::MercadoPago { cbu } => String::from("MercadoPago"), [INFO] [stdout] | ^^^ help: try ignoring the field: `cbu: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cuenta_destino` [INFO] [stdout] --> src/tp04/ej03.rs:143:48 [INFO] [stdout] | [INFO] [stdout] 143 | MedioPago::TransferenciaBancaria { cuenta_destino, cuenta_origen } => String::from("TransferenciaBancaria"), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `cuenta_destino: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cuenta_origen` [INFO] [stdout] --> src/tp04/ej03.rs:143:64 [INFO] [stdout] | [INFO] [stdout] 143 | MedioPago::TransferenciaBancaria { cuenta_destino, cuenta_origen } => String::from("TransferenciaBancaria"), [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `cuenta_origen: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tipo_cripto` [INFO] [stdout] --> src/tp04/ej03.rs:144:33 [INFO] [stdout] | [INFO] [stdout] 144 | MedioPago::Cripto { tipo_cripto } => String::from("Cripto"), [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `tipo_cripto: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/tp04/ej03.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 234 | if let user_existe = self.usuarios.iter().find(|u| u.id == id) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_existe` [INFO] [stdout] --> src/tp04/ej03.rs:234:16 [INFO] [stdout] | [INFO] [stdout] 234 | if let user_existe = self.usuarios.iter().find(|u| u.id == id) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_existe` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `suscripcion` [INFO] [stdout] --> src/tp04/ej03.rs:352:50 [INFO] [stdout] | [INFO] [stdout] 352 | u.suscripciones.iter().for_each(|suscripcion| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_suscripcion` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:412:13 [INFO] [stdout] | [INFO] [stdout] 412 | let mut usuarios = vec![user0.clone()]; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:457:13 [INFO] [stdout] | [INFO] [stdout] 457 | let mut user0 = Usuario { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:472:13 [INFO] [stdout] | [INFO] [stdout] 472 | let mut user1 = Usuario { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:487:13 [INFO] [stdout] | [INFO] [stdout] 487 | let mut user2 = Usuario { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:502:13 [INFO] [stdout] | [INFO] [stdout] 502 | let mut user3 = Usuario { [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:521:13 [INFO] [stdout] | [INFO] [stdout] 521 | let mut usuarios = vec![user0.clone(), user1.clone(), user2.clone(), user3.clone()]; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/tp04/ej03.rs:522:13 [INFO] [stdout] | [INFO] [stdout] 522 | let mut plataforma = StreamingRust {usuarios}; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sistema_ventas` [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:589:13 [INFO] [stdout] | [INFO] [stdout] 589 | let mut sistema_ventas:SistemaVentas; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sistema_ventas` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `venta` [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | ... let venta = sistema_ventas.crear_venta("1/1/2025".to_string(), &cliente, &vendedor, productos.clone(), MedioPago::Transferenc... [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_venta` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let mut var_ingresada: bool = match var_ingresada.trim().parse(){ [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let mut var_ingresada = var_ingresada && t; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 58 | let mut var_ingresada = var_ingresada || t; [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | let mut number :u32 = 2; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | let mut number_ingresado:u32 = match number_ingresado.trim().parse(){ [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | let mut number = number + number_ingresado; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | let mut caracter: char = caracter.trim().parse() [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `suma_auxiliar` is never read [INFO] [stdout] --> src/main.rs:171:38 [INFO] [stdout] | [INFO] [stdout] 171 | let mut suma_auxiliar: i32 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v1::Examen` is more private than the item `tp03::julieta_murias_v1::obtener_materia_calificacion_alta` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v1::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v1::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v1::Examen` is more private than the item `tp03::julieta_murias_v1::obtener_materia_calificacion_baja` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v1::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v1::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej07::Color` is more private than the item `tp03::ej07::compare_colors` [INFO] [stdout] --> src/tp03/ej07.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn compare_colors(color1: &Color, color2: &Color) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej07::compare_colors` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej07::Color` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej07.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | enum Color { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej07::Auto` is more private than the item `tp03::ej07::compare` [INFO] [stdout] --> src/tp03/ej07.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn compare (auto1: &Auto, auto2: &Auto) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej07::compare` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej07::Auto` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej07.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | struct Auto { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej08::Genero` is more private than the item `tp03::ej08::compare_genre` [INFO] [stdout] --> src/tp03/ej08.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn compare_genre(genero1: &Genero, genero2: &Genero) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej08::compare_genre` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej08::Genero` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej08.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | enum Genero { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej08::Cancion` is more private than the item `tp03::ej08::compare` [INFO] [stdout] --> src/tp03/ej08.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn compare (cancion1: &Cancion, cancion2: &Cancion) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej08::compare` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej08::Cancion` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej08.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | struct Cancion { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::Dueño` is more private than the item `tp03::ej09::compare_owners` [INFO] [stdout] --> src/tp03/ej09.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn compare_owners(owner1: &Dueño, owner2: &Dueño) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_owners` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::Dueño` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | struct Dueño { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::TipoAnimal` is more private than the item `tp03::ej09::compare_type` [INFO] [stdout] --> src/tp03/ej09.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn compare_type(type1: &TipoAnimal, type2: &TipoAnimal) -> bool{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_type` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::TipoAnimal` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | enum TipoAnimal { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::Mascota` is more private than the item `tp03::ej09::compare_pets` [INFO] [stdout] --> src/tp03/ej09.rs:61:1 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn compare_pets (mascota1: &Mascota, mascota2: &Mascota) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_pets` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::Mascota` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | struct Mascota { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej09::Atencion` is more private than the item `tp03::ej09::compare_atencion` [INFO] [stdout] --> src/tp03/ej09.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn compare_atencion(atencion1: &Atencion, atencion2: &Atencion) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej09::compare_atencion` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej09::Atencion` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej09.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | struct Atencion { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej10::EstadoPrestamo` is more private than the item `tp03::ej10::no_devolvio` [INFO] [stdout] --> src/tp03/ej10.rs:52:1 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn no_devolvio (estado: &EstadoPrestamo) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej10::no_devolvio` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej10::EstadoPrestamo` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej10.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | enum EstadoPrestamo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::ej10::Cliente` is more private than the item `tp03::ej10::compare_clientes` [INFO] [stdout] --> src/tp03/ej10.rs:59:1 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn compare_clientes (cliente1: &Cliente, cliente2: &Cliente) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::ej10::compare_clientes` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::ej10::Cliente` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/ej10.rs:46:1 [INFO] [stdout] | [INFO] [stdout] 46 | struct Cliente { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v2::Examen` is more private than the item `tp03::julieta_murias_v2::obtener_materia_calificacion_alta` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v2::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v2::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp03::julieta_murias_v2::Examen` is more private than the item `tp03::julieta_murias_v2::obtener_materia_calificacion_baja` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp03::julieta_murias_v2::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp03::julieta_murias_v2::Examen` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | struct Examen { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `tp04::ej02::Persona<'_>` is more private than the item `tp04::ej02::compare` [INFO] [stdout] --> src/tp04/ej02.rs:109:1 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn compare (person1: Persona, person2: Persona) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `tp04::ej02::compare` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `tp04::ej02::Persona<'_>` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/tp04/ej02.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | struct Persona <'a>{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `calcular_area` is never used [INFO] [stdout] --> src/tp03/ej04.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 7 | impl Triangulo { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | fn calcular_area (&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nombre` and `id` are never read [INFO] [stdout] --> src/tp03/ej05.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 1 | struct Producto { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 2 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 3 | precio_bruto: f64, [INFO] [stdout] 4 | id: u32, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | struct Informe { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 14 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | id: i32, [INFO] [stdout] | ^^ [INFO] [stdout] 16 | cant_examenes_rendidos: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | promedio: f64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 18 | nota_baja: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 19 | materia_baja: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 20 | nota_alta: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 21 | materia_alta: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `VERDE` and `AZUL` are never constructed [INFO] [stdout] --> src/tp03/ej07.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 3 | enum Color { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] 4 | ROJO, [INFO] [stdout] 5 | VERDE, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 6 | AZUL, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Color` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nombre` and `direccion` are never read [INFO] [stdout] --> src/tp03/ej07.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | struct ConsecionarioAuto { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 21 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | direccion: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RAP` is never constructed [INFO] [stdout] --> src/tp03/ej08.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 2 | enum Genero { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 6 | RAP, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Genero` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OTROS` is never constructed [INFO] [stdout] --> src/tp03/ej09.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 7 | enum TipoAnimal { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 11 | OTROS, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TipoAnimal` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nombre`, `direccion`, and `id` are never read [INFO] [stdout] --> src/tp03/ej09.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | struct Veterinaria { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 15 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | direccion: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | id: i32, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_atencion` is never used [INFO] [stdout] --> src/tp03/ej09.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn compare_atencion(atencion1: &Atencion, atencion2: &Atencion) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `modificar_diagnostico`, `modificar_fecha`, and `eliminar_atencion` are never used [INFO] [stdout] --> src/tp03/ej09.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 85 | impl Veterinaria { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 162 | fn modificar_diagnostico(&mut self, diagnostico_nuevo: String, atencion: &Atencion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn modificar_fecha(&mut self, fecha_nueva: Option, atencion: &Atencion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn eliminar_atencion (&mut self, atencion: &Atencion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Tecnico` is never constructed [INFO] [stdout] --> src/tp03/ej10.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | enum Genero { [INFO] [stdout] | ------ variant in this enum [INFO] [stdout] ... [INFO] [stdout] 8 | Tecnico, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Genero` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nombre` and `direccion` are never read [INFO] [stdout] --> src/tp03/ej10.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 19 | struct Biblioteca { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 20 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | direccion: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Biblioteca` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `titulo`, `autor`, `numero_paginas`, and `genero` are never read [INFO] [stdout] --> src/tp03/ej10.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 27 | struct Libro { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 28 | isbn: u32, [INFO] [stdout] 29 | titulo: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 30 | copias_disponiles: u32, [INFO] [stdout] 31 | autor: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 32 | numero_paginas: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 33 | genero: Genero, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Libro` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `fecha_devolucion` is never read [INFO] [stdout] --> src/tp03/ej10.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 37 | struct Prestamo { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | fecha_devolucion: Fecha, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Prestamo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | struct Informe { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 14 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 15 | id: i32, [INFO] [stdout] | ^^ [INFO] [stdout] 16 | cant_examenes_rendidos: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | promedio: f64, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 18 | nota_baja: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 19 | materia_baja: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 20 | nota_alta: f64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 21 | materia_alta: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `costo_mensual` and `soy_super` are never used [INFO] [stdout] --> src/tp04/ej03.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl TipoSuscripcion { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 23 | fn costo_mensual(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | fn soy_super(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `duracion_meses` and `fecha_inicio` are never read [INFO] [stdout] --> src/tp04/ej03.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 71 | struct Suscripcion { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 72 | tipo: TipoSuscripcion, [INFO] [stdout] 73 | duracion_meses: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 74 | fecha_inicio: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Suscripcion` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `activar_suscripcion` is never used [INFO] [stdout] --> src/tp04/ej03.rs:88:8 [INFO] [stdout] | [INFO] [stdout] 78 | impl Suscripcion { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 88 | fn activar_suscripcion(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TransferenciaBancaria`, `TarjetaCredito`, and `Cripto` are never constructed [INFO] [stdout] --> src/tp04/ej03.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 121 | enum MedioPago { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 126 | TransferenciaBancaria { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | TarjetaCredito { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | Cripto { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MedioPago` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username`, `nombre`, `apellido`, and `email` are never read [INFO] [stdout] --> src/tp04/ej03.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 150 | struct Usuario { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 154 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 155 | nombre: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 156 | apellido: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 157 | email: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Usuario` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `agregar_suscripcion` and `downgrade_suscripcion` are never used [INFO] [stdout] --> src/tp04/ej03.rs:161:8 [INFO] [stdout] | [INFO] [stdout] 160 | impl Usuario { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 161 | fn agregar_suscripcion(&mut self, suscripcion: Suscripcion) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | fn downgrade_suscripcion(&mut self) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `crear_plataforma`, `crear_usuario`, and `downgrade_suscripcion` are never used [INFO] [stdout] --> src/tp04/ej03.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 214 | impl StreamingRust { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 215 | [INFO] [stdout] 216 | pub fn crear_plataforma() -> StreamingRust { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn crear_usuario(&mut self, suscripcion: &Suscripcion, medio_pago: &MedioPago, id: u32, username: String, nombre: String, a... [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn downgrade_suscripcion(&mut self, usuario: &mut Usuario) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `datos` and `email_suscripcion` are never read [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 64 | struct Cliente { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 65 | datos: DatosPersona, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 66 | suscripcion_newsletter: bool, [INFO] [stdout] 67 | email_suscripcion: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cliente` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `TarjetaDebito` is never constructed [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 86 | enum MedioPago { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] 87 | TarjetaCredito, [INFO] [stdout] 88 | TarjetaDebito, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MedioPago` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `tp03::ej01::Persona` [INFO] [stdout] --> src/tp03/ej01.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / fn to_string (&self) -> String { [INFO] [stdout] 17 | | let direction_str = if let Some(dir) = &self.direccion{ [INFO] [stdout] 18 | | dir.as_str() [INFO] [stdout] 19 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 23 | | format! ("Name: {}, age: {}, direction: {}", self.nombre, self.edad, direction_str) [INFO] [stdout] 24 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `tp03::ej01::Persona` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej02.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | assert_eq!(rectangle.es_cuadrado(), 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] 34 - assert_eq!(rectangle.es_cuadrado(), true); [INFO] [stdout] 34 + assert!(rectangle.es_cuadrado()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tp03/ej03.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | self.año % 4 == 0 && self.año % 100 != 0 || self.año % 400 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace with: `self.año.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tp03/ej03.rs:22:30 [INFO] [stdout] | [INFO] [stdout] 22 | self.año % 4 == 0 && self.año % 100 != 0 || self.año % 400 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.año.is_multiple_of(100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tp03/ej03.rs:22:53 [INFO] [stdout] | [INFO] [stdout] 22 | self.año % 4 == 0 && self.año % 100 != 0 || self.año % 400 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `self.año.is_multiple_of(400)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej03.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | assert_eq!(date1.es_fecha_valida(), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 138 - assert_eq!(date1.es_fecha_valida(), true); [INFO] [stdout] 138 + assert!(date1.es_fecha_valida()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej03.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | assert_eq!(date2.es_fecha_valida(), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 141 - assert_eq!(date2.es_fecha_valida(), false); [INFO] [stdout] 141 + assert!(!date2.es_fecha_valida()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej03.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | assert_eq!(date1.es_bisiesto(), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 151 - assert_eq!(date1.es_bisiesto(), false); [INFO] [stdout] 151 + assert!(!date1.es_bisiesto()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej03.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | assert_eq!(date2.es_bisiesto(), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 154 - assert_eq!(date2.es_bisiesto(), true); [INFO] [stdout] 154 + assert!(date2.es_bisiesto()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej03.rs:206:9 [INFO] [stdout] | [INFO] [stdout] 206 | assert_eq!(date1.es_mayor(&date2), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 206 - assert_eq!(date1.es_mayor(&date2), false); [INFO] [stdout] 206 + assert!(!date1.es_mayor(&date2)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej03.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | assert_eq!(date1.es_mayor(&date3), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 207 - assert_eq!(date1.es_mayor(&date3), true); [INFO] [stdout] 207 + assert!(date1.es_mayor(&date3)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tp03/ej04.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | ... if (self.lado1 == self.lado2 && self.lado2 != self.lado3) || (self.lado1 == self.lado3 && self.lado3 != self.lado2) || (self.l... [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] 20 - if (self.lado1 == self.lado2 && self.lado2 != self.lado3) || (self.lado1 == self.lado3 && self.lado3 != self.lado2) || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [INFO] [stdout] 20 + if !(self.lado2 == self.lado3 || self.lado1 != self.lado2 && self.lado1 != self.lado3) || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [INFO] [stdout] | [INFO] [stdout] 20 - if (self.lado1 == self.lado2 && self.lado2 != self.lado3) || (self.lado1 == self.lado3 && self.lado3 != self.lado2) || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [INFO] [stdout] 20 + if (self.lado1 == self.lado3 || self.lado1 == self.lado2) && self.lado2 != self.lado3 || (self.lado2 == self.lado3 && self.lado2 != self.lado1){ [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/tp03/julieta_murias_v1.rs:24:52 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [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] 24 - pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] 24 + pub fn obtener_materia_calificacion_alta(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:44:52 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [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] 44 - pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] 44 + pub fn obtener_materia_calificacion_baja(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | return None; //Si no tiene notas devuelvo nada. [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] 132 - return None; //Si no tiene notas devuelvo nada. [INFO] [stdout] 132 + None//Si no tiene notas devuelvo nada. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | return Some(informe); //Returno el Option con el informe. [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] 145 - return Some(informe); //Returno el Option con el informe. [INFO] [stdout] 145 + Some(informe)//Returno el Option con el informe. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v1.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: name `ROJO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | ROJO, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Rojo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VERDE` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | VERDE, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Verde` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AZUL` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | AZUL, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Azul` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AMARILLO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | AMARILLO, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Amarillo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BLANCO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | BLANCO, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Blanco` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NEGRO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej07.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | NEGRO, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Negro` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej07.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | return true; [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 true; [INFO] [stdout] 63 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej07.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | return false; [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] 65 - return false; [INFO] [stdout] 65 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej07.rs:73:40 [INFO] [stdout] | [INFO] [stdout] 73 | if compare(&self.autos[i], &auto) { [INFO] [stdout] | ^^^^^ help: change this to: `auto` [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: manual implementation of `Iterator::find` [INFO] [stdout] --> src/tp03/ej07.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / for car in self.autos.iter() { [INFO] [stdout] 86 | | if compare(&car, &auto) { [INFO] [stdout] 87 | | return Some(car); [INFO] [stdout] ... | [INFO] [stdout] 90 | | None //If I didn't find it, return nothing (None). [INFO] [stdout] | |____________^ help: replace with an iterator: `self.autos.iter().find(|&car| compare(&car, &auto)).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej07.rs:86:24 [INFO] [stdout] | [INFO] [stdout] 86 | if compare(&car, &auto) { [INFO] [stdout] | ^^^^ help: change this to: `car` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej07.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | if compare(&car, &auto) { [INFO] [stdout] | ^^^^^ help: change this to: `auto` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej07.rs:109:27 [INFO] [stdout] | [INFO] [stdout] 109 | let es_primario = match self.color { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 110 | | Color::AMARILLO | Color::AZUL | Color::ROJO => true, [INFO] [stdout] 111 | | _ => false, [INFO] [stdout] 112 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 109 - let es_primario = match self.color { [INFO] [stdout] 110 - Color::AMARILLO | Color::AZUL | Color::ROJO => true, [INFO] [stdout] 111 - _ => false, [INFO] [stdout] 112 - }; [INFO] [stdout] 109 + let es_primario = matches!(self.color, Color::AMARILLO | Color::AZUL | Color::ROJO); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp03/ej07.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | assert_eq!(concesionario.agregar_auto(&auto4), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 156 - assert_eq!(concesionario.agregar_auto(&auto4), false); [INFO] [stdout] 156 + assert!(!concesionario.agregar_auto(&auto4)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `ROCK` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | ROCK, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Rock` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `POP` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | POP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Pop` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `JAZZ` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | JAZZ, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Jazz` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RAP` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | RAP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Rap` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OTROS` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej08.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | OTROS, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Otros` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej08.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / match (genero1, genero2) { [INFO] [stdout] 34 | | (Genero::JAZZ, Genero::JAZZ) => true, [INFO] [stdout] 35 | | (Genero::ROCK, Genero::ROCK) => true, [INFO] [stdout] 36 | | (Genero::RAP, Genero::RAP) => true, [INFO] [stdout] ... | [INFO] [stdout] 39 | | _ => false, [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 33 - match (genero1, genero2) { [INFO] [stdout] 34 - (Genero::JAZZ, Genero::JAZZ) => true, [INFO] [stdout] 35 - (Genero::ROCK, Genero::ROCK) => true, [INFO] [stdout] 36 - (Genero::RAP, Genero::RAP) => true, [INFO] [stdout] 37 - (Genero::POP, Genero::POP) => true, [INFO] [stdout] 38 - (Genero::OTROS, Genero::OTROS) => true, [INFO] [stdout] 39 - _ => false, [INFO] [stdout] 40 - } [INFO] [stdout] 33 + matches!((genero1, genero2), (Genero::JAZZ, Genero::JAZZ) | (Genero::ROCK, Genero::ROCK) | (Genero::RAP, Genero::RAP) | (Genero::POP, Genero::POP) | (Genero::OTROS, Genero::OTROS)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej08.rs:66:44 [INFO] [stdout] | [INFO] [stdout] 66 | if compare(&self.canciones[i], &cancion) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cancion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej08.rs:83:48 [INFO] [stdout] | [INFO] [stdout] 83 | if compare(&self.canciones[i], &cancion) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cancion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PERRO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | PERRO, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Perro` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `GATO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GATO, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Gato` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CABALLO` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | CABALLO, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Caballo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OTROS` contains a capitalized acronym [INFO] [stdout] --> src/tp03/ej09.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | OTROS, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Otros` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej09.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / match (type1, type2) { [INFO] [stdout] 53 | | (TipoAnimal::CABALLO, TipoAnimal::CABALLO) => true, [INFO] [stdout] 54 | | (TipoAnimal::PERRO, TipoAnimal::PERRO) => true, [INFO] [stdout] 55 | | (TipoAnimal::GATO, TipoAnimal::GATO) => true, [INFO] [stdout] 56 | | (TipoAnimal::OTROS, TipoAnimal::OTROS) => true, [INFO] [stdout] 57 | | _ => false, [INFO] [stdout] 58 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 52 - match (type1, type2) { [INFO] [stdout] 53 - (TipoAnimal::CABALLO, TipoAnimal::CABALLO) => true, [INFO] [stdout] 54 - (TipoAnimal::PERRO, TipoAnimal::PERRO) => true, [INFO] [stdout] 55 - (TipoAnimal::GATO, TipoAnimal::GATO) => true, [INFO] [stdout] 56 - (TipoAnimal::OTROS, TipoAnimal::OTROS) => true, [INFO] [stdout] 57 - _ => false, [INFO] [stdout] 58 - } [INFO] [stdout] 52 + matches!((type1, type2), (TipoAnimal::CABALLO, TipoAnimal::CABALLO) | (TipoAnimal::PERRO, TipoAnimal::PERRO) | (TipoAnimal::GATO, TipoAnimal::GATO) | (TipoAnimal::OTROS, TipoAnimal::OTROS)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej09.rs:166:54 [INFO] [stdout] | [INFO] [stdout] 166 | if compare_atencion(&self.atenciones[i], &atencion) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `atencion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej09.rs:181:54 [INFO] [stdout] | [INFO] [stdout] 181 | if compare_atencion(&self.atenciones[i], &atencion) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `atencion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej09.rs:196:54 [INFO] [stdout] | [INFO] [stdout] 196 | if compare_atencion(&self.atenciones[i], &atencion) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `atencion` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej10.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / match estado { [INFO] [stdout] 54 | | (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] 55 | | _ => false, [INFO] [stdout] 56 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 53 - match estado { [INFO] [stdout] 54 - (EstadoPrestamo::EnPrestamo) => true, [INFO] [stdout] 55 - _ => false, [INFO] [stdout] 56 - } [INFO] [stdout] 53 + matches!(estado, EstadoPrestamo::EnPrestamo) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej10.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | return book.copias_disponiles; [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] 68 - return book.copias_disponiles; [INFO] [stdout] 68 + book.copias_disponiles [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/ej10.rs:70:13 [INFO] [stdout] | [INFO] [stdout] 70 | return 0; [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 0; [INFO] [stdout] 70 + 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:90:52 [INFO] [stdout] | [INFO] [stdout] 90 | if compare_clientes(&prestamo.cliente, &cliente) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cliente` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tp03/ej10.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / if okay_prestamo && self.contar_prestamos_cliente(cliente) < 5 { [INFO] [stdout] 107 | | if let Some(book) = self.libros.get_mut(&libro.isbn) { [INFO] [stdout] 108 | | book.copias_disponiles -= 1; [INFO] [stdout] 109 | | return true; [INFO] [stdout] 110 | | } [INFO] [stdout] 111 | | } [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] 106 ~ if okay_prestamo && self.contar_prestamos_cliente(cliente) < 5 [INFO] [stdout] 107 ~ && let Some(book) = self.libros.get_mut(&libro.isbn) { [INFO] [stdout] 108 | book.copias_disponiles -= 1; [INFO] [stdout] 109 | return true; [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:129:50 [INFO] [stdout] | [INFO] [stdout] 129 | (prestamo.fecha_vencimiento.es_mayor(&fecha_actual) || fecha_igual) // fecha_vencimiento >= fecha_actual [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `fecha_actual` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:142:50 [INFO] [stdout] | [INFO] [stdout] 142 | !prestamo.fecha_vencimiento.es_mayor(&fecha_actual) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `fecha_actual` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:152:52 [INFO] [stdout] | [INFO] [stdout] 152 | if compare_clientes(&prestamo.cliente, &cliente) && prestamo.isbn_libro == libro.isbn { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cliente` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp03/ej10.rs:161:52 [INFO] [stdout] | [INFO] [stdout] 161 | if compare_clientes(&prestamo.cliente, &cliente) && prestamo.isbn_libro == libro.isbn { [INFO] [stdout] | ^^^^^^^^ help: change this to: `cliente` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/tp03/ej10.rs:569:34 [INFO] [stdout] | [INFO] [stdout] 569 | biblioteca.libros.insert(libro.isbn.clone(), libro.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `libro.isbn` [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: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp03/ej10.rs:573:13 [INFO] [stdout] | [INFO] [stdout] 573 | / match libro_devuelto.unwrap().estado { [INFO] [stdout] 574 | | (EstadoPrestamo::Devuelto) => true, [INFO] [stdout] 575 | | _ => false, [INFO] [stdout] 576 | | [INFO] [stdout] 577 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 573 - match libro_devuelto.unwrap().estado { [INFO] [stdout] 574 - (EstadoPrestamo::Devuelto) => true, [INFO] [stdout] 575 - _ => false, [INFO] [stdout] 576 - [INFO] [stdout] 577 - } [INFO] [stdout] 573 + matches!(libro_devuelto.unwrap().estado, EstadoPrestamo::Devuelto) [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/tp03/julieta_murias_v2.rs:24:52 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [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] 24 - pub fn obtener_materia_calificacion_alta(examenes: &Vec) -> String { [INFO] [stdout] 24 + pub fn obtener_materia_calificacion_alta(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:44:52 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [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] 44 - pub fn obtener_materia_calificacion_baja(examenes: &Vec) -> String { [INFO] [stdout] 44 + pub fn obtener_materia_calificacion_baja(examenes: &[Examen]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:132:13 [INFO] [stdout] | [INFO] [stdout] 132 | return None; //Si no tiene notas devuelvo nada. [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 None; //Si no tiene notas devuelvo nada. [INFO] [stdout] 132 + None//Si no tiene notas devuelvo nada. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | return Some(informe); //Returno el Option con el informe. [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] 145 - return Some(informe); //Returno el Option con el informe. [INFO] [stdout] 145 + Some(informe)//Returno el Option con el informe. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp03/julieta_murias_v2.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | if self.examenes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.examenes.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] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej01.rs:21:31 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn contar_primos(numeros: &Vec) -> u32 { [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] 21 - pub fn contar_primos(numeros: &Vec) -> u32 { [INFO] [stdout] 21 + pub fn contar_primos(numeros: &[i32]) -> u32 { [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/tp04/ej02.rs:14:45 [INFO] [stdout] | [INFO] [stdout] 14 | fn filtrar_por_salario(&self, personas: &'a Vec>, salario: f64) -> Option>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:15:49 [INFO] [stdout] | [INFO] [stdout] 15 | fn filtrar_por_edad_ciudad(&self, personas: &'a Vec>, edad: u8, ciudad: String) -> Option>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:16:40 [INFO] [stdout] | [INFO] [stdout] 16 | fn todos_viven_en(&self, personas: &'a Vec>, ciudad: &str) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:17:40 [INFO] [stdout] | [INFO] [stdout] 17 | fn alguno_vive_en(&self, personas: &'a Vec>, ciudad: &str) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:18:40 [INFO] [stdout] | [INFO] [stdout] 18 | fn persona_existe(&self, personas: &'a Vec>, persona: &Persona<'a>) -> bool; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:19:43 [INFO] [stdout] | [INFO] [stdout] 19 | fn recolectar_edades(&self, personas: &'a Vec>) -> Option>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/ej02.rs:20:45 [INFO] [stdout] | [INFO] [stdout] 20 | fn salario_mayor_menor(&self, personas: &'a Vec>) -> Option<(&Persona<'a>, &Persona<'a>)>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `&'a [Persona<'a>]` [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/tp04/ej02.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | 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] 33 - return None; [INFO] [stdout] 33 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return Some(people); [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] 35 - return Some(people); [INFO] [stdout] 35 + Some(people) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp04/ej02.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | if people.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `people.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | 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] 43 - return None; [INFO] [stdout] 43 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | return Some(people); [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] 45 - return Some(people); [INFO] [stdout] 45 + Some(people) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/tp04/ej02.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | if people.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `people.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp04/ej02.rs:53:63 [INFO] [stdout] | [INFO] [stdout] 53 | personas.iter().all(|p| p.ciudad.eq_ignore_ascii_case(&ciudad)) [INFO] [stdout] | ^^^^^^^ help: change this to: `ciudad` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tp04/ej02.rs:60:63 [INFO] [stdout] | [INFO] [stdout] 60 | personas.iter().any(|p| p.ciudad.eq_ignore_ascii_case(&ciudad)) [INFO] [stdout] | ^^^^^^^ help: change this to: `ciudad` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | 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] 72 - return None; [INFO] [stdout] 72 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | return Some(edades); [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] 75 - return Some(edades); [INFO] [stdout] 75 + Some(edades) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/ej02.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | 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] 81 - return None; [INFO] [stdout] 81 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:247:9 [INFO] [stdout] | [INFO] [stdout] 247 | assert_eq!(persona.todos_viven_en(&personas_no_cumplen, "La plata"), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 247 - assert_eq!(persona.todos_viven_en(&personas_no_cumplen, "La plata"), false); [INFO] [stdout] 247 + assert!(!persona.todos_viven_en(&personas_no_cumplen, "La plata")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | assert_eq!(persona.todos_viven_en(&personas_cumplen, "La plata"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 248 - assert_eq!(persona.todos_viven_en(&personas_cumplen, "La plata"), true); [INFO] [stdout] 248 + assert!(persona.todos_viven_en(&personas_cumplen, "La plata")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | assert_eq!(persona.alguno_vive_en(&personas_cumplen, "bs as"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 276 - assert_eq!(persona.alguno_vive_en(&personas_cumplen, "bs as"), true); [INFO] [stdout] 276 + assert!(persona.alguno_vive_en(&personas_cumplen, "bs as")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:277:9 [INFO] [stdout] | [INFO] [stdout] 277 | assert_eq!(persona.alguno_vive_en(&personas_no_cumplen, "bs as"), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 277 - assert_eq!(persona.alguno_vive_en(&personas_no_cumplen, "bs as"), false); [INFO] [stdout] 277 + assert!(!persona.alguno_vive_en(&personas_no_cumplen, "bs as")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_ne!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | assert_ne!(persona.alguno_vive_en(&personas_no_cumplen, "bs as"), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 279 - assert_ne!(persona.alguno_vive_en(&personas_no_cumplen, "bs as"), true); [INFO] [stdout] 279 + assert!(!persona.alguno_vive_en(&personas_no_cumplen, "bs as")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | assert_eq!(persona_tester.persona_existe(&personas, &persona_existente), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 291 - assert_eq!(persona_tester.persona_existe(&personas, &persona_existente), true); [INFO] [stdout] 291 + assert!(persona_tester.persona_existe(&personas, &persona_existente)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej02.rs:292:9 [INFO] [stdout] | [INFO] [stdout] 292 | assert_eq!(persona_tester.persona_existe(&personas, &persona_inexistente), false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 292 - assert_eq!(persona_tester.persona_existe(&personas, &persona_inexistente), false); [INFO] [stdout] 292 + assert!(!persona_tester.persona_existe(&personas, &persona_inexistente)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / match (self, other) { [INFO] [stdout] 13 | | (TipoSuscripcion::Basic, TipoSuscripcion::Basic) => true, [INFO] [stdout] 14 | | (TipoSuscripcion::Clasic, TipoSuscripcion::Clasic) => true, [INFO] [stdout] 15 | | (TipoSuscripcion::Super, TipoSuscripcion::Super) => true, [INFO] [stdout] 16 | | _ => false, [INFO] [stdout] 17 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 12 - match (self, other) { [INFO] [stdout] 13 - (TipoSuscripcion::Basic, TipoSuscripcion::Basic) => true, [INFO] [stdout] 14 - (TipoSuscripcion::Clasic, TipoSuscripcion::Clasic) => true, [INFO] [stdout] 15 - (TipoSuscripcion::Super, TipoSuscripcion::Super) => true, [INFO] [stdout] 16 - _ => false, [INFO] [stdout] 17 - } [INFO] [stdout] 12 + matches!((self, other), (TipoSuscripcion::Basic, TipoSuscripcion::Basic) | (TipoSuscripcion::Clasic, TipoSuscripcion::Clasic) | (TipoSuscripcion::Super, TipoSuscripcion::Super)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / match self { [INFO] [stdout] 50 | | TipoSuscripcion::Basic => true, [INFO] [stdout] 51 | | _ => false, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 49 - match self { [INFO] [stdout] 50 - TipoSuscripcion::Basic => true, [INFO] [stdout] 51 - _ => false, [INFO] [stdout] 52 - } [INFO] [stdout] 49 + matches!(self, TipoSuscripcion::Basic) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / match self { [INFO] [stdout] 57 | | TipoSuscripcion::Clasic => true, [INFO] [stdout] 58 | | _ => false, [INFO] [stdout] 59 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 56 - match self { [INFO] [stdout] 57 - TipoSuscripcion::Clasic => true, [INFO] [stdout] 58 - _ => false, [INFO] [stdout] 59 - } [INFO] [stdout] 56 + matches!(self, TipoSuscripcion::Clasic) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/tp04/ej03.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | / match self { [INFO] [stdout] 64 | | TipoSuscripcion::Super => true, [INFO] [stdout] 65 | | _ => false, [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 63 - match self { [INFO] [stdout] 64 - TipoSuscripcion::Super => true, [INFO] [stdout] 65 - _ => false, [INFO] [stdout] 66 - } [INFO] [stdout] 63 + matches!(self, TipoSuscripcion::Super) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implementation of inherent method `to_string(&self) -> String` for type `tp04::ej03::MedioPago` [INFO] [stdout] --> src/tp04/ej03.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | / fn to_string(&self) -> String { [INFO] [stdout] 139 | | match self { [INFO] [stdout] 140 | | MedioPago::Efectivo => String::from("Efectivo"), [INFO] [stdout] 141 | | MedioPago::TarjetaCredito { numero_tarjeta } => String::from("TarjetaCredito"), [INFO] [stdout] ... | [INFO] [stdout] 146 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `tp04::ej03::MedioPago` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/tp04/ej03.rs:222:5 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn crear_usuario(&mut self, suscripcion: &Suscripcion, medio_pago: &MedioPago, id: u32, username: String, nombre: String, apellido: String, email: String) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej03.rs:382:9 [INFO] [stdout] | [INFO] [stdout] 382 | assert_eq!(suscripcion0.tipo.soy_basic(), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 382 - assert_eq!(suscripcion0.tipo.soy_basic(), true); [INFO] [stdout] 382 + assert!(suscripcion0.tipo.soy_basic()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej03.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | assert_eq!(suscripcion0.tipo.soy_clasic(), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 384 - assert_eq!(suscripcion0.tipo.soy_clasic(), true); [INFO] [stdout] 384 + assert!(suscripcion0.tipo.soy_clasic()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej03.rs:390:9 [INFO] [stdout] | [INFO] [stdout] 390 | assert_eq!(suscripcion0.tipo.soy_basic(), 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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 390 - assert_eq!(suscripcion0.tipo.soy_basic(), true); [INFO] [stdout] 390 + assert!(suscripcion0.tipo.soy_basic()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej03.rs:392:9 [INFO] [stdout] | [INFO] [stdout] 392 | assert_eq!(suscripcion0.activa, false); [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 392 - assert_eq!(suscripcion0.activa, false); [INFO] [stdout] 392 + assert!(!suscripcion0.activa); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/ej03.rs:451:9 [INFO] [stdout] | [INFO] [stdout] 451 | assert_eq!(user0.suscripciones.iter().any(|s| s.activa), false); //Ok. [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 451 - assert_eq!(user0.suscripciones.iter().any(|s| s.activa), false); //Ok. [INFO] [stdout] 451 + assert!(!user0.suscripciones.iter().any(|s| s.activa)); //Ok. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | return entry.1; [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 entry.1; [INFO] [stdout] 134 + entry.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | return 0.0; [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] 136 - return 0.0; [INFO] [stdout] 136 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:155:20 [INFO] [stdout] | [INFO] [stdout] 155 | if self.categorias_descuento.iter().any(|c| *c == p.producto.categoria) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.categorias_descuento.contains(&p.producto.categoria)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | ... precio_producto = precio_producto * p.cantidad as f64; //Multiplico el precio (con el descuento aplicado o no) por la cantida... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `precio_producto *= p.cantidad as f64` [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: returning the result of a `let` binding from a block [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 192 | / let reporte = ReportePorVendedor { [INFO] [stdout] 193 | | ventas_vendedor: hm_auxiliar, [INFO] [stdout] 194 | | }; [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 195 | [INFO] [stdout] 196 | reporte [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] 192 ~ [INFO] [stdout] 193 | [INFO] [stdout] 194 ~ ReportePorVendedor { [INFO] [stdout] 195 + ventas_vendedor: hm_auxiliar, [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:229:10 [INFO] [stdout] | [INFO] [stdout] 225 | / let reporte = ReportePorCategoria { [INFO] [stdout] 226 | | ventas_categoria: hm_auxiliar, [INFO] [stdout] 227 | | }; [INFO] [stdout] | |___________- unnecessary `let` binding [INFO] [stdout] 228 | [INFO] [stdout] 229 | reporte [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] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 225 ~ [INFO] [stdout] 226 | [INFO] [stdout] 227 ~ ReportePorCategoria { [INFO] [stdout] 228 + ventas_categoria: hm_auxiliar, [INFO] [stdout] 229 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:319:52 [INFO] [stdout] | [INFO] [stdout] 319 | pub fn ordenar_ventas_por_fecha(&self, ventas: &mut 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] 319 - pub fn ordenar_ventas_por_fecha(&self, ventas: &mut Vec) { [INFO] [stdout] 319 + pub fn ordenar_ventas_por_fecha(&self, ventas: &mut [VentaInforme]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:381:9 [INFO] [stdout] | [INFO] [stdout] 381 | assert_eq!(sistema_ventas.get_historial_ventas(0000, Categoria::Comida).is_some(), true); //Ok. [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 381 - assert_eq!(sistema_ventas.get_historial_ventas(0000, Categoria::Comida).is_some(), true); //Ok. [INFO] [stdout] 381 + assert!(sistema_ventas.get_historial_ventas(0000, Categoria::Comida).is_some()); //Ok. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:382:9 [INFO] [stdout] | [INFO] [stdout] 382 | assert_eq!(sistema_ventas.get_historial_ventas(0000, Categoria::Hogar).is_some(), true); //Ok. [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 382 - assert_eq!(sistema_ventas.get_historial_ventas(0000, Categoria::Hogar).is_some(), true); //Ok. [INFO] [stdout] 382 + assert!(sistema_ventas.get_historial_ventas(0000, Categoria::Hogar).is_some()); //Ok. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_ne!` with a literal bool [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:384:9 [INFO] [stdout] | [INFO] [stdout] 384 | assert_ne!(sistema_ventas.get_historial_ventas(0000, Categoria::Hogar).is_none(), true); //Ok. [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] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 384 - assert_ne!(sistema_ventas.get_historial_ventas(0000, Categoria::Hogar).is_none(), true); //Ok. [INFO] [stdout] 384 + assert!(!sistema_ventas.get_historial_ventas(0000, Categoria::Hogar).is_none()); //Ok. [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/main.rs:80:20 [INFO] [stdout] | [INFO] [stdout] 80 | chain.push_str(&*chain_ingresada); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `&chain_ingresada` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `index` is only used to index `arreglo` [INFO] [stdout] --> src/main.rs:118:18 [INFO] [stdout] | [INFO] [stdout] 118 | for index in 0..arreglo.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 118 - for index in 0..arreglo.len() { [INFO] [stdout] 118 + for in &arreglo { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual case-insensitive ASCII comparison [INFO] [stdout] --> src/main.rs:141:12 [INFO] [stdout] | [INFO] [stdout] 141 | if caracter.to_ascii_lowercase() == letra.to_ascii_lowercase(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ignore_case_cmp [INFO] [stdout] = note: `#[warn(clippy::manual_ignore_case_cmp)]` on by default [INFO] [stdout] help: consider using `.eq_ignore_ascii_case()` instead [INFO] [stdout] | [INFO] [stdout] 141 - if caracter.to_ascii_lowercase() == letra.to_ascii_lowercase(){ [INFO] [stdout] 141 + if caracter.eq_ignore_ascii_case(&letra){ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/main.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | cantidad = cantidad + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cantidad += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `numero` is only used to index `numeros` [INFO] [stdout] --> src/main.rs:155:19 [INFO] [stdout] | [INFO] [stdout] 155 | for numero in 0..numeros.len(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 155 - for numero in 0..numeros.len(){ [INFO] [stdout] 155 + for in &numeros{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `elemento` is only used to index `numeros_suma` [INFO] [stdout] --> src/main.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | for elemento in 0..numeros_suma.len(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 177 - for elemento in 0..numeros_suma.len(){ [INFO] [stdout] 177 + for in &numeros_suma{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | suscripcion.upgrade(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 191 | let _ = suscripcion.upgrade(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | suscripcion.downgrade(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 201 | let _ = suscripcion.downgrade(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:245:13 [INFO] [stdout] | [INFO] [stdout] 245 | user.upgrade_suscripcion(); //Update subscription. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 245 | let _ = user.upgrade_suscripcion(); //Update subscription. [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:252:13 [INFO] [stdout] | [INFO] [stdout] 252 | user.downgrade_suscripcion(); //Downgrade subscription. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 252 | let _ = user.downgrade_suscripcion(); //Downgrade subscription. [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/tp04/ej03.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | user.cancelar_suscripcion(); //Downgrade subscription. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 258 | let _ = user.cancelar_suscripcion(); //Downgrade subscription. [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prodCant1` should have a snake case name [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:577:13 [INFO] [stdout] | [INFO] [stdout] 577 | let prodCant1 = VentaProducto { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `prod_cant1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prodCant2` should have a snake case name [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:582:13 [INFO] [stdout] | [INFO] [stdout] 582 | let prodCant2 = VentaProducto { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `prod_cant2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prodCant1` should have a snake case name [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:631:13 [INFO] [stdout] | [INFO] [stdout] 631 | let prodCant1 = VentaProducto { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `prod_cant1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prodCant2` should have a snake case name [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:636:13 [INFO] [stdout] | [INFO] [stdout] 636 | let prodCant2 = VentaProducto { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `prod_cant2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prodCant1` should have a snake case name [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:680:13 [INFO] [stdout] | [INFO] [stdout] 680 | let prodCant1 = VentaProducto { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `prod_cant1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `prodCant2` should have a snake case name [INFO] [stdout] --> src/tp04/julieta_murias_e2_v2.rs:685:13 [INFO] [stdout] | [INFO] [stdout] 685 | let prodCant2 = VentaProducto { [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `prod_cant2` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.53s [INFO] running `Command { std: "docker" "inspect" "82f2cb1453388d0b03a8f8165bdeb69fc93328a8769f1b3a012f64fe94618327", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "82f2cb1453388d0b03a8f8165bdeb69fc93328a8769f1b3a012f64fe94618327", kill_on_drop: false }` [INFO] [stdout] 82f2cb1453388d0b03a8f8165bdeb69fc93328a8769f1b3a012f64fe94618327