[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] checking julimuriass/seminario-rust against try#943e2200e35c3825486c4671b6cab0107a07f8c1 for pr-148952
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjulimuriass%2Fseminario-rust" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/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-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/julimuriass/seminario-rust on toolchain 943e2200e35c3825486c4671b6cab0107a07f8c1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "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" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "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]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d9afca8d1d6c7a1f7b2c538343f514ec3d6d976583b6391554c55fd5715eb9b3
[INFO] running `Command { std: "docker" "start" "-a" "d9afca8d1d6c7a1f7b2c538343f514ec3d6d976583b6391554c55fd5715eb9b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d9afca8d1d6c7a1f7b2c538343f514ec3d6d976583b6391554c55fd5715eb9b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9afca8d1d6c7a1f7b2c538343f514ec3d6d976583b6391554c55fd5715eb9b3", kill_on_drop: false }`
[INFO] [stdout] d9afca8d1d6c7a1f7b2c538343f514ec3d6d976583b6391554c55fd5715eb9b3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+943e2200e35c3825486c4671b6cab0107a07f8c1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ce8676064bc23714a0d1ea3912b36803a85cad83012e72eb0d9e562b0f7e41bc
[INFO] running `Command { std: "docker" "start" "-a" "ce8676064bc23714a0d1ea3912b36803a85cad83012e72eb0d9e562b0f7e41bc", 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]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling indexmap v1.8.2
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling camino v1.1.9
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling cc v1.2.24
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking gzip-header v1.0.0
[INFO] [stderr]     Checking winnow v0.7.10
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling procfs v0.17.0
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]     Checking toml_write v0.1.1
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]    Compiling llvm_profparser v0.8.3
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking clap_builder v4.5.38
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]    Compiling cargo-tarpaulin v0.32.7
[INFO] [stderr]     Checking ruzstd v0.7.3
[INFO] [stderr]     Checking object v0.26.2
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking humantime v2.2.0
[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]     Checking leb128 v0.2.5
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking glob v0.3.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking rand v0.9.1
[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 zerofrom v0.1.6
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking clap v4.5.38
[INFO] [stderr]     Checking hyper-util v0.1.12
[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 tokio-native-tls v0.3.1
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[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 chrono v0.4.41
[INFO] [stderr]     Checking toml_datetime v0.6.9
[INFO] [stderr]     Checking serde_spanned v0.6.8
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[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 git2 v0.20.2
[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 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: 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: 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 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: 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: 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: 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: type `julieta_murias_v1::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v1::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `julieta_murias_v1::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v1::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Color` is more private than the item `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 `compare_colors` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Auto` is more private than the item `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 `ej07::compare` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej08::Genero` is more private than the item `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 `compare_genre` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Cancion` is more private than the item `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 `ej08::compare` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Dueño` is more private than the item `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 `compare_owners` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `TipoAnimal` is more private than the item `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 `compare_type` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Mascota` is more private than the item `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 `compare_pets` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Atencion` is more private than the item `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 `compare_atencion` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `EstadoPrestamo` is more private than the item `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 `no_devolvio` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej10::Cliente` is more private than the item `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 `compare_clientes` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `julieta_murias_v2::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v2::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `julieta_murias_v2::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v2::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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<String>) -> 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<String>){
[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<f64>, discount_percentage: Option<f64>) -> 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<Examen>) -> 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<Examen>) -> 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<Informe> {
[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<Cancion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn obtener_canciones_por_genero(&self, genero: Genero) -> Vec<Cancion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn obtener_canciones_por_artista(&self, artista: String) -> Vec<Cancion> {
[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<Fecha>, fecha2: &Option<Fecha>) -> 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<Fecha>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn agregar_mascota_maxima_prioridad(&mut self, mascota: Mascota, fecha: Option<Fecha>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn atender_mascota(&mut self) -> Option<Mascota>{
[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<Fecha>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn buscar_atencion(&self, nombre_mascota: String, nombre_dueño: String, telefono: u32) -> Option<Atencion> {
[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<Fecha>, 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<Prestamo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn prestamos_vencidos(&self, fecha_actual: &Fecha) -> Vec<Prestamo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     fn buscar_prestamo (&self, libro: &Libro, cliente: &Cliente) -> Option<Prestamo> {
[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<Examen>) -> 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<Examen>) -> 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<Informe> {
[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<i32>) -> 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<TipoSuscripcion>{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn downgrade(&self) -> Option<TipoSuscripcion> {
[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<VentaProducto>, 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<Informe> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn ordenar_ventas_por_fecha(&self, ventas: &mut Vec<VentaInforme>) {
[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 `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: 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: unused `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 `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: 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: unused `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 `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 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: 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: 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<Cancion>;
[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: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<Cancion>;
[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: 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 `julieta_murias_v1::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v1::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `julieta_murias_v1::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v1::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej07::Color` is more private than the item `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 `compare_colors` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej07::Auto` is more private than the item `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 `ej07::compare` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej08::Genero` is more private than the item `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 `compare_genre` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej08::Cancion` is more private than the item `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 `ej08::compare` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej09::Dueño` is more private than the item `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 `compare_owners` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej09::TipoAnimal` is more private than the item `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 `compare_type` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej09::Mascota` is more private than the item `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 `compare_pets` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `Atencion` is more private than the item `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 `compare_atencion` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej10::EstadoPrestamo` is more private than the item `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 `no_devolvio` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `ej10::Cliente` is more private than the item `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 `compare_clientes` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `julieta_murias_v2::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v2::obtener_materia_calificacion_alta` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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 `julieta_murias_v2::Examen` is more private than the item `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<Examen>) -> String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `julieta_murias_v2::obtener_materia_calificacion_baja` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `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<Fecha>, 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<String>, 
[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: unused `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 `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 `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 `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 `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 34.19s
[INFO] running `Command { std: "docker" "inspect" "ce8676064bc23714a0d1ea3912b36803a85cad83012e72eb0d9e562b0f7e41bc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce8676064bc23714a0d1ea3912b36803a85cad83012e72eb0d9e562b0f7e41bc", kill_on_drop: false }`
[INFO] [stdout] ce8676064bc23714a0d1ea3912b36803a85cad83012e72eb0d9e562b0f7e41bc
