[INFO] cloning repository https://github.com/SebaPifarre/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/SebaPifarre/Seminario-Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSebaPifarre%2FSeminario-Rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSebaPifarre%2FSeminario-Rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bdc3e34cffb7bd24b7dc1132644743bbe03527b9
[INFO] checking SebaPifarre/Seminario-Rust against try#93086cfebfccb79083c59d0d3b2052944bba643c for pr-146440-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSebaPifarre%2FSeminario-Rust" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  41% (1189/2835)
Updating files:  42% (1191/2835)
Updating files:  43% (1220/2835)
Updating files:  44% (1248/2835)
Updating files:  45% (1276/2835)
Updating files:  46% (1305/2835)
Updating files:  47% (1333/2835)
Updating files:  48% (1361/2835)
Updating files:  49% (1390/2835)
Updating files:  50% (1418/2835)
Updating files:  51% (1446/2835)
Updating files:  52% (1475/2835)
Updating files:  53% (1503/2835)
Updating files:  54% (1531/2835)
Updating files:  55% (1560/2835)
Updating files:  56% (1588/2835)
Updating files:  57% (1616/2835)
Updating files:  58% (1645/2835)
Updating files:  58% (1672/2835)
Updating files:  59% (1673/2835)
Updating files:  60% (1701/2835)
Updating files:  61% (1730/2835)
Updating files:  62% (1758/2835)
Updating files:  63% (1787/2835)
Updating files:  64% (1815/2835)
Updating files:  64% (1817/2835)
Updating files:  64% (1839/2835)
Updating files:  65% (1843/2835)
Updating files:  66% (1872/2835)
Updating files:  67% (1900/2835)
Updating files:  67% (1902/2835)
Updating files:  68% (1928/2835)
Updating files:  69% (1957/2835)
Updating files:  69% (1970/2835)
Updating files:  70% (1985/2835)
Updating files:  71% (2013/2835)
Updating files:  71% (2025/2835)
Updating files:  72% (2042/2835)
Updating files:  72% (2065/2835)
Updating files:  73% (2070/2835)
Updating files:  74% (2098/2835)
Updating files:  74% (2099/2835)
Updating files:  75% (2127/2835)
Updating files:  75% (2146/2835)
Updating files:  76% (2155/2835)
Updating files:  77% (2183/2835)
Updating files:  78% (2212/2835)
Updating files:  78% (2218/2835)
Updating files:  79% (2240/2835)
Updating files:  80% (2268/2835)
Updating files:  81% (2297/2835)
Updating files:  82% (2325/2835)
Updating files:  83% (2354/2835)
Updating files:  84% (2382/2835)
Updating files:  85% (2410/2835)
Updating files:  86% (2439/2835)
Updating files:  87% (2467/2835)
Updating files:  88% (2495/2835)
Updating files:  89% (2524/2835)
Updating files:  90% (2552/2835)
Updating files:  91% (2580/2835)
Updating files:  92% (2609/2835)
Updating files:  93% (2637/2835)
Updating files:  94% (2665/2835)
Updating files:  95% (2694/2835)
Updating files:  96% (2722/2835)
Updating files:  97% (2750/2835)
Updating files:  98% (2779/2835)
Updating files:  99% (2807/2835)
Updating files: 100% (2835/2835)
Updating files: 100% (2835/2835), done.
[INFO] started tweaking git repo https://github.com/SebaPifarre/Seminario-Rust
[INFO] finished tweaking git repo https://github.com/SebaPifarre/Seminario-Rust
[INFO] tweaked toml for git repo https://github.com/SebaPifarre/Seminario-Rust written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SebaPifarre/Seminario-Rust on toolchain 93086cfebfccb79083c59d0d3b2052944bba643c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+93086cfebfccb79083c59d0d3b2052944bba643c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SebaPifarre/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" "+93086cfebfccb79083c59d0d3b2052944bba643c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+93086cfebfccb79083c59d0d3b2052944bba643c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 553309f22e4ae0cdf39e789027b5d4aa19b5adbca95a5ad46f6db53f71812d91
[INFO] running `Command { std: "docker" "start" "-a" "553309f22e4ae0cdf39e789027b5d4aa19b5adbca95a5ad46f6db53f71812d91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "553309f22e4ae0cdf39e789027b5d4aa19b5adbca95a5ad46f6db53f71812d91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "553309f22e4ae0cdf39e789027b5d4aa19b5adbca95a5ad46f6db53f71812d91", kill_on_drop: false }`
[INFO] [stdout] 553309f22e4ae0cdf39e789027b5d4aa19b5adbca95a5ad46f6db53f71812d91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+93086cfebfccb79083c59d0d3b2052944bba643c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 48748264241c5068f193bdd76966aa94f33889efed9415e804a074f67bc46b11
[INFO] running `Command { std: "docker" "start" "-a" "48748264241c5068f193bdd76966aa94f33889efed9415e804a074f67bc46b11", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling libc v0.2.173
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking futures-sink v0.3.31
[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 tracing-core v0.1.34
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]    Compiling indexmap v1.8.2
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking iri-string v0.7.8
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]    Compiling camino v1.1.10
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.18.1+1.9.0
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking gzip-header v1.0.0
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking minimal-lexical v0.2.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling procfs v0.17.0
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling llvm_profparser v0.8.3
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking winnow v0.7.11
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking clap_builder v4.5.40
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking procfs-core v0.17.0
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking matchers v0.1.0
[INFO] [stderr]    Compiling cargo-tarpaulin v0.32.7
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking ruzstd v0.7.3
[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.29
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[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]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking hyper-util v0.1.14
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking object v0.26.2
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking leb128 v0.2.5
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking quick-xml v0.37.5
[INFO] [stderr]     Checking glob v0.3.2
[INFO] [stderr]     Checking rustc-demangle v0.1.25
[INFO] [stderr]     Checking time-core v0.1.4
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking cargo-platform v0.1.9
[INFO] [stderr]     Checking humantime-serde v1.1.1
[INFO] [stderr]     Checking reqwest v0.12.20
[INFO] [stderr]     Checking cargo_metadata v0.19.2
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking coveralls-api v0.7.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking git2 v0.20.2
[INFO] [stderr]     Checking ejercitacion v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp04/ej03.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[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: `Hasher`
[INFO] [stdout]  --> src/tp04/ej04.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::Any`
[INFO] [stdout]  --> src/tp04/ej05.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::Any, collections::HashMap};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> src/tp04/ej05.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Datos_basicos` should have an upper camel case name
[INFO] [stdout]   --> src/tp04/ej05.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Datos_basicos {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DatosBasicos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp04/sebastian_pifarre_e2_v1.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]  --> src/tp05/ej01.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tp05/ej01.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `write`
[INFO] [stdout]  --> src/tp05/ej02.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{write, Display};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Date`
[INFO] [stdout]  --> src/tp05/ej03.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use time::Date;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]  --> src/tp05/ej04.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::Any`
[INFO] [stdout]  --> src/tp05/ej06.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::Any, collections::HashMap};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> src/tp05/ej06.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Datos_basicos` should have an upper camel case name
[INFO] [stdout]   --> src/tp05/ej06.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Datos_basicos {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DatosBasicos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej02::ej2`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tp01::ej02::ej2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej03::ej3`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::tp01::ej03::ej3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej04::ej4`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tp01::ej04::ej4;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej05::ej5`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::tp01::ej05::ej5;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej06::ej6`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::tp01::ej06::ej6;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej07::ej7`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::tp01::ej07::ej7;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej08::ej8`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::tp01::ej08::ej8;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej09::ej9`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::tp01::ej09::ej9;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej10::ej10`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::tp01::ej10::ej10;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej11::ej11`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::tp01::ej11::ej11;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej12::ej12`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::tp01::ej12::ej12;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp04/ej03.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[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: `Hasher`
[INFO] [stdout]  --> src/tp04/ej04.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::Any`
[INFO] [stdout]  --> src/tp04/ej05.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::Any, collections::HashMap};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> src/tp04/ej05.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Datos_basicos` should have an upper camel case name
[INFO] [stdout]   --> src/tp04/ej05.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Datos_basicos {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DatosBasicos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp04/sebastian_pifarre_e2_v1.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]  --> src/tp05/ej01.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/tp05/ej01.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `write`
[INFO] [stdout]  --> src/tp05/ej02.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::{write, Display};
[INFO] [stdout]   |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Date`
[INFO] [stdout]  --> src/tp05/ej03.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use time::Date;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]  --> src/tp05/ej04.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::E;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::Any`
[INFO] [stdout]  --> src/tp05/ej06.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{any::Any, collections::HashMap};
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> src/tp05/ej06.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{rng, Rng};
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Datos_basicos` should have an upper camel case name
[INFO] [stdout]   --> src/tp05/ej06.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Datos_basicos {
[INFO] [stdout]    |        ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DatosBasicos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej02::ej2`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::tp01::ej02::ej2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej03::ej3`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::tp01::ej03::ej3;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej04::ej4`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::tp01::ej04::ej4;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej05::ej5`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::tp01::ej05::ej5;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej06::ej6`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::tp01::ej06::ej6;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej07::ej7`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::tp01::ej07::ej7;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej08::ej8`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::tp01::ej08::ej8;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej09::ej9`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::tp01::ej09::ej9;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej10::ej10`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::tp01::ej10::ej10;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej11::ej11`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::tp01::ej11::ej11;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tp01::ej12::ej12`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::tp01::ej12::ej12;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp04/sebastian_pifarre_e2_v2.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp05/ej05.rs:5:46
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tp03/ej06.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut e2 = Estudiante::new("Jorge".to_string(), 209234);
[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/tp03/ej09.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let mut mi_vet = Veterinaria::new("Vete2".to_string(), "calle 2".to_string(), 24021);
[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/ej10.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut mi_biblio = Biblioteca::new("La merced".to_string(), "calle roca".to_string());
[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/sebastian_pifarre_v1.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut e2 = Estudiante::new("Jorge".to_string(), 209234);
[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/sebastian_pifarre_v1.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let mut e = Estudiante::new("Rocio".to_string(), 43289);
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `informe`
[INFO] [stdout]    --> src/tp03/sebastian_pifarre_v1.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |     if let Some(informe) = e.generar_informe(){
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_informe`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp04/sebastian_pifarre_e2_v2.rs:1:46
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hasher`
[INFO] [stdout]  --> src/tp05/ej05.rs:5:46
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{collections::HashMap, hash::{Hash, Hasher}};
[INFO] [stdout]   |                                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result2`
[INFO] [stdout]    --> src/tp04/ej03.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 297 |     let result2 = mi_plataforma.mayor_metodo_pago_historico();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej2` is never used
[INFO] [stdout]  --> src/tp01/ej02.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej2(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej3` is never used
[INFO] [stdout]  --> src/tp01/ej03.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn ej3(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej4` is never used
[INFO] [stdout]  --> src/tp01/ej04.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej4(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej5` is never used
[INFO] [stdout]  --> src/tp01/ej05.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn ej5(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej6` is never used
[INFO] [stdout]  --> src/tp01/ej06.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn ej6(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej7` is never used
[INFO] [stdout]  --> src/tp01/ej07.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej7(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej8` is never used
[INFO] [stdout]  --> src/tp01/ej08.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn ej8(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej9` is never used
[INFO] [stdout]  --> src/tp01/ej09.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej9(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej10` is never used
[INFO] [stdout]  --> src/tp01/ej10.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej10(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej11` is never used
[INFO] [stdout]  --> src/tp01/ej11.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn ej11(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej12` is never used
[INFO] [stdout]  --> src/tp01/ej12.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej12(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `es_par` is never used
[INFO] [stdout]  --> src/tp02/ejer1.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn es_par(x: i32)->bool{
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `es_primo` is never used
[INFO] [stdout]  --> src/tp02/ej2.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn es_primo(n: i128) -> bool {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `suma_pares` is never used
[INFO] [stdout]  --> src/tp02/ej3.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn suma_pares(nums: &[i32])->i32{
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cantidad_impares` is never used
[INFO] [stdout]  --> src/tp02/ej4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn cantidad_impares(nums: &[i32])->i32{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `duplicar_valores` is never used
[INFO] [stdout]  --> src/tp02/ej5.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn duplicar_valores<const N:usize>(nums: &[f32;N])->[f32;N]{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longitud_de_cadenas` is never used
[INFO] [stdout]  --> src/tp02/ej6.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn longitud_de_cadenas<const N:usize> (cadenas: &[String;N]) -> [usize;N] {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cantidad_de_mayores` is never used
[INFO] [stdout]  --> src/tp02/ej7.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn cantidad_de_mayores(nums: &[i32], limite: i32)->i32{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sumar_arreglos` is never used
[INFO] [stdout]  --> src/tp02/ej8.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn sumar_arreglos<const N: usize> (arr1: &[i32;N], arr2: &[i32;N])->[i32;N]{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cantidad_en_rango` is never used
[INFO] [stdout]  --> src/tp02/ej9.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn cantidad_en_rango(nums: &[i32], inf:i32, sup:i32)->usize{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cantidad_de_cadenas` is never used
[INFO] [stdout]  --> src/tp02/ej10.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn cantidad_de_cadenas(cads: &[String], limite: usize)->usize{
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multiplicar_valores` is never used
[INFO] [stdout]  --> src/tp02/ej11.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn multiplicar_valores(nums: &mut [i32], factor: i32){
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reemplazar_pares` is never used
[INFO] [stdout]  --> src/tp02/ej12.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn reemplazar_pares(nums: &mut [i32]){
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ordernar_nombres` is never used
[INFO] [stdout]  --> src/tp02/ej13.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ordernar_nombres(nombres: &mut [&str]){
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `incrementar` is never used
[INFO] [stdout]  --> src/tp02/ej14.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn incrementar(num: &mut f32){
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Persona` is never constructed
[INFO] [stdout]  --> src/tp03/ej01.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Persona {
[INFO] [stdout]   |            ^^^^^^^
[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(nombre:String, edad:u32, direccion:Option<String>) -> Persona {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn to_string(&self)->String{
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn obtener_edad(&self)->u32{
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn actualizar_direccion(&mut self, nueva: String){
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rectangulo` is never constructed
[INFO] [stdout]  --> src/tp03/ej02.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub 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:7:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Rectangulo{
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout]  7 |     fn new(alto:i32, ancho:i32)->Rectangulo{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn calcular_area(&self) -> i32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn calcular_perimetro(&self)->i32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     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:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Fecha{
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `es_bisiesto`, `sumar_dias`, `restar_dias`, and `es_mayor` are never used
[INFO] [stdout]   --> src/tp03/ej03.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Fecha {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(ano:i32, mes: Month, dia:u8)->Fecha{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn es_bisiesto(&self)->bool{
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn sumar_dias(&mut self, dias:i64){
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn restar_dias(&mut self, dias:i64){
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn es_mayor(&self, nueva:&Fecha)->bool{
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Triangulo` is never constructed
[INFO] [stdout]  --> src/tp03/ej04.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Triangulo{
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `determinar_tipo`, `calcular_perimetro`, and `calcular_area` are never used
[INFO] [stdout]   --> src/tp03/ej04.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Triangulo{
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 11 |     fn new(lado1:u32, lado2:u32, lado3:u32)->Triangulo{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn determinar_tipo (&self) -> String{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn calcular_perimetro(&self) -> u32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn calcular_area(&self) -> f32{
[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:f32, id:u32)->Producto{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     fn calcular_impuestos(&self, porcentaje_de_impuestos: f32)->f32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn aplicar_descuento(&self, porcentaje_de_descuento: f32)->f32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn calcular_precio_total(&self, porcentaje_de_impuestos: Option<f32>, porcentaje_de_descuento: Option<f32>)->f32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Examen` is never constructed
[INFO] [stdout]  --> src/tp03/ej06.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/ej06.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Estudiante{
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp03/ej06.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Examen{
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 13 |     fn new(materia:String, nota:u8)->Examen{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `obtener_promedio`, `obtener_clasificacion_mas_alta`, `obtener_clasificacion_mas_baja`, and `agregar_examen` are never used
[INFO] [stdout]   --> src/tp03/ej06.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Estudiante{
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 22 |     fn new(nombre:String, id:u32)->Estudiante{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn obtener_promedio(&self)->f32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn obtener_clasificacion_mas_alta(&self)->u8{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn obtener_clasificacion_mas_baja(&self)->u8{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn agregar_examen(&mut self, examen: Examen){
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Auto` is never constructed
[INFO] [stdout]  --> src/tp03/ej07.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Auto{
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Color` is never used
[INFO] [stdout]   --> src/tp03/ej07.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum Color{
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `es_igual` and `aplica_d` are never used
[INFO] [stdout]   --> src/tp03/ej07.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Color{
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 22 |     fn es_igual(&self, color2:&Color)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn aplica_d(&self)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `es_igual`, and `calcular_precio` are never used
[INFO] [stdout]   --> src/tp03/ej07.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Auto{
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 45 |     fn new(marca:String, modelo:String, ano:u32, precio_bruto:f32, color:Color)->Auto{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn es_igual(&self, auto2:&Auto)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn calcular_precio(&self)->f32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConcesionarioAuto` is never constructed
[INFO] [stdout]   --> src/tp03/ej07.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | struct ConcesionarioAuto{
[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:91:8
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl ConcesionarioAuto {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  91 |     fn new(nombre:String, direccion:String, capacidad_max: usize)->ConcesionarioAuto{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn agregar_auto(&mut self, nuevo:&Auto)->bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn eliminar_auto(&mut self, auto_a_eliminar: &Auto){
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     fn buscar_auto(&mut self, auto_a_buscar: &Auto)->Option<Auto>{
[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: method `es_igual` is never used
[INFO] [stdout]   --> src/tp03/ej08.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Genero{
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 10 |     fn es_igual(&self, genero2:&Genero)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cancion` is never constructed
[INFO] [stdout]   --> src/tp03/ej08.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Cancion{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `es_igual` are never used
[INFO] [stdout]   --> src/tp03/ej08.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Cancion {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 30 |     fn new(titulo:String, artista:String, genero:Genero)->Cancion{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn es_igual(&self, cancion2:&Cancion)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Playlist` is never constructed
[INFO] [stdout]   --> src/tp03/ej08.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct Playlist{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp03/ej08.rs:52:8
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Playlist {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  52 |     fn new(nombre:String)->Playlist{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     fn agregar_cancion(&mut self, c:&Cancion){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     fn eliminar_cancion(&mut self, c:&Cancion)->bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn mover(&mut self, c:&Cancion, indice:usize)->bool{
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn buscar_por_nombre(&mut self, nombre:String)->Option<Cancion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn obtener_por_genero(&mut self, genero:&Genero)->Vec<Cancion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn obtener_por_artista(&mut self, artista:String)->Vec<Cancion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn modificar_titulo(&mut self, nuevo:String){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn eliminar_todo(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Veterinaria` is never constructed
[INFO] [stdout]  --> src/tp03/ej09.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Veterinaria{
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Registro` is never constructed
[INFO] [stdout]   --> src/tp03/ej09.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Registro{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mascota` is never constructed
[INFO] [stdout]   --> src/tp03/ej09.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Mascota{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dueño` is never constructed
[INFO] [stdout]   --> src/tp03/ej09.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Dueño{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp03/ej09.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Dueño{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 35 |     fn son_iguales(&self, d:&Dueño)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp03/ej09.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Mascota{
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 45 |     fn son_iguales(&self, m:&Mascota)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tipo` is never used
[INFO] [stdout]   --> src/tp03/ej09.rs:54:6
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Tipo{
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_igual` is never used
[INFO] [stdout]   --> src/tp03/ej09.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl Tipo{
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 62 |     fn es_igual(&self, t:&Tipo)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp03/ej09.rs:74:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl Veterinaria{
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  74 |     fn new(nombre:String, direccion:String, id:u32)->Veterinaria{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     fn agregar_atencion(&mut self, m:Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn agregar_atencion_con_prioridad(&mut self, m:Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn atender(&mut self)->Option<Mascota>{
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn eliminar_de_cola(&mut self, valor_a_borrar:&Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn registrar_atencion (&mut self, m:Mascota, diagnostico:String, tratamiento:String, fecha_proxima: Option<Fecha>){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn buscar_por_nombre_mascota_dueño_telefono(&self, nombre_mascota:String, nombre_dueño:String, telefono:u32)->Option<Mascota>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn modificar_diagnostico(&mut self, m:&Mascota ,nuevo_diagnostico:String){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn modificar_fecha(&mut self, m:&Mascota, nueva_fecha:Fecha){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn eliminar_atencion(&mut self, m:&Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Biblioteca` is never constructed
[INFO] [stdout]  --> src/tp03/ej10.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Biblioteca{
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Libro` is never constructed
[INFO] [stdout]   --> src/tp03/ej10.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Libro {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp03/ej10.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Libro {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 21 |     fn son_iguales(&self, otro:&Libro)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Genero` is never used
[INFO] [stdout]   --> src/tp03/ej10.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum Genero{
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_mismo` is never used
[INFO] [stdout]   --> src/tp03/ej10.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl Genero {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 40 |     fn es_mismo(&self, nuevo:&Genero)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp03/ej10.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Cliente{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp03/ej10.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Cliente {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 61 |     fn son_iguales(&self, otro:&Cliente)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Estado` is never used
[INFO] [stdout]   --> src/tp03/ej10.rs:68:6
[INFO] [stdout]    |
[INFO] [stdout] 68 | enum Estado {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_igual` is never used
[INFO] [stdout]   --> src/tp03/ej10.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl Estado {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 74 |     fn es_igual(&self, otro:Estado)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Prestamo` is never constructed
[INFO] [stdout]   --> src/tp03/ej10.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct Prestamo {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Registro` is never constructed
[INFO] [stdout]   --> src/tp03/ej10.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Registro {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp03/ej10.rs:98:8
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl Biblioteca {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  98 |     fn new (nombre:String, direccion:String)->Biblioteca{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn obtener_cantidad_copias(&self, l:&Libro)->u32{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn decrementar_a_disposicion(&mut self, l:&Libro){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn incrementar_a_disposicion(&mut self, l:&Libro){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn contar_prestamos(&self, c:&Cliente)->u8{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn realizar_prestamo(&mut self, c:&Cliente, l:&Libro, fecha_hoy:Fecha)->bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn obtener_prestamos_a_vencer(&self, fecha_hoy:Fecha, dias:i64)->Vec<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn obtener_prestamos_vencidos(&self, fecha_hoy:Fecha)->Vec<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn buscar_prestamo(&self, l:&Libro, c:&Cliente)->Option<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn devolver_libro (&mut self, l:&Libro, c:&Cliente, fecha_hoy:Fecha)->bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Examen` is never constructed
[INFO] [stdout]  --> src/tp03/sebastian_pifarre_v1.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Examen{
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Estudiante` is never constructed
[INFO] [stdout]  --> src/tp03/sebastian_pifarre_v1.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Estudiante{
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Informe` is never constructed
[INFO] [stdout]   --> src/tp03/sebastian_pifarre_v1.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Informe {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp03/sebastian_pifarre_v1.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Informe {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 23 |     fn new(nombre_estudiante:String, id_estudiante:u32, promedio_general:f32, examen_mas_alto:Option<Examen>, examen_mas_bajo:Option...
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp03/sebastian_pifarre_v1.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Examen{
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 29 |     fn new(materia:String, nota:u8)->Examen{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp03/sebastian_pifarre_v1.rs:38:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Estudiante{
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  38 |     fn new(nombre:String, id:u32)->Estudiante{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn obtener_promedio(&self)->f32{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     fn obtener_clasificacion_mas_alta(&self)->u8{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn obtener_clasificacion_mas_baja(&self)->u8{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     fn agregar_examen(&mut self, examen: Examen){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn generar_informe(&self)->Option<Informe>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn obtener_examen_mas_alto(&self)->Option<Examen>{      
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn obtener_examen_mas_bajo(&self)->Option<Examen>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contar_primos` is never used
[INFO] [stdout]  --> src/tp04/ej01.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn contar_primos(numeros:&Vec<i128>)->usize{
[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: function `salario_mayor` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn salario_mayor<'a>(personas: &'a Vec<Persona<'a>>, cutoff:f64)->Vec<&'a Persona<'a>>{
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edad_y_ciudad` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn edad_y_ciudad<'a>(personas: &'a Vec<Persona<'a>>, edad:u8, ciudad:&'a str)->Vec <&'a Persona<'a>>{
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `todos_misma_ciudad` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn todos_misma_ciudad(personas:  &Vec<Persona>, ciudad: String)->bool{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alguno_en_ciudad` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn alguno_en_ciudad(personas: &Vec<Persona>, ciudad: String)->bool{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `existe` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn existe(personas:  &Vec<Persona>, per: &Persona)->bool {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_edades` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn get_edades(personas:  & Vec<Persona>)-> Vec<u8>{
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_menor_mayor` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn get_menor_mayor<'a>(personas: &'a Vec<Persona<'a>>)->(Persona<'a>,Persona<'a>){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamingRust` is never constructed
[INFO] [stdout]  --> src/tp04/ej03.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct StreamingRust{
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TipoSuscripcion` is never used
[INFO] [stdout]   --> src/tp04/ej03.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum TipoSuscripcion{
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Suscripcion` is never constructed
[INFO] [stdout]   --> src/tp04/ej03.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Suscripcion{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `upgrade` and `downgrade` are never used
[INFO] [stdout]   --> src/tp04/ej03.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Suscripcion{
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 34 |     fn upgrade(&mut self){
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn downgrade(&mut self){
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp04/ej03.rs:52:6
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum MetodoPago{
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]   --> src/tp04/ej03.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Usuario{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp04/ej03.rs:72:8
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StreamingRust{
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  72 |     fn iniciar()->StreamingRust{
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |  fn crear_usuario(&mut self, nombre:String, dni:i32, email:String, costo: f64, dur:u8, f:Fecha, t:TipoSuscripcion, met:MetodoPago)-...
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |  fn upgrade(&mut self, user_id: u32)->Result<(), String>{
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |  fn actualizar_suscripcion(&mut self, user_id: u32){
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |  fn get_usuario_valido(&self, user_id: u32)->Option<usize>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |  fn downgrade(&mut self, user_id: u32)->Result<(), String>{
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |  fn resuscribir_usuario_existente(&mut self, user_id: u32, sus: Suscripcion)->Result<(), String>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |  fn cancelar_sus(&mut self, user_id: u32)->Result<(), String>{
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |  fn mayor_sus_activo(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |  fn mayor_metodo_pago_activo(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |  fn mayor_metodo_pago_historico(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |  fn mayor_sus_historico(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sistema` is never constructed
[INFO] [stdout]  --> src/tp04/ej04.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Sistema{
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Producto` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Producto{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Descuento` is never used
[INFO] [stdout]   --> src/tp04/ej04.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | trait Descuento {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Categoria` is never used
[INFO] [stdout]   --> src/tp04/ej04.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vendedor` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct Vendedor{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Cliente{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Venta` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Venta{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp04/ej04.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl Venta{
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 81 |     fn new(fecha:Fecha, v:Vendedor, c:Cliente, lista:HashMap<u32,u8>, metodo:MetodoPago, monto:Option<f64> )->Venta{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp04/ej04.rs:88:6
[INFO] [stdout]    |
[INFO] [stdout] 88 | enum MetodoPago{
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reporte` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct Reporte{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `crear_venta`, `generar_reporte`, `calcular_precio_final`, and `agregar_producto` are never used
[INFO] [stdout]    --> src/tp04/ej04.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Sistema {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 101 |     fn crear_venta(&mut self, fecha:Fecha, v:Vendedor, c:Cliente, metodo:MetodoPago, lista:HashMap<u32, u8>){
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn generar_reporte(&self)->Reporte{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn calcular_precio_final(&self, lista:&HashMap<u32, u8>, c:&Cliente) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn agregar_producto(&mut self, prod: Producto){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Empresa` is never constructed
[INFO] [stdout]  --> src/tp04/ej05.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Empresa {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Usuario {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CriptoMoneda` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct CriptoMoneda {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_monto_venta` and `get_monto_compra` are never used
[INFO] [stdout]   --> src/tp04/ej05.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl CriptoMoneda {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 36 |     fn get_monto_venta(&self, monto:f64)->f64{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn get_monto_compra(&self, monto:f64)->f64{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockChain` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct BlockChain {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_hash` is never used
[INFO] [stdout]   --> src/tp04/ej05.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl BlockChain {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 54 |     fn get_hash(&self)->String{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Datos_basicos` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Datos_basicos {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransaccionBasica` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct TransaccionBasica {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompraVentaCripto` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | struct CompraVentaCripto {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RetirarRecibirCripto` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct RetirarRecibirCripto {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RetirarFiat` is never constructed
[INFO] [stdout]   --> src/tp04/ej05.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct RetirarFiat {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Transaccion` is never used
[INFO] [stdout]    --> src/tp04/ej05.rs:102:6
[INFO] [stdout]     |
[INFO] [stdout] 102 | enum Transaccion {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MedioRecepcion` is never used
[INFO] [stdout]    --> src/tp04/ej05.rs:109:6
[INFO] [stdout]     |
[INFO] [stdout] 109 | enum MedioRecepcion {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TipoTransaccion` is never used
[INFO] [stdout]    --> src/tp04/ej05.rs:114:6
[INFO] [stdout]     |
[INFO] [stdout] 114 | enum TipoTransaccion {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp04/ej05.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Empresa {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 124 |
[INFO] [stdout] 125 |     fn new(nombre:String, usuarios: HashMap<u32, Usuario>, criptos: HashMap<u32, CriptoMoneda>,block_chains: HashMap<u32, BlockChai...
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn ingresar_dinero(&mut self, id_usuario: u32, monto: f64, fecha:Fecha)->Result<(), String>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn generar_transaccion_basica(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn generar_transaccion_compraventa(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion, id_cripto: u32, c...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn generar_transaccion_recibir_retirar(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion, id_cripto: u3...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn generar_transaccion_retirar_fiat(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion, medio:MedioRecep...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn comprar_cripto(&mut self, id_usuario: u32, id_cripto: u32, monto: f64, fecha:Fecha)->Result<(), String>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn vender_cripto(&mut self, id_usuario: u32, id_cripto: u32, monto_cripto: f64, fecha:Fecha)->Result<(), String>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     fn retirar_cripto_por_block_chain(&mut self, id_usuario: u32, id_cripto: u32, monto: f64, fecha:Fecha, id_blockchain: u32)->Res...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     fn recibir_cripto_por_block_chain(&mut self, id_usuario: u32, id_cripto: u32, monto: f64, fecha:Fecha, id_blockchain: u32)->Res...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn retirar_fiat_por_medio(&mut self, id_usuario: u32, monto: f64, medio:MedioRecepcion, fecha:Fecha)->Result<(), String>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn obtener_mayor_ventas_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     fn obtener_mayor_compras_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn obtener_mayor_volumen_ventas_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     fn obtener_mayor_volumen_compras_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sistema` is never constructed
[INFO] [stdout]  --> src/tp04/sebastian_pifarre_e2_v2.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Sistema{
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Producto` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Producto{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Descuento` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | trait Descuento {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Categoria` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vendedor` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct Vendedor{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Cliente{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Venta` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Venta{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl Venta{
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 81 |     fn new(fecha:Fecha, v:Vendedor, c:Cliente, lista:HashMap<u32,u8>, metodo:MetodoPago, monto:Option<f64> )->Venta{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:88:6
[INFO] [stdout]    |
[INFO] [stdout] 88 | enum MetodoPago{
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reporte` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct Reporte{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `crear_venta`, `generar_reporte`, `calcular_precio_final`, and `agregar_producto` are never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Sistema {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 101 |     fn crear_venta(&mut self, fecha:Fecha, v:Vendedor, c:Cliente, metodo:MetodoPago, lista:HashMap<u32, u8>){
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn generar_reporte(&self)->Reporte{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn calcular_precio_final(&self, lista:&HashMap<u32, u8>, c:&Cliente) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn agregar_producto(&mut self, prod: Producto){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fecha` is never constructed
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct Fecha{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `es_bisiesto`, `sumar_dias`, `restar_dias`, and `es_mayor` are never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl Fecha {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 200 |     pub fn new(ano:i32, mes: Month, dia:u8)->Fecha{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn es_bisiesto(&self)->bool{
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn sumar_dias(&mut self, dias:i64){
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn restar_dias(&mut self, dias:i64){
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn es_mayor(&self, nueva:&Fecha)->bool{
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `entregable2` is never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl Sistema {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 243 |     fn entregable2(&self, dni:u32, cate:Categoria) -> Result<Vec<VentaInforme>, ErrorCustom>{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VentaInforme` is never constructed
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:274:8
[INFO] [stdout]     |
[INFO] [stdout] 274 | struct VentaInforme {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorCustom` is never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:282:6
[INFO] [stdout]     |
[INFO] [stdout] 282 | enum ErrorCustom {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sistema` is never constructed
[INFO] [stdout]  --> src/tp04/sebastian_pifarre_e2_v1.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Sistema{
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Producto` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Producto{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Descuento` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | trait Descuento {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Categoria` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vendedor` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct Vendedor{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Cliente{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Venta` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Venta{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl Venta{
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 81 |     fn new(fecha:Fecha, v:Vendedor, c:Cliente, lista:HashMap<u32,u8>, metodo:MetodoPago, monto:Option<f64> )->Venta{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:88:6
[INFO] [stdout]    |
[INFO] [stdout] 88 | enum MetodoPago{
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reporte` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct Reporte{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `crear_venta`, `generar_reporte`, `calcular_precio_final`, and `agregar_producto` are never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v1.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Sistema {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 101 |     fn crear_venta(&mut self, fecha:Fecha, v:Vendedor, c:Cliente, metodo:MetodoPago, lista:HashMap<u32, u8>){
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn generar_reporte(&self)->Reporte{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn calcular_precio_final(&self, lista:&HashMap<u32, u8>, c:&Cliente) -> Option<f64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn agregar_producto(&mut self, prod: Producto){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorAutos` is never used
[INFO] [stdout]   --> src/tp05/ej01.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum ErrorAutos{
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Auto` is never constructed
[INFO] [stdout]   --> src/tp05/ej01.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Auto{
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Color` is never used
[INFO] [stdout]   --> src/tp05/ej01.rs:40:6
[INFO] [stdout]    |
[INFO] [stdout] 40 | enum Color{
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `es_igual` and `aplica_d` are never used
[INFO] [stdout]   --> src/tp05/ej01.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Color{
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 50 |     fn es_igual(&self, color2:&Color)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn aplica_d(&self)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `es_igual`, and `calcular_precio` are never used
[INFO] [stdout]   --> src/tp05/ej01.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Auto{
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 73 |     fn new(marca:String, modelo:String, ano:u32, precio_bruto:f32, color:Color)->Auto{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn es_igual(&self, auto2:Auto)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn calcular_precio(&self)->f32{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConcesionarioAuto` is never constructed
[INFO] [stdout]    --> src/tp05/ej01.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct ConcesionarioAuto{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `agregar_auto`, `eliminar_auto`, `buscar_auto`, and `actualizar_json` are never used
[INFO] [stdout]    --> src/tp05/ej01.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ConcesionarioAuto {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 121 |     fn new(nombre:String, direccion:String, capacidad_max: usize)->ConcesionarioAuto{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn agregar_auto(&mut self, nuevo:Auto)->Result<(), ErrorAutos>{
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn eliminar_auto(&mut self, auto_a_eliminar: Auto)->Result<(), ErrorAutos>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn buscar_auto(&mut self, auto_a_buscar: Auto)->Option<Auto>{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn actualizar_json(&mut self)->Result<(), ErrorAutos>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Genero` is never used
[INFO] [stdout]  --> src/tp05/ej02.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | enum Genero{
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_igual` is never used
[INFO] [stdout]   --> src/tp05/ej02.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Genero{
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 15 |     fn es_igual(&self, genero2:&Genero)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MiError` is never used
[INFO] [stdout]   --> src/tp05/ej02.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum MiError{
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cancion` is never constructed
[INFO] [stdout]   --> src/tp05/ej02.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct Cancion{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `es_igual` are never used
[INFO] [stdout]   --> src/tp05/ej02.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl Cancion {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 55 |     fn new(titulo:String, artista:String, genero:Genero)->Cancion{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     fn es_igual(&self, cancion2:Cancion)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Playlist` is never constructed
[INFO] [stdout]   --> src/tp05/ej02.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Playlist{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej02.rs:78:8
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl Playlist {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  78 |     fn new(nombre:String)->Playlist{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     fn agregar_cancion(&mut self, c:Cancion){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn eliminar_cancion(&mut self, c:Cancion)->Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn mover(&mut self, c:Cancion, indice:usize)->Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn buscar_por_nombre(&mut self, nombre:String)->Result<Cancion, MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn obtener_por_genero(&mut self, genero:&Genero)->Vec<Cancion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn obtener_por_artista(&mut self, artista:String)->Vec<Cancion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn modificar_titulo(&mut self, nuevo:String){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn eliminar_todo(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn actualizar_json(&mut self) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Veterinaria` is never constructed
[INFO] [stdout]  --> src/tp05/ej03.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Veterinaria{
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Registro` is never constructed
[INFO] [stdout]   --> src/tp05/ej03.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Registro{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mascota` is never constructed
[INFO] [stdout]   --> src/tp05/ej03.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct Mascota{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dueño` is never constructed
[INFO] [stdout]   --> src/tp05/ej03.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Dueño{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp05/ej03.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl Dueño{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 41 |     fn son_iguales(&self, d:&Dueño)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp05/ej03.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Mascota{
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 51 |     fn son_iguales(&self, m:&Mascota)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tipo` is never used
[INFO] [stdout]   --> src/tp05/ej03.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 | enum Tipo{
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_igual` is never used
[INFO] [stdout]   --> src/tp05/ej03.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl Tipo{
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 68 |     fn es_igual(&self, t:&Tipo)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorVete` is never used
[INFO] [stdout]   --> src/tp05/ej03.rs:80:6
[INFO] [stdout]    |
[INFO] [stdout] 80 | enum ErrorVete {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej03.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl Veterinaria{
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 100 |     fn new(nombre:String, direccion:String, id:u32)->Veterinaria{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn agregar_atencion(&mut self, m:Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn agregar_atencion_con_prioridad(&mut self, m:Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn atender(&mut self)->Option<Mascota>{
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn eliminar_de_cola(&mut self, valor_a_borrar:Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn registrar_atencion (&mut self, m:Mascota, diagnostico:String, tratamiento:String, fecha_proxima: Option<Fecha>)->Result<(), ...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn buscar_por_nombre_mascota_dueño_telefono(&self, nombre_mascota:String, nombre_dueño:String, telefono:u32)->Option<Mascota>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn modificar_diagnostico(&mut self, m:Mascota ,nuevo_diagnostico:String)->Result<(), ErrorVete>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn modificar_fecha(&mut self, m:Mascota, nueva_fecha:Fecha)->Result<(), ErrorVete>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn eliminar_atencion(&mut self, m:Mascota)->Result<(), ErrorVete>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn actualizar_json(&mut self) -> Result<(), ErrorVete> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Biblioteca` is never constructed
[INFO] [stdout]  --> src/tp05/ej04.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Biblioteca{
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Libro` is never constructed
[INFO] [stdout]   --> src/tp05/ej04.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Libro {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp05/ej04.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Libro {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 28 |     fn son_iguales(&self, otro:&Libro)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorLibros` is never used
[INFO] [stdout]   --> src/tp05/ej04.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum ErrorLibros{
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Genero` is never used
[INFO] [stdout]   --> src/tp05/ej04.rs:57:6
[INFO] [stdout]    |
[INFO] [stdout] 57 | enum Genero{
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_mismo` is never used
[INFO] [stdout]   --> src/tp05/ej04.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl Genero {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 67 |     fn es_mismo(&self, nuevo:&Genero)->bool{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp05/ej04.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | struct Cliente{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `son_iguales` is never used
[INFO] [stdout]   --> src/tp05/ej04.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | impl Cliente {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 88 |     fn son_iguales(&self, otro:&Cliente)->bool{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Estado` is never used
[INFO] [stdout]   --> src/tp05/ej04.rs:95:6
[INFO] [stdout]    |
[INFO] [stdout] 95 | enum Estado {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `es_igual` is never used
[INFO] [stdout]    --> src/tp05/ej04.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Estado {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 101 |     fn es_igual(&self, otro:Estado)->bool{
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Prestamo` is never constructed
[INFO] [stdout]    --> src/tp05/ej04.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct Prestamo {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Registro` is never constructed
[INFO] [stdout]    --> src/tp05/ej04.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | struct Registro {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej04.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl Biblioteca {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 126 |     fn new (nombre:String, direccion:String)->Biblioteca{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn obtener_cantidad_copias(&self, l:Libro)->u32{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn decrementar_a_disposicion(&mut self, l:Libro)->Result<(), ErrorLibros>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn incrementar_a_disposicion(&mut self, l:Libro)->Result<(), ErrorLibros>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn contar_prestamos(&self, c:Cliente)->u8{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn realizar_prestamo(&mut self, c:Cliente, l:Libro, fecha_hoy:Fecha)->Result<(), ErrorLibros>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn obtener_prestamos_a_vencer(&self, fecha_hoy:Fecha, dias:i64)->Vec<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn obtener_prestamos_vencidos(&self, fecha_hoy:Fecha)->Vec<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn buscar_prestamo(&self, l:Libro, c:Cliente)->Option<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn devolver_libro (&mut self, l:Libro, c:Cliente, fecha_hoy:Fecha)->Result<(), ErrorLibros>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn actualizar_json(&self)->Result<(), ErrorLibros>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamingRust` is never constructed
[INFO] [stdout]   --> src/tp05/ej05.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct StreamingRust{
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TipoSuscripcion` is never used
[INFO] [stdout]   --> src/tp05/ej05.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum TipoSuscripcion{
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorCustom` is never used
[INFO] [stdout]   --> src/tp05/ej05.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum ErrorCustom{
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Suscripcion` is never constructed
[INFO] [stdout]   --> src/tp05/ej05.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct Suscripcion{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `upgrade` and `downgrade` are never used
[INFO] [stdout]   --> src/tp05/ej05.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Suscripcion{
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 61 |     fn upgrade(&mut self){
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn downgrade(&mut self){
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp05/ej05.rs:79:6
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum MetodoPago{
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]   --> src/tp05/ej05.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct Usuario{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej05.rs:99:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl StreamingRust{
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  99 |     fn iniciar()->StreamingRust{
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |  fn crear_usuario(&mut self, nombre:String, dni:i32, email:String, costo: f64, dur:u8, f:Fecha, t:TipoSuscripcion, met:MetodoPago)-...
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |  fn upgrade(&mut self, user_id: u32)->Result<(), ErrorCustom>{
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |  fn actualizar_suscripcion(&mut self, user_id: u32){
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |  fn get_usuario_valido(&self, user_id: u32)->Option<usize>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |  fn downgrade(&mut self, user_id: u32)->Result<(), ErrorCustom>{
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |  fn resuscribir_usuario_existente(&mut self, user_id: u32, sus: Suscripcion)->Result<(), ErrorCustom>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |  fn cancelar_sus(&mut self, user_id: u32)->Result<(), ErrorCustom>{
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |  fn mayor_sus_activo(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |  fn mayor_metodo_pago_activo(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |  fn mayor_metodo_pago_historico(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |  fn mayor_sus_historico(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |  fn actualizar_json(&self)->Result<(), ErrorCustom>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Empresa` is never constructed
[INFO] [stdout]   --> src/tp05/ej06.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Empresa {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]   --> src/tp05/ej06.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Usuario {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ErrorCustom` is never used
[INFO] [stdout]   --> src/tp05/ej06.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum ErrorCustom{
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CriptoMoneda` is never constructed
[INFO] [stdout]   --> src/tp05/ej06.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct CriptoMoneda {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_monto_venta` and `get_monto_compra` are never used
[INFO] [stdout]   --> src/tp05/ej06.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl CriptoMoneda {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 65 |     fn get_monto_venta(&self, monto:f64)->f64{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn get_monto_compra(&self, monto:f64)->f64{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockChain` is never constructed
[INFO] [stdout]   --> src/tp05/ej06.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct BlockChain {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_hash` is never used
[INFO] [stdout]   --> src/tp05/ej06.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl BlockChain {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 83 |     fn get_hash(&self)->String{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Datos_basicos` is never constructed
[INFO] [stdout]   --> src/tp05/ej06.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct Datos_basicos {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransaccionBasica` is never constructed
[INFO] [stdout]    --> src/tp05/ej06.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | struct TransaccionBasica {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompraVentaCripto` is never constructed
[INFO] [stdout]    --> src/tp05/ej06.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct CompraVentaCripto {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RetirarRecibirCripto` is never constructed
[INFO] [stdout]    --> src/tp05/ej06.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | struct RetirarRecibirCripto {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RetirarFiat` is never constructed
[INFO] [stdout]    --> src/tp05/ej06.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | struct RetirarFiat {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Transaccion` is never used
[INFO] [stdout]    --> src/tp05/ej06.rs:132:6
[INFO] [stdout]     |
[INFO] [stdout] 132 | enum Transaccion {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MedioRecepcion` is never used
[INFO] [stdout]    --> src/tp05/ej06.rs:140:6
[INFO] [stdout]     |
[INFO] [stdout] 140 | enum MedioRecepcion {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TipoTransaccion` is never used
[INFO] [stdout]    --> src/tp05/ej06.rs:145:6
[INFO] [stdout]     |
[INFO] [stdout] 145 | enum TipoTransaccion {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej06.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl Empresa {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 155 |
[INFO] [stdout] 156 |     fn new(nombre:String, usuarios: HashMap<u32, Usuario>, criptos: HashMap<u32, CriptoMoneda>,block_chains: HashMap<u32, BlockChai...
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn ingresar_dinero(&mut self, id_usuario: u32, monto: f64, fecha:Fecha)->Result<(), ErrorCustom>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn generar_transaccion_basica(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn generar_transaccion_compraventa(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion, id_cripto: u32, c...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn generar_transaccion_recibir_retirar(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion, id_cripto: u3...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn generar_transaccion_retirar_fiat(&mut self, fecha:Fecha, id_usuario: u32, monto: f64, tipo:TipoTransaccion, medio:MedioRecep...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn comprar_cripto(&mut self, id_usuario: u32, id_cripto: u32, monto: f64, fecha:Fecha)->Result<(), ErrorCustom>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     fn vender_cripto(&mut self, id_usuario: u32, id_cripto: u32, monto_cripto: f64, fecha:Fecha)->Result<(), ErrorCustom>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn retirar_cripto_por_block_chain(&mut self, id_usuario: u32, id_cripto: u32, monto: f64, fecha:Fecha, id_blockchain: u32)->Res...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn recibir_cripto_por_block_chain(&mut self, id_usuario: u32, id_cripto: u32, monto: f64, fecha:Fecha, id_blockchain: u32)->Res...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn retirar_fiat_por_medio(&mut self, id_usuario: u32, monto: f64, medio:MedioRecepcion, fecha:Fecha)->Result<(), ErrorCustom>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     fn obtener_mayor_ventas_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     fn obtener_mayor_compras_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn obtener_mayor_volumen_ventas_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     fn obtener_mayor_volumen_compras_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn actualizar_json(&self)->Result<(), ErrorCustom>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/tp05/ej01.rs:168:49
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut archivo = File::create(self.path.clone())
[INFO] [stdout]     |                                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/tp05/ej02.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         self.actualizar_json();
[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] 89 |         let _ = self.actualizar_json();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej02.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |         self.actualizar_json();
[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] 154 |         let _ = self.actualizar_json();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej2` is never used
[INFO] [stdout]  --> src/tp01/ej02.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej2(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej3` is never used
[INFO] [stdout]  --> src/tp01/ej03.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn ej3(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej4` is never used
[INFO] [stdout]  --> src/tp01/ej04.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej4(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej5` is never used
[INFO] [stdout]  --> src/tp01/ej05.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn ej5(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej6` is never used
[INFO] [stdout]  --> src/tp01/ej06.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn ej6(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej7` is never used
[INFO] [stdout]  --> src/tp01/ej07.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej7(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej8` is never used
[INFO] [stdout]  --> src/tp01/ej08.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn ej8(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej9` is never used
[INFO] [stdout]  --> src/tp01/ej09.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej9(){
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej10` is never used
[INFO] [stdout]  --> src/tp01/ej10.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej10(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej11` is never used
[INFO] [stdout]  --> src/tp01/ej11.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn ej11(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ej12` is never used
[INFO] [stdout]  --> src/tp01/ej12.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn ej12(){
[INFO] [stdout]   |        ^^^^
[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: f32,
[INFO] [stdout] 4 |     id: u32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `materia` is never read
[INFO] [stdout]  --> src/tp03/ej06.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | struct Examen{
[INFO] [stdout]   |        ------ field in this struct
[INFO] [stdout] 2 |     materia:String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nombre` and `id` are never read
[INFO] [stdout]  --> src/tp03/ej06.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Estudiante{
[INFO] [stdout]   |        ---------- fields in this struct
[INFO] [stdout] 7 |     nombre:String,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 8 |     id:u32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `VERDE`, `AZUL`, `AMARILLO`, and `BLANCO` are never constructed
[INFO] [stdout]   --> src/tp03/ej07.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum Color{
[INFO] [stdout]    |      ----- variants in this enum
[INFO] [stdout] 13 |     ROJO,
[INFO] [stdout] 14 |     VERDE,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     AZUL,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     AMARILLO,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 17 |     BLANCO,
[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:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | struct ConcesionarioAuto{
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 84 |     nombre:String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 85 |     direccion:String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ROCK` and `RAP` are never constructed
[INFO] [stdout]  --> src/tp03/ej08.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum Genero{
[INFO] [stdout]   |      ------ variants in this enum
[INFO] [stdout] 3 |     ROCK,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     POP,
[INFO] [stdout] 5 |     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: fields `direccion` and `id` are never read
[INFO] [stdout]  --> src/tp03/ej09.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Veterinaria{
[INFO] [stdout]   |        ----------- fields in this struct
[INFO] [stdout] 5 |     nombre:String,
[INFO] [stdout] 6 |     direccion:String,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 7 |     id: u32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `diagnostico` and `tratamiento` are never read
[INFO] [stdout]   --> src/tp03/ej09.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Registro{
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 13 |     mascota:Mascota,
[INFO] [stdout] 14 |     diagnostico:String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 15 |     tratamiento:String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Registro` 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:58:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Tipo{
[INFO] [stdout]    |      ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     OTROS,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tipo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `modificar_diagnostico` is never used
[INFO] [stdout]    --> src/tp03/ej09.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl Veterinaria{
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn modificar_diagnostico(&mut self, m:&Mascota ,nuevo_diagnostico:String){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NOVELA`, `INFANTIL`, `TECNICO`, and `OTROS` are never constructed
[INFO] [stdout]   --> src/tp03/ej10.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum Genero{
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 31 |     NOVELA,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     INFANTIL,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 35 |     TECNICO,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 36 |     OTROS,
[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 `Devuelto` is never constructed
[INFO] [stdout]   --> src/tp03/ej10.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | enum Estado {
[INFO] [stdout]    |      ------ variant in this enum
[INFO] [stdout] 69 |     Devuelto,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Estado` 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 `devolucion` is never read
[INFO] [stdout]   --> src/tp03/ej10.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct Prestamo {
[INFO] [stdout]    |        -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     devolucion:Option<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: methods `obtener_prestamos_vencidos` and `devolver_libro` are never used
[INFO] [stdout]    --> src/tp03/ej10.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl Biblioteca {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn obtener_prestamos_vencidos(&self, fecha_hoy:Fecha)->Vec<Prestamo>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn devolver_libro (&mut self, l:&Libro, c:&Cliente, fecha_hoy:Fecha)->bool{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `materia` is never read
[INFO] [stdout]  --> src/tp03/sebastian_pifarre_v1.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Examen{
[INFO] [stdout]   |        ------ field in this struct
[INFO] [stdout] 3 |     materia:String,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Examen` 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_estudiante`, `examen_mas_alto`, and `examen_mas_bajo` are never read
[INFO] [stdout]   --> src/tp03/sebastian_pifarre_v1.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Informe {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 14 |     nombre_estudiante: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     examen_mas_alto: Option<Examen>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     examen_mas_bajo: Option<Examen>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alguno_en_ciudad` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn alguno_en_ciudad(personas: &Vec<Persona>, ciudad: String)->bool{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `existe` is never used
[INFO] [stdout]   --> src/tp04/ej02.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn existe(personas:  &Vec<Persona>, per: &Persona)->bool {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Efectivo`, `TarjetaCredito`, and `TransferenciaBancaria` are never constructed
[INFO] [stdout]   --> src/tp04/ej03.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum MetodoPago{
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 53 |     Efectivo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 54 |     MercadoPago(u64),
[INFO] [stdout] 55 |     TarjetaCredito(u64),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     TransferenciaBancaria(u64),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetodoPago` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mayor_metodo_pago_activo` is never used
[INFO] [stdout]    --> src/tp04/ej03.rs:178:5
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StreamingRust{
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |  fn mayor_metodo_pago_activo(&self)->String{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Vino` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Vino,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Categoria` 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`, `apellido`, `direccion`, `dni`, and `email` are never read
[INFO] [stdout]   --> src/tp04/ej04.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Cliente{
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 63 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 64 |     apellido: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 65 |     direccion: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 66 |     dni: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 67 |     suscripto: bool,
[INFO] [stdout] 68 |     email: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lista_items`, `metodo`, `fecha`, `vendedor`, and `cliente` are never read
[INFO] [stdout]   --> src/tp04/ej04.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Venta{
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 72 |     lista_items: HashMap<u32, u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 73 |     monto_total: Option<f64>,
[INFO] [stdout] 74 |     metodo: MetodoPago,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 75 |     fecha: Fecha,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 76 |     vendedor: Vendedor,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 77 |     cliente: Cliente,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Debito`, `TransferenciaBancaria`, and `Efectivo` are never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | enum MetodoPago{
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 89 |     Credito,
[INFO] [stdout] 90 |     Debito,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 91 |     TransferenciaBancaria,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     Efectivo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reporte` is never constructed
[INFO] [stdout]   --> src/tp04/ej04.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct Reporte{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generar_reporte` is never used
[INFO] [stdout]    --> src/tp04/ej04.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Sistema {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn generar_reporte(&self)->Reporte{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nombre` is never read
[INFO] [stdout]  --> src/tp04/ej05.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Empresa {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     nombre: String,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nombre`, `apellido`, `email`, `dni`, `validado`, and `id` are never read
[INFO] [stdout]   --> src/tp04/ej05.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Usuario {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 15 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 16 |     apellido: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 17 |     email: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 18 |     dni: u128,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 19 |     validado: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Usuario` 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`, `prefijo`, and `id` are never read
[INFO] [stdout]   --> src/tp04/ej05.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct CriptoMoneda {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 27 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 28 |     prefijo: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CriptoMoneda` 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 `prefijo` and `id` are never read
[INFO] [stdout]   --> src/tp04/ej05.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct BlockChain {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 47 |     nombre:String,
[INFO] [stdout] 48 |     prefijo:String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockChain` 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 `0` is never read
[INFO] [stdout]    --> src/tp04/ej05.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 |     Basica(TransaccionBasica),
[INFO] [stdout]     |     ------ ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Transaccion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 103 -     Basica(TransaccionBasica),
[INFO] [stdout] 103 +     Basica(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/tp04/ej05.rs:105:20
[INFO] [stdout]     |
[INFO] [stdout] 105 |     RetirarRecibir(RetirarRecibirCripto),
[INFO] [stdout]     |     -------------- ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Transaccion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 105 -     RetirarRecibir(RetirarRecibirCripto),
[INFO] [stdout] 105 +     RetirarRecibir(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/tp04/ej05.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |     RetirarFiat(RetirarFiat),
[INFO] [stdout]     |     ----------- ^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Transaccion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 106 -     RetirarFiat(RetirarFiat),
[INFO] [stdout] 106 +     RetirarFiat(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TransferenciaBancaria` is never constructed
[INFO] [stdout]    --> src/tp04/ej05.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | enum MedioRecepcion {
[INFO] [stdout]     |      -------------- variant in this enum
[INFO] [stdout] 110 |     MercadoPago,
[INFO] [stdout] 111 |     TransferenciaBancaria,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MedioRecepcion` 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 `obtener_mayor_volumen_ventas_por_cripto` and `obtener_mayor_volumen_compras_por_cripto` are never used
[INFO] [stdout]    --> src/tp04/ej05.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl Empresa {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn obtener_mayor_volumen_ventas_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     fn obtener_mayor_volumen_compras_por_cripto(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nombre`, `apellido`, `direccion`, `dni`, and `email` are never read
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Cliente{
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 63 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 64 |     apellido: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 65 |     direccion: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 66 |     dni: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 67 |     suscripto: bool,
[INFO] [stdout] 68 |     email: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cliente` is never read
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Venta{
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     cliente: Cliente,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Debito`, `TransferenciaBancaria`, and `Efectivo` are never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | enum MetodoPago{
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 89 |     Credito,
[INFO] [stdout] 90 |     Debito,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 91 |     TransferenciaBancaria,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     Efectivo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetodoPago` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reporte` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v2.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct Reporte{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generar_reporte` is never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Sistema {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn generar_reporte(&self)->Reporte{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lista_items`, `monto_total`, and `medio_pago` are never read
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v2.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 274 | struct VentaInforme {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 275 |     fecha:Fecha,
[INFO] [stdout] 276 |     lista_items: HashMap<u32, u8>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 277 |     monto_total: Option<f64>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 278 |     medio_pago: MetodoPago,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Vino` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Vino,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Categoria` 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`, `apellido`, `direccion`, `dni`, and `email` are never read
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Cliente{
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 63 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 64 |     apellido: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 65 |     direccion: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 66 |     dni: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 67 |     suscripto: bool,
[INFO] [stdout] 68 |     email: Option<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `lista_items`, `metodo`, `fecha`, `vendedor`, and `cliente` are never read
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct Venta{
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 72 |     lista_items: HashMap<u32, u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 73 |     monto_total: Option<f64>,
[INFO] [stdout] 74 |     metodo: MetodoPago,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 75 |     fecha: Fecha,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 76 |     vendedor: Vendedor,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 77 |     cliente: Cliente,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Debito`, `TransferenciaBancaria`, and `Efectivo` are never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | enum MetodoPago{
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 89 |     Credito,
[INFO] [stdout] 90 |     Debito,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 91 |     TransferenciaBancaria,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     Efectivo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Reporte` is never constructed
[INFO] [stdout]   --> src/tp04/sebastian_pifarre_e2_v1.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | struct Reporte{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generar_reporte` is never used
[INFO] [stdout]    --> src/tp04/sebastian_pifarre_e2_v1.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Sistema {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn generar_reporte(&self)->Reporte{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `direccion` and `id` are never read
[INFO] [stdout]   --> src/tp05/ej03.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct Veterinaria{
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 10 |     nombre:String,
[INFO] [stdout] 11 |     direccion:String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 12 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nombre` is never read
[INFO] [stdout]   --> src/tp05/ej06.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Empresa {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 11 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nombre`, `apellido`, `email`, `dni`, `validado`, and `id` are never read
[INFO] [stdout]   --> src/tp05/ej06.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Usuario {
[INFO] [stdout]    |        ------- fields in this struct
[INFO] [stdout] 21 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 22 |     apellido: String,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     email: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 24 |     dni: u128,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 25 |     validado: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Usuario` 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`, `prefijo`, and `id` are never read
[INFO] [stdout]   --> src/tp05/ej06.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct CriptoMoneda {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] 56 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 57 |     prefijo: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CriptoMoneda` 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 `prefijo` and `id` are never read
[INFO] [stdout]   --> src/tp05/ej06.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct BlockChain {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 76 |     nombre:String,
[INFO] [stdout] 77 |     prefijo:String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 78 |     id: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockChain` has a derived impl for the trait `Clone`, but this is 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:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     mi_plataforma.cancelar_sus(0);
[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] 274 |     let _ = mi_plataforma.cancelar_sus(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     mi_plataforma.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 15.0, duracion: 1, fecha_de_inicio: Fecha::new(2025, time::Month::April, 23), tipo: TipoSuscripcion::Super, id_usuario: 0, activa: true, metodo_pago: MetodoPago::MercadoPago(12314) });
[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] 288 |     let _ = mi_plataforma.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 15.0, duracion: 1, fecha_de_inicio: Fecha::new(2025, time::Month::April, 23), tipo: TipoSuscripcion::Super, id_usuario: 0, activa: true, metodo_pago: MetodoPago::MercadoPago(12314) });
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:292:5
[INFO] [stdout]     |
[INFO] [stdout] 292 |     mi_plataforma.downgrade(0);
[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] 292 |     let _ = mi_plataforma.downgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:302:5
[INFO] [stdout]     |
[INFO] [stdout] 302 |     mi_plataforma.downgrade(0);
[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] 302 |     let _ = mi_plataforma.downgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 303 |     mi_plataforma.downgrade(0);
[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] 303 |     let _ = mi_plataforma.downgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:305:5
[INFO] [stdout]     |
[INFO] [stdout] 305 |     mi_plataforma.upgrade(0);
[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] 305 |     let _ = mi_plataforma.upgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 306 |     mi_plataforma.upgrade(0);
[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] 306 |     let _ = mi_plataforma.upgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp04/ej03.rs:307:5
[INFO] [stdout]     |
[INFO] [stdout] 307 |     mi_plataforma.upgrade(0);
[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] 307 |     let _ = mi_plataforma.upgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/tp05/ej01.rs:168:49
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut archivo = File::create(self.path.clone())
[INFO] [stdout]     |                                                 ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/tp05/ej02.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |         self.actualizar_json();
[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] 89 |         let _ = self.actualizar_json();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej02.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |         self.actualizar_json();
[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] 154 |         let _ = self.actualizar_json();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej02.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 265 |     mi_playlist.eliminar_cancion(c1.clone());
[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] 265 |     let _ = mi_playlist.eliminar_cancion(c1.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej02.rs:271:5
[INFO] [stdout]     |
[INFO] [stdout] 271 |     mi_playlist.mover(c1.clone(), 0);
[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] 271 |     let _ = mi_playlist.mover(c1.clone(), 0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:275:5
[INFO] [stdout]     |
[INFO] [stdout] 275 |     mi_biblio.decrementar_a_disposicion(libro1.clone());
[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] 275 |     let _ = mi_biblio.decrementar_a_disposicion(libro1.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:281:5
[INFO] [stdout]     |
[INFO] [stdout] 281 |     mi_biblio.incrementar_a_disposicion(libro1.clone());
[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] 281 |     let _ = mi_biblio.incrementar_a_disposicion(libro1.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:305:5
[INFO] [stdout]     |
[INFO] [stdout] 305 |     mi_biblio.realizar_prestamo(cliente1.clone(), libro1.clone(), Fecha::new(2025, time::Month::July, 24));
[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] 305 |     let _ = mi_biblio.realizar_prestamo(cliente1.clone(), libro1.clone(), Fecha::new(2025, time::Month::July, 24));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     mi_biblio.realizar_prestamo(cliente1.clone(), libro2.clone(), Fecha::new(2025, time::Month::August, 12));
[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] 308 |     let _ = mi_biblio.realizar_prestamo(cliente1.clone(), libro2.clone(), Fecha::new(2025, time::Month::August, 12));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:345:5
[INFO] [stdout]     |
[INFO] [stdout] 345 |     mi_biblio.realizar_prestamo(cliente1.clone(), libro1.clone(), Fecha::new(2024, time::Month::July, 24));
[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] 345 |     let _ = mi_biblio.realizar_prestamo(cliente1.clone(), libro1.clone(), Fecha::new(2024, time::Month::July, 24));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 |     mi_biblio.realizar_prestamo(cliente1.clone(), libro2.clone(), Fecha::new(2025, time::Month::August, 12));
[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] 348 |     let _ = mi_biblio.realizar_prestamo(cliente1.clone(), libro2.clone(), Fecha::new(2025, time::Month::August, 12));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej04.rs:367:5
[INFO] [stdout]     |
[INFO] [stdout] 367 |     mi_biblio.realizar_prestamo(cliente1.clone(), libro1.clone(), Fecha::new(2025, time::Month::July, 24));
[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] 367 |     let _ = mi_biblio.realizar_prestamo(cliente1.clone(), libro1.clone(), Fecha::new(2025, time::Month::July, 24));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:319:5
[INFO] [stdout]     |
[INFO] [stdout] 319 |     mi_plataforma.cancelar_sus(0);
[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] 319 |     let _ = mi_plataforma.cancelar_sus(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:336:5
[INFO] [stdout]     |
[INFO] [stdout] 336 |     mi_plataforma.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 15.0, duracion: 1, fecha_de_inicio: Fecha::new(2025, time::Month::April, 23), tipo: TipoSuscripcion::Super, id_usuario: 0, activa: true, metodo_pago: MetodoPago::MercadoPago(12314) });
[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] 336 |     let _ = mi_plataforma.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 15.0, duracion: 1, fecha_de_inicio: Fecha::new(2025, time::Month::April, 23), tipo: TipoSuscripcion::Super, id_usuario: 0, activa: true, metodo_pago: MetodoPago::MercadoPago(12314) });
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:339:5
[INFO] [stdout]     |
[INFO] [stdout] 339 |     mi_plataforma.downgrade(0);
[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] 339 |     let _ = mi_plataforma.downgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:373:5
[INFO] [stdout]     |
[INFO] [stdout] 373 |     mi_plataforma.downgrade(0);
[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] 373 |     let _ = mi_plataforma.downgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:374:5
[INFO] [stdout]     |
[INFO] [stdout] 374 |     mi_plataforma.downgrade(0);
[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] 374 |     let _ = mi_plataforma.downgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:376:5
[INFO] [stdout]     |
[INFO] [stdout] 376 |     mi_plataforma.upgrade(0);
[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] 376 |     let _ = mi_plataforma.upgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:377:5
[INFO] [stdout]     |
[INFO] [stdout] 377 |     mi_plataforma.upgrade(0);
[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] 377 |     let _ = mi_plataforma.upgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:378:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |     mi_plataforma.upgrade(0);
[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] 378 |     let _ = mi_plataforma.upgrade(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:449:5
[INFO] [stdout]     |
[INFO] [stdout] 449 |     mi_plataforma2.cancelar_sus(0);
[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] 449 |     let _ = mi_plataforma2.cancelar_sus(0);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:450:5
[INFO] [stdout]     |
[INFO] [stdout] 450 |     mi_plataforma2.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 1.0, duracion: 5, fecha_de_inicio: Fecha::new(1997, time::Month::April, 1), tipo: TipoSuscripcion::Classic, id_usuario: 0, activa: true, metodo_pago: MetodoPago::TarjetaCredito(23242) });
[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] 450 |     let _ = mi_plataforma2.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 1.0, duracion: 5, fecha_de_inicio: Fecha::new(1997, time::Month::April, 1), tipo: TipoSuscripcion::Classic, id_usuario: 0, activa: true, metodo_pago: MetodoPago::TarjetaCredito(23242) });
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 452 |     mi_plataforma2.cancelar_sus(1);
[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] 452 |     let _ = mi_plataforma2.cancelar_sus(1);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej05.rs:453:5
[INFO] [stdout]     |
[INFO] [stdout] 453 |     mi_plataforma2.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 1.0, duracion: 5, fecha_de_inicio: Fecha::new(1997, time::Month::April, 1), tipo: TipoSuscripcion::Classic, id_usuario: 1, activa: true, metodo_pago: MetodoPago::TarjetaCredito(23242) });
[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] 453 |     let _ = mi_plataforma2.resuscribir_usuario_existente(0, Suscripcion { costo_mensual: 1.0, duracion: 5, fecha_de_inicio: Fecha::new(1997, time::Month::April, 1), tipo: TipoSuscripcion::Classic, id_usuario: 1, activa: true, metodo_pago: MetodoPago::TarjetaCredito(23242) });
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 37s
[INFO] running `Command { std: "docker" "inspect" "48748264241c5068f193bdd76966aa94f33889efed9415e804a074f67bc46b11", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48748264241c5068f193bdd76966aa94f33889efed9415e804a074f67bc46b11", kill_on_drop: false }`
[INFO] [stdout] 48748264241c5068f193bdd76966aa94f33889efed9415e804a074f67bc46b11
