[INFO] cloning repository https://github.com/AldaoTomas/practica_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AldaoTomas/practica_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAldaoTomas%2Fpractica_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAldaoTomas%2Fpractica_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8b59dc9e1b4da31addf39d5425277779635f8701
[INFO] checking AldaoTomas/practica_rust against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146470
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAldaoTomas%2Fpractica_rust" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  64% (1435/2214)
Updating files:  65% (1440/2214)
Updating files:  66% (1462/2214)
Updating files:  67% (1484/2214)
Updating files:  68% (1506/2214)
Updating files:  69% (1528/2214)
Updating files:  70% (1550/2214)
Updating files:  71% (1572/2214)
Updating files:  72% (1595/2214)
Updating files:  73% (1617/2214)
Updating files:  73% (1619/2214)
Updating files:  74% (1639/2214)
Updating files:  75% (1661/2214)
Updating files:  76% (1683/2214)
Updating files:  77% (1705/2214)
Updating files:  78% (1727/2214)
Updating files:  78% (1742/2214)
Updating files:  79% (1750/2214)
Updating files:  80% (1772/2214)
Updating files:  81% (1794/2214)
Updating files:  81% (1795/2214)
Updating files:  82% (1816/2214)
Updating files:  83% (1838/2214)
Updating files:  84% (1860/2214)
Updating files:  85% (1882/2214)
Updating files:  86% (1905/2214)
Updating files:  87% (1927/2214)
Updating files:  87% (1931/2214)
Updating files:  88% (1949/2214)
Updating files:  89% (1971/2214)
Updating files:  90% (1993/2214)
Updating files:  91% (2015/2214)
Updating files:  92% (2037/2214)
Updating files:  93% (2060/2214)
Updating files:  94% (2082/2214)
Updating files:  95% (2104/2214)
Updating files:  96% (2126/2214)
Updating files:  97% (2148/2214)
Updating files:  98% (2170/2214)
Updating files:  99% (2192/2214)
Updating files: 100% (2214/2214)
Updating files: 100% (2214/2214), done.
[INFO] started tweaking git repo https://github.com/AldaoTomas/practica_rust
[INFO] finished tweaking git repo https://github.com/AldaoTomas/practica_rust
[INFO] tweaked toml for git repo https://github.com/AldaoTomas/practica_rust written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AldaoTomas/practica_rust on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AldaoTomas/practica_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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_derive v1.0.202
[INFO] [stderr]   Downloaded serde v1.0.202
[INFO] [stderr]   Downloaded cc v1.0.98
[INFO] [stderr]   Downloaded proc-macro2 v1.0.83
[INFO] [stderr]   Downloaded md5 v0.7.0
[INFO] [stderr]   Downloaded leb128 v0.2.5
[INFO] [stderr]   Downloaded coveralls-api v0.6.0
[INFO] [stderr]   Downloaded gzip-header v1.0.0
[INFO] [stderr]   Downloaded indexmap v1.8.2
[INFO] [stderr]   Downloaded camino v1.1.7
[INFO] [stderr]   Downloaded llvm_profparser v0.5.0
[INFO] [stderr]   Downloaded security-framework v2.11.0
[INFO] [stderr]   Downloaded procfs-core v0.16.0
[INFO] [stderr]   Downloaded serde_json v1.0.117
[INFO] [stderr]   Downloaded ruzstd v0.6.0
[INFO] [stderr]   Downloaded winnow v0.6.8
[INFO] [stderr]   Downloaded cargo-tarpaulin v0.30.0
[INFO] [stderr]   Downloaded quick-xml v0.31.0
[INFO] [stderr]   Downloaded procfs v0.16.0
[INFO] [stderr]   Downloaded syn v2.0.66
[INFO] [stderr]   Downloaded git2 v0.18.3
[INFO] [stderr]   Downloaded object v0.26.2
[INFO] [stderr]   Downloaded toml_edit v0.22.13
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] [stderr]   Downloaded object v0.35.0
[INFO] [stderr]   Downloaded miniz_oxide v0.7.3
[INFO] [stderr]   Downloaded security-framework-sys v2.11.0
[INFO] [stderr]   Downloaded toml_datetime v0.6.6
[INFO] [stderr]   Downloaded serde_spanned v0.6.6
[INFO] [stderr]   Downloaded toml v0.8.13
[INFO] [stderr]   Downloaded libssh2-sys v0.3.0
[INFO] [stderr]   Downloaded libz-sys v1.1.18
[INFO] [stderr]   Downloaded libgit2-sys v0.16.2+1.7.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c077f9d18198d7ef8e456c39765561843aae26ce4a0c79b13a09fd09005fa2e3
[INFO] running `Command { std: "docker" "start" "-a" "c077f9d18198d7ef8e456c39765561843aae26ce4a0c79b13a09fd09005fa2e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c077f9d18198d7ef8e456c39765561843aae26ce4a0c79b13a09fd09005fa2e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c077f9d18198d7ef8e456c39765561843aae26ce4a0c79b13a09fd09005fa2e3", kill_on_drop: false }`
[INFO] [stdout] c077f9d18198d7ef8e456c39765561843aae26ce4a0c79b13a09fd09005fa2e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7912d1e7385ed32083d721e9e7d2b608d521629e879748da386ced3d317c2bdc
[INFO] running `Command { std: "docker" "start" "-a" "7912d1e7385ed32083d721e9e7d2b608d521629e879748da386ced3d317c2bdc", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.83
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling serde v1.0.202
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]     Checking bytes v1.6.0
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking miniz_oxide v0.7.3
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling semver v1.0.23
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking flate2 v1.0.30
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]    Compiling serde_json v1.0.117
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling thiserror v1.0.61
[INFO] [stderr]     Checking indexmap v2.2.6
[INFO] [stderr]     Checking anstyle-parse v0.2.4
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling indexmap v1.8.2
[INFO] [stderr]     Checking colorchoice v1.0.1
[INFO] [stderr]     Checking anstyle-query v1.0.3
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.0
[INFO] [stderr]    Compiling camino v1.1.7
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]     Checking unicode-ident v1.0.12
[INFO] [stderr]     Checking anstyle v1.0.7
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]     Checking anstream v0.6.14
[INFO] [stderr]    Compiling jobserver v0.1.31
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking gzip-header v1.0.0
[INFO] [stderr]     Checking encoding_rs v0.8.34
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]    Compiling llvm_profparser v0.5.0
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]    Compiling cc v1.0.98
[INFO] [stderr]     Checking winnow v0.6.8
[INFO] [stderr]    Compiling procfs v0.16.0
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking clap_builder v4.5.2
[INFO] [stderr]     Checking deflate v1.0.0
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling cargo-tarpaulin v0.30.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking object v0.26.2
[INFO] [stderr]     Checking tokio v1.37.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking leb128 v0.2.5
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]     Checking procfs-core v0.16.0
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking gimli v0.29.0
[INFO] [stderr]     Checking quick-xml v0.31.0
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling openssl-sys v0.9.102
[INFO] [stderr]    Compiling libz-sys v1.1.18
[INFO] [stderr]    Compiling libssh2-sys v0.3.0
[INFO] [stderr]    Compiling libgit2-sys v0.16.2+1.7.2
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking regex v1.10.4
[INFO] [stderr]     Checking ruzstd v0.6.0
[INFO] [stderr]     Checking object v0.35.0
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]    Compiling serde_derive v1.0.202
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling clap_derive v4.5.4
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking clap v4.5.4
[INFO] [stderr]     Checking git2 v0.18.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper v0.14.28
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking toml_datetime v0.6.6
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_spanned v0.6.6
[INFO] [stderr]     Checking cargo-platform v0.1.8
[INFO] [stderr]     Checking humantime-serde v1.1.1
[INFO] [stderr]     Checking toml_edit v0.22.13
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking cargo_metadata v0.18.1
[INFO] [stderr]     Checking coveralls-api v0.6.0
[INFO] [stderr]     Checking toml v0.8.13
[INFO] [stderr]     Checking p2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Display`, `File`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej1.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 20 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 21 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^  ^^^^
[INFO] [stdout] 22 |     io::{self, Read, Seek, SeekFrom, Write},
[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 imports: `Display`, `File`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej2.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 17 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^  ^^^^
[INFO] [stdout] 18 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej3.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 17 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 18 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej4.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 15 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 16 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej5.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 19 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 20 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 21 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]   --> src/tp05/ej6.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use core::hash;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/tp05/ej6.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej6.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 19 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 20 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]  --> src/tp04/ej5.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/tp04/ej5.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `File`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej1.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 20 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 21 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^  ^^^^
[INFO] [stdout] 22 |     io::{self, Read, Seek, SeekFrom, Write},
[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 imports: `Display`, `File`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej2.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 17 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^  ^^^^
[INFO] [stdout] 18 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej3.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 16 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 17 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 18 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej4.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 14 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 15 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 16 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej5.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 19 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 20 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 21 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]   --> src/tp05/ej6.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use core::hash;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/tp05/ej6.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]    |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display`, `Read`, `SeekFrom`, `Seek`, `error::Error`, `self`, `self`, and `self`
[INFO] [stdout]   --> src/tp05/ej6.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     error::Error,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     fmt::{self, Display},
[INFO] [stdout]    |           ^^^^  ^^^^^^^
[INFO] [stdout] 19 |     fs::{self, File, OpenOptions},
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 20 |     io::{self, Read, Seek, SeekFrom, Write},
[INFO] [stdout]    |          ^^^^  ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]  --> src/tp04/ej5.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/tp04/ej5.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tp05/ej4.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |             let mut prestamo = Prestamos::new(libro, cliente, fehca_de_vencimiento);
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `medio`
[INFO] [stdout]    --> src/tp05/ej6.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         medio: MedioPago,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_medio`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dias_en_mes`
[INFO] [stdout]   --> src/tp05/fecha.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let dias_en_mes = match self.mes {
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dias_en_mes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancion2`
[INFO] [stdout]    --> src/tp05/ej2.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |     let cancion2 = Cancion {
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancion2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `medio`
[INFO] [stdout]    --> src/tp04/ej5.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         medio: MedioPago,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_medio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dias_en_mes`
[INFO] [stdout]   --> src/tp04/fecha.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let dias_en_mes = match self.mes {
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dias_en_mes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Auto` is never constructed
[INFO] [stdout]   --> src/tp05/ej1.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct Auto {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Color` is never used
[INFO] [stdout]   --> src/tp05/ej1.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Color {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiError` is never constructed
[INFO] [stdout]   --> src/tp05/ej1.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct MiError {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConcesionarioAuto` is never constructed
[INFO] [stdout]   --> src/tp05/ej1.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct ConcesionarioAuto {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `agregar_auto`, `eliminar_auto`, `guardar_autos`, `cargar_autos`, and `buscar_auto` are never used
[INFO] [stdout]    --> src/tp05/ej1.rs:77:8
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl ConcesionarioAuto {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  76 |
[INFO] [stdout]  77 |     fn new (nombre: String, direccion: String, capacidad: u32, autos: Vec<Auto> ) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     fn agregar_auto (&mut self, auto: Auto) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn eliminar_auto (&mut self, auto: Auto) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn guardar_autos(&self) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn cargar_autos(&mut self) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn buscar_auto (&self, auto: Auto) -> Option<&Auto>{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `calcular_precio` are never used
[INFO] [stdout]    --> src/tp05/ej1.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Auto {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 153 |
[INFO] [stdout] 154 |     fn new (marca: String, modelo: String, año: i32, precio_bruto: f64, color: Color) -> Self{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn calcular_precio (&self) -> f64{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiError` is never constructed
[INFO] [stdout]   --> src/tp05/ej2.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct MiError {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cancion` is never constructed
[INFO] [stdout]   --> src/tp05/ej2.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct Cancion {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Genero` is never used
[INFO] [stdout]   --> src/tp05/ej2.rs:54:6
[INFO] [stdout]    |
[INFO] [stdout] 54 | enum Genero{
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Playlist` is never constructed
[INFO] [stdout]   --> src/tp05/ej2.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Playlist {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `genero_to_int` and `equals` are never used
[INFO] [stdout]   --> src/tp05/ej2.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl Genero {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 67 |     fn genero_to_int (&self) -> u8{
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn equals(&self, genero: &Genero) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equals` is never used
[INFO] [stdout]   --> src/tp05/ej2.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl Cancion {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 83 |     pub fn equals (&self, cancion: &Cancion) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tp05/ej2.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl Playlist {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout]  91 |
[INFO] [stdout]  92 |     fn agregar_cancion (&mut self, cancion: Cancion) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn eliminar_cancion_por_nombre (&mut self, cancion: Cancion) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn mover_cancion (&mut self, cancion: Cancion, pos: usize) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn buscar (&self, cancion: Cancion) -> Option<&Cancion> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn obtener_cancion_genero (&self, genero: Genero) -> VecDeque<Cancion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn obtener_cancion_artista (&self, artista: String) -> VecDeque<Cancion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn modificar_titulo (&mut self, titulo: String) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn eliminar_todas_las_canciones (&mut self) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn guardar_canciones(&self) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiError` is never constructed
[INFO] [stdout]   --> src/tp05/ej3.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct MiError {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Veterinaria` is never constructed
[INFO] [stdout]   --> src/tp05/ej3.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Veterinaria {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tipo` is never used
[INFO] [stdout]   --> src/tp05/ej3.rs:53:6
[INFO] [stdout]    |
[INFO] [stdout] 53 | enum Tipo {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Atencion` is never constructed
[INFO] [stdout]   --> src/tp05/ej3.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct Atencion {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mascota` is never constructed
[INFO] [stdout]   --> src/tp05/ej3.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Mascota {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dueño` is never constructed
[INFO] [stdout]   --> src/tp05/ej3.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct Dueño{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `tipo_to_int` and `equals` are never used
[INFO] [stdout]   --> src/tp05/ej3.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl Tipo {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 84 |     fn tipo_to_int(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn equals(&self, tipo: &Tipo)-> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equals` is never used
[INFO] [stdout]   --> src/tp05/ej3.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | impl Dueño{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 99 |     pub fn equals(&self, dueño: &Dueño)-> bool{
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equals` is never used
[INFO] [stdout]    --> src/tp05/ej3.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Mascota {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 105 |     pub fn equals(&self, mascota: &Mascota)-> bool{ 
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equals` is never used
[INFO] [stdout]    --> src/tp05/ej3.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl Fecha {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 111 |     pub fn equals (&self, fecha: &Fecha) -> bool{
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fecha_equals` and `equals` are never used
[INFO] [stdout]    --> src/tp05/ej3.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Atencion {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 118 |
[INFO] [stdout] 119 |     fn fecha_equals (&self, fecha2: &Option<Fecha>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn equals (&self, atencion: &Atencion)-> bool{
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej3.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl Veterinaria {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 133 |     fn new(nombre: String, direccion: String, id:u32) -> Self{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn agregar_mascota(&mut self, mascota: Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn agregar_mascota_prioridad(&mut self, mascota: Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn atender_mascota(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn eliminar_mascota(&mut self, mascota: Mascota){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn registrar_atencion(&mut self, atencion:Atencion) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn buscar_atencion(&mut self, nombre_mascota: String, nombre_dueño: String, telefono:u32) -> Option<&Atencion>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn modificar_diagnostico(&mut self, atencion:&Atencion, diagnostico: String) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn modificar_fecha (&mut self, atencion:&Atencion, fecha: Option<Fecha>) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn eliminar_atencion(&mut self, atencion:Atencion) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn guardar_atenciones(&self) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiError` is never constructed
[INFO] [stdout]   --> src/tp05/ej4.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct MiError {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Genero` is never used
[INFO] [stdout]   --> src/tp05/ej4.rs:44:6
[INFO] [stdout]    |
[INFO] [stdout] 44 | enum Genero {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Libro` is never constructed
[INFO] [stdout]   --> src/tp05/ej4.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct Libro {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp05/ej4.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct Cliente{
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Prestamos` is never constructed
[INFO] [stdout]   --> src/tp05/ej4.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct Prestamos{
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Biblioteca` is never constructed
[INFO] [stdout]   --> src/tp05/ej4.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct Biblioteca {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LibrosDisponibles` is never constructed
[INFO] [stdout]   --> src/tp05/ej4.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 | struct  LibrosDisponibles{
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tp05/ej4.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl LibrosDisponibles {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 89 |     fn new (libro: Libro, cant: u32) -> LibrosDisponibles{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `genero_to_int` and `equals` are never used
[INFO] [stdout]    --> src/tp05/ej4.rs:98:8
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl Genero {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  98 |     fn genero_to_int (&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn equals(&self, genero: &Genero) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equals` is never used
[INFO] [stdout]    --> src/tp05/ej4.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl Libro {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 114 |     pub fn equals(&self, libro: &Libro) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `equals` is never used
[INFO] [stdout]    --> src/tp05/ej4.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Cliente{
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 120 |     pub fn equals(&self, cliente: &Cliente) -> bool{
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tp05/ej4.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl Prestamos {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 127 |     fn new(libro: Libro, cliente: Cliente, fehca_de_vencimiento: Fecha) -> Prestamos {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej4.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl Biblioteca {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 140 |     pub fn new(nombre: String, direccion: String) -> Biblioteca {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn obtener_copias(&self, libro: &Libro) -> Option<u32>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn decrementar_copias (&mut self, libro: &Libro) -> Result<(), MiError>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn incrementar_copias(&mut self, libro: &Libro) -> Result<(), MiError>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn contar_prestamos(&self, cliente: &Cliente) -> u32{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn realizar_prestamo(&mut self, libro: Libro, cliente: Cliente, fehca_de_vencimiento: Fecha) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn prestamos_a_vencer(&self, fecha:Fecha) -> Vec<&Prestamos>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn prestamos_vencidos(&self, fecha:Fecha) -> Vec<&Prestamos>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn buscar_prestamo (&self, libro: &Libro, cliente: &Cliente) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn devolver_libro(&mut self, libro: &Libro, cliente: &Cliente, fecha:Fecha) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn guardar_prestamos(&self) -> Result<(), MiError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn guardar_copias(&self) -> Result<(), MiError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiError` is never constructed
[INFO] [stdout]   --> src/tp05/ej5.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct MiError {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransmisionRust` is never constructed
[INFO] [stdout]   --> src/tp05/ej5.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct TransmisionRust {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]   --> src/tp05/ej5.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | struct Usuario {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Suscripcion` is never constructed
[INFO] [stdout]   --> src/tp05/ej5.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct Suscripcion {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TipoSuscripcion` is never used
[INFO] [stdout]   --> src/tp05/ej5.rs:69:6
[INFO] [stdout]    |
[INFO] [stdout] 69 | enum TipoSuscripcion {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp05/ej5.rs:76:6
[INFO] [stdout]    |
[INFO] [stdout] 76 | enum MetodoPago {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej5.rs:85:8
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl TransmisionRust {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  85 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn crear_suscripcion(&mut self, id_usuario: u32, nombre: String, tipo_suscripcion: TipoSuscripcion, duracion_meses: u32, metodo...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn crear_usuario(&mut self, id_usuario: u32, nombre: String, metodo_pago: MetodoPago) -> &Usuario {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn obtener_usuario(&self, id_usuario: u32) -> Option<&Usuario> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn metodo_pago_activo_mas_usado(&self) -> Option<MetodoPago> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn tipo_suscripcion_activa_mas_usada(&self) -> Option<TipoSuscripcion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn metodo_pago_mas_usado(&self) -> Option<MetodoPago> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn tipo_suscripcion_mas_usado(&self) -> Option<TipoSuscripcion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn mejorar_suscripcion(&mut self, id_usuario: u32) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn degradar_suscripcion(&mut self, id_usuario: u32) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn cancelar_suscripcion(&mut self, id_usuario: u32) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn obtener_suscripcion(&mut self, id_usuario: u32) -> Option<&mut Suscripcion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn guardar_suscripciones(&self) -> Result<(), MiError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tp05/ej5.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | impl Usuario {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 211 |     fn new(id: u32, nombre: String, metodo_pago: MetodoPago) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `mejorar`, `degradar`, `cancelar`, `costo`, and `esta_activa` are never used
[INFO] [stdout]    --> src/tp05/ej5.rs:221:8
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Suscripcion {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 221 |     fn new(tipo_suscripcion: TipoSuscripcion, duracion_meses: u32, id_usuario: u32) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn mejorar(&mut self) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn degradar(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     fn cancelar(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn costo(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     fn esta_activa(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `costo` is never used
[INFO] [stdout]    --> src/tp05/ej5.rs:264:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl TipoSuscripcion {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 264 |     fn costo(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MiError` is never constructed
[INFO] [stdout]   --> src/tp05/ej6.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct MiError {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]   --> src/tp05/ej6.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Usuario {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IniciarBalance` is never used
[INFO] [stdout]   --> src/tp05/ej6.rs:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | trait IniciarBalance {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej6.rs:73:8
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl Usuario {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  73 |     fn new(nombre: String, apellido: String, email: String, dni: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn kyc(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     fn validar_usuario_compra(self, fiat: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     fn validar_usuario_venta(self, monto: f64, cripto: Criptomoneda) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn validar_usuario_retiro_fiat(self, monto: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn ingresar_dinero(&mut self, ingreso: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn aumentar_balance_crypto(&mut self, cripto: Criptomoneda, monto: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Criptomoneda` is never constructed
[INFO] [stdout]    --> src/tp05/ej6.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | struct Criptomoneda {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `cotizacion`, and `verificar_blockchain` are never used
[INFO] [stdout]    --> src/tp05/ej6.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Criptomoneda {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 132 |     fn new(nombre: String, prefijo: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn cotizacion(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn verificar_blockchain(&self, blockchain: Blockchain) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blockchain` is never constructed
[INFO] [stdout]    --> src/tp05/ej6.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | struct Blockchain {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `generar_hash` are never used
[INFO] [stdout]    --> src/tp05/ej6.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Blockchain {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 160 |     fn new(nombre: String, prefijo: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn generar_hash(&self) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hash` is never constructed
[INFO] [stdout]    --> src/tp05/ej6.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | struct Hash {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tp05/ej6.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 175 | impl Hash {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 176 |     fn new(nombre_blockchain: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transaccion` is never constructed
[INFO] [stdout]    --> src/tp05/ej6.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | struct Transaccion {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `transaccion_ingreso`, `transaccion_compra`, `transaccion_venta`, `transaccion_retiro`, `transaccion_recibir`, and `transaccion_retirar_fiat` are never used
[INFO] [stdout]    --> src/tp05/ej6.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | impl Transaccion {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 197 |     fn transaccion_ingreso(fecha: String, tipo: String, monto: f64, user: Usuario) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn transaccion_compra(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn transaccion_venta(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn transaccion_retiro(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn transaccion_recibir(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn transaccion_retirar_fiat(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MedioPago` is never used
[INFO] [stdout]    --> src/tp05/ej6.rs:338:6
[INFO] [stdout]     |
[INFO] [stdout] 338 | enum MedioPago {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XYZ` is never constructed
[INFO] [stdout]    --> src/tp05/ej6.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | struct XYZ {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp05/ej6.rs:348:8
[INFO] [stdout]     |
[INFO] [stdout] 347 | impl XYZ {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 348 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     fn ingresar_dinero(&mut self, user: Usuario, ingreso: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn comprar_cripto(&mut self, user: Usuario, fiat: f64, cripto: Criptomoneda) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     fn vender_cripto(&mut self, user: Usuario, monto: f64, cripto: Criptomoneda) -> Result<(), MiError>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     fn retirar_cripto(&mut self, user: Usuario, monto: f64, cripto: Criptomoneda, blockchain: Blockchain,) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn recibir_cripto(&mut self, user: Usuario, monto: f64, cripto: Criptomoneda, blockchain: Blockchain, ) -> Result<(), MiError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     fn retirar_fiat(&mut self, monto: f64, user: Usuario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523 |     fn cripto_mas_vendida(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 552 |     fn cripto_mas_comprada(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 581 |     fn cripto_mas_volumen_venta(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 605 |     fn cripto_mas_volumen_compra(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 630 |     fn pushear_transaccion(&mut self, t: Transaccion) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub fn guardar_usuarios(&self) -> Result<(), MiError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn guardar_transacciones(&self) -> Result<(), MiError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fecha` is never constructed
[INFO] [stdout]  --> src/tp05/fecha.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct  Fecha {
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `es_bisiesto`, `es_fecha_valida`, `sumar_dias`, `restar_dias`, and `es_mayor` are never used
[INFO] [stdout]    --> src/tp05/fecha.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Fecha{
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  13 |
[INFO] [stdout]  14 |     pub fn new (dia: u32, mes:u32, año:i32) -> Self{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub fn es_bisiesto (&self) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn es_fecha_valida (&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn sumar_dias(&mut self, mut dias: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn restar_dias(&mut self, mut dias: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn es_mayor(&self, fecha: &Fecha) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EsPrimo` is never used
[INFO] [stdout]  --> src/tp04/ej1.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | trait EsPrimo {
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cantidad_primos` is never used
[INFO] [stdout]   --> src/tp04/ej1.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn cantidad_primos (v: &Vec<i32>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Persona` is never constructed
[INFO] [stdout]  --> src/tp04/ej2.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct Persona<'a>{
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `es_mayor` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn es_mayor <'a>(v_personas: &'a Vec<Persona<'a>>, sueldo: f64) -> Vec<&'a Persona<'a>> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mayores_edad` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn mayores_edad <'a> (v_personas: &'a Vec<Persona<'a>>, edad: u8, ciudad: &str) -> Vec<&'a Persona<'a>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `viven_en_la_ciudad` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn viven_en_la_ciudad <'a> (v_personas: &'a Vec<Persona<'a>>, ciudad: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alguno_vive_en_la_ciudad` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn alguno_vive_en_la_ciudad <'a> (v_personas: &'a Vec<Persona<'a>>, ciudad: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `existe` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn existe <'a> (v_personas: &'a Vec<Persona<'a>>, pe: Persona) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edades` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn edades (v_personas: &Vec<Persona>) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mayor_y_menor_salario` is never used
[INFO] [stdout]   --> src/tp04/ej2.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn mayor_y_menor_salario <'a> (v_personas: &'a Vec<Persona<'a>>) -> (Persona , Persona) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransmisionRust` is never constructed
[INFO] [stdout]  --> src/tp04/ej3.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct TransmisionRust {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]  --> src/tp04/ej3.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Usuario {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Suscripcion` is never constructed
[INFO] [stdout]   --> src/tp04/ej3.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Suscripcion {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TipoSuscripcion` is never used
[INFO] [stdout]   --> src/tp04/ej3.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum TipoSuscripcion {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetodoPago` is never used
[INFO] [stdout]   --> src/tp04/ej3.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum MetodoPago {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp04/ej3.rs:40:8
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl TransmisionRust {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  40 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn crear_suscripcion(&mut self, id_usuario: u32, nombre: String, tipo_suscripcion: TipoSuscripcion, duracion_meses: u32, metodo...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     fn crear_usuario(&mut self, id_usuario: u32, nombre: String, metodo_pago: MetodoPago) -> &Usuario {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn obtener_usuario(&self, id_usuario: u32) -> Option<&Usuario> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     fn metodo_pago_activo_mas_usado(&self) -> Option<MetodoPago> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn tipo_suscripcion_activa_mas_usada(&self) -> Option<TipoSuscripcion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     fn metodo_pago_mas_usado(&self) -> Option<MetodoPago> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     fn tipo_suscripcion_mas_usado(&self) -> Option<TipoSuscripcion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn mejorar_suscripcion(&mut self, id_usuario: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn degradar_suscripcion(&mut self, id_usuario: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn cancelar_suscripcion(&mut self, id_usuario: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn obtener_suscripcion(&mut self, id_usuario: u32) -> Option<&mut Suscripcion> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tp04/ej3.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl Usuario {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 131 |     fn new(id: u32, nombre: String, metodo_pago: MetodoPago) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `mejorar`, `degradar`, `cancelar`, `costo`, and `esta_activa` are never used
[INFO] [stdout]    --> src/tp04/ej3.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Suscripcion {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 141 |     fn new(tipo_suscripcion: TipoSuscripcion, duracion_meses: u32, id_usuario: u32) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn mejorar(&mut self) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn degradar(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn cancelar(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn costo(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn esta_activa(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `costo` is never used
[INFO] [stdout]    --> src/tp04/ej3.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl TipoSuscripcion {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 184 |     fn costo(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Producto` is never constructed
[INFO] [stdout]  --> src/tp04/ej4.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct  Producto {
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cliente` is never constructed
[INFO] [stdout]   --> src/tp04/ej4.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Cliente {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vendedor` is never constructed
[INFO] [stdout]   --> src/tp04/ej4.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Vendedor{
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ventas` is never constructed
[INFO] [stdout]   --> src/tp04/ej4.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct Ventas {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Venta` is never constructed
[INFO] [stdout]   --> src/tp04/ej4.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Venta {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MedioPago` is never used
[INFO] [stdout]   --> src/tp04/ej4.rs:38:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | enum MedioPago {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Categoria` is never used
[INFO] [stdout]   --> src/tp04/ej4.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `categoria_to_int` is never used
[INFO] [stdout]   --> src/tp04/ej4.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Categoria {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 53 |     fn categoria_to_int (&self) -> usize{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `agregar_venta`, `reporte_categorias`, and `reporte_vendedores` are never used
[INFO] [stdout]   --> src/tp04/ej4.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl Ventas {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 65 |     fn new (registro_ventas: Vec<Venta>) -> Self{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn agregar_venta (&mut self, venta: Venta) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn reporte_categorias (&self) -> Vec<i32>{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn reporte_vendedores (&self) -> HashMap<u32, i32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `aplicar_descuento` are never used
[INFO] [stdout]    --> src/tp04/ej4.rs:98:8
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl Producto{
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  98 |     fn new (nombre: String, categoria: Categoria, precio_base: f64, descuento: Option<f64>, vendedor: Vendedor,) -> Self{
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn aplicar_descuento (&mut self) -> f64{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `calcular_precio_final` are never used
[INFO] [stdout]    --> src/tp04/ej4.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl Venta {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 127 |     fn new (fecha: String, cliente: Cliente, vendedor: Vendedor, medio_de_pago: MedioPago, listado_de_productos: Vec<Producto>) -> ...
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn calcular_precio_final (&mut self) -> f64{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usuario` is never constructed
[INFO] [stdout]  --> src/tp04/ej5.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Usuario {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IniciarBalance` is never used
[INFO] [stdout]   --> src/tp04/ej5.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | trait IniciarBalance {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/tp04/ej5.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Usuario {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 29 |     fn new(nombre: String, apellido: String, email: String, dni: String) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn kyc(&mut self) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn validar_usuario_compra(self, fiat: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn validar_usuario_venta(self, monto: f64, cripto: Criptomoneda) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn validar_usuario_retiro_fiat(self, monto: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn ingresar_dinero(&mut self, ingreso: f64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn aumentar_balance_crypto(&mut self, cripto: Criptomoneda, monto: f64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Criptomoneda` is never constructed
[INFO] [stdout]   --> src/tp04/ej5.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct Criptomoneda {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `cotizacion`, and `verificar_blockchain` are never used
[INFO] [stdout]    --> src/tp04/ej5.rs:88:8
[INFO] [stdout]     |
[INFO] [stdout]  87 | impl Criptomoneda {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  88 |     fn new(nombre: String, prefijo: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn cotizacion(&self) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn verificar_blockchain(&self, blockchain: Blockchain) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blockchain` is never constructed
[INFO] [stdout]    --> src/tp04/ej5.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct Blockchain {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `generar_hash` are never used
[INFO] [stdout]    --> src/tp04/ej5.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Blockchain {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 116 |     fn new(nombre: String, prefijo: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn generar_hash(&self) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hash` is never constructed
[INFO] [stdout]    --> src/tp04/ej5.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | struct Hash {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/tp04/ej5.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Hash {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 132 |     fn new(nombre_blockchain: String) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transaccion` is never constructed
[INFO] [stdout]    --> src/tp04/ej5.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | struct Transaccion {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `transaccion_ingreso`, `transaccion_compra`, `transaccion_venta`, `transaccion_retiro`, `transaccion_recibir`, and `transaccion_retirar_fiat` are never used
[INFO] [stdout]    --> src/tp04/ej5.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Transaccion {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 153 |     fn transaccion_ingreso(fecha: String, tipo: String, monto: f64, user: Usuario) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn transaccion_compra(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn transaccion_venta(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn transaccion_retiro(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn transaccion_recibir(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn transaccion_retirar_fiat(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MedioPago` is never used
[INFO] [stdout]    --> src/tp04/ej5.rs:294:6
[INFO] [stdout]     |
[INFO] [stdout] 294 | enum MedioPago {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XYZ` is never constructed
[INFO] [stdout]    --> src/tp04/ej5.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | struct XYZ {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tp04/ej5.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout] 303 | impl XYZ {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 304 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn ingresar_dinero(&mut self, user: Usuario, ingreso: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn comprar_cripto(&mut self, user: Usuario, fiat: f64, cripto: Criptomoneda) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     fn vender_cripto(&mut self, user: Usuario, monto: f64, cripto: Criptomoneda) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn retirar_cripto(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     fn recibir_cripto(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     fn retirar_fiat(&mut self, monto: f64, user: Usuario) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     fn cripto_mas_vendida(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn cripto_mas_comprada(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     fn cripto_mas_volumen_venta(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn cripto_mas_volumen_compra(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 552 |     fn pushear_transaccion(&mut self, t: Transaccion) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fecha` is never constructed
[INFO] [stdout]  --> src/tp04/fecha.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct  Fecha {
[INFO] [stdout]   |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `es_bisiesto`, `es_fecha_valida`, `sumar_dias`, `restar_dias`, and `es_mayor` are never used
[INFO] [stdout]    --> src/tp04/fecha.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl Fecha{
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout]  10 |
[INFO] [stdout]  11 |     pub fn new (dia: u32, mes:u32, año:i32) -> Self{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  19 |     pub fn es_bisiesto (&self) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn es_fecha_valida (&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn sumar_dias(&mut self, mut dias: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn restar_dias(&mut self, mut dias: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn es_mayor(&self, fecha: &Fecha) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej4.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |             self.decrementar_copias(&libro);
[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] 217 |             let _ = self.decrementar_copias(&libro);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej4.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 self.incrementar_copias(libro);
[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] 263 |                 let _ = self.incrementar_copias(libro);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/tp04/ej2.rs:38:74
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn mayor_y_menor_salario <'a> (v_personas: &'a Vec<Persona<'a>>) -> (Persona , Persona) {
[INFO] [stdout]    |                                                 --             --        ^^^^^^^   ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                 |              |         |
[INFO] [stdout]    |                                                 |              |         the same lifetime is hidden here
[INFO] [stdout]    |                                                 |              the lifetime is named here
[INFO] [stdout]    |                                                 the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn mayor_y_menor_salario <'a> (v_personas: &'a Vec<Persona<'a>>) -> (Persona<'a> , Persona<'a>) {
[INFO] [stdout]    |                                                                                 ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tp05/ej4.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |             let mut prestamo = Prestamos::new(libro, cliente, fehca_de_vencimiento);
[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/tp05/ej4.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let mut libro = Libro {
[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/tp05/ej4.rs:574:9
[INFO] [stdout]     |
[INFO] [stdout] 574 |     let mut libro2 = Libro {
[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/tp05/ej4.rs:581:9
[INFO] [stdout]     |
[INFO] [stdout] 581 |     let mut libro3 = Libro {
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `medio`
[INFO] [stdout]    --> src/tp05/ej6.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         medio: MedioPago,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_medio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tp05/ej6.rs:948:9
[INFO] [stdout]     |
[INFO] [stdout] 948 |     let mut usuario = Usuario::new(
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dias_en_mes`
[INFO] [stdout]   --> src/tp05/fecha.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let dias_en_mes = match self.mes {
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dias_en_mes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `medio`
[INFO] [stdout]    --> src/tp04/ej5.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         medio: MedioPago,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_medio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tp04/ej5.rs:825:9
[INFO] [stdout]     |
[INFO] [stdout] 825 |     let mut usuario = Usuario::new(
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dias_en_mes`
[INFO] [stdout]   --> src/tp04/fecha.rs:90:17
[INFO] [stdout]    |
[INFO] [stdout] 90 |             let dias_en_mes = match self.mes {
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dias_en_mes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nombre` and `direccion` are never read
[INFO] [stdout]   --> src/tp05/ej1.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct ConcesionarioAuto {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 69 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 70 |     direccion: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `buscar_prestamo` is never used
[INFO] [stdout]    --> src/tp05/ej4.rs:249:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl Biblioteca {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn buscar_prestamo (&self, libro: &Libro, cliente: &Cliente) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TarjetaCredito`, `TransferenciaBancaria`, and `Cripto` are never constructed
[INFO] [stdout]   --> src/tp05/ej5.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | enum MetodoPago {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 79 |     TarjetaCredito { numero_tarjeta: String, expiracion: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     TransferenciaBancaria { cuenta_bancaria: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 81 |     Cripto { billetera: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetodoPago` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TransfenciaBancaria` is never constructed
[INFO] [stdout]    --> src/tp05/ej6.rs:340:5
[INFO] [stdout]     |
[INFO] [stdout] 338 | enum MedioPago {
[INFO] [stdout]     |      --------- variant in this enum
[INFO] [stdout] 339 |     MercadoPago,
[INFO] [stdout] 340 |     TransfenciaBancaria,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fecha_inicio` is never read
[INFO] [stdout]   --> src/tp04/ej3.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Suscripcion {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fecha_inicio: Fecha,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TarjetaCredito`, `TransferenciaBancaria`, and `Cripto` are never constructed
[INFO] [stdout]   --> src/tp04/ej3.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum MetodoPago {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     TarjetaCredito { numero_tarjeta: String, expiracion: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     TransferenciaBancaria { cuenta_bancaria: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     Cripto { billetera: String },
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetodoPago` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nombre`, `descuento`, and `vendedor` are never read
[INFO] [stdout]   --> src/tp04/ej4.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | struct  Producto {
[INFO] [stdout]    |         -------- fields in this struct
[INFO] [stdout]  6 |     nombre: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  9 |     descuento: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 10 |     vendedor: Vendedor,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fecha` and `medio_de_pago` are never read
[INFO] [stdout]   --> src/tp04/ej4.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Venta {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 31 |     fecha: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     medio_de_pago: MedioPago,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Tarjeta`, `Debito`, and `Transferencia` are never constructed
[INFO] [stdout]   --> src/tp04/ej4.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | enum MedioPago {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 39 |     Efectivo,
[INFO] [stdout] 40 |     Tarjeta,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     Debito,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 42 |     Transferencia,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Laptop` is never constructed
[INFO] [stdout]   --> src/tp04/ej4.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | enum Categoria{
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Laptop,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TransfenciaBancaria` is never constructed
[INFO] [stdout]    --> src/tp04/ej5.rs:296:5
[INFO] [stdout]     |
[INFO] [stdout] 294 | enum MedioPago {
[INFO] [stdout]     |      --------- variant in this enum
[INFO] [stdout] 295 |     MercadoPago,
[INFO] [stdout] 296 |     TransfenciaBancaria,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej1.rs:253:5
[INFO] [stdout]     |
[INFO] [stdout] 253 |     concesionario.agregar_auto(auto.clone());
[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] 253 |     let _ = concesionario.agregar_auto(auto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej1.rs:254:5
[INFO] [stdout]     |
[INFO] [stdout] 254 |     concesionario.agregar_auto(auto2);
[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] 254 |     let _ = concesionario.agregar_auto(auto2);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej1.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     concesionario.agregar_auto(auto);
[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] 284 |     let _ = concesionario.agregar_auto(auto);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej1.rs:285:5
[INFO] [stdout]     |
[INFO] [stdout] 285 |     concesionario.agregar_auto(auto2.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] 285 |     let _ = concesionario.agregar_auto(auto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej1.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     concesionario.eliminar_auto(auto2);
[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] 286 |     let _ = concesionario.eliminar_auto(auto2);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     playlist.agregar_cancion(cancion.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] 227 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 |     playlist.eliminar_todas_las_canciones();
[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] 228 |     let _ = playlist.eliminar_todas_las_canciones();
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 238 |     playlist.modificar_titulo("Nuevo".to_string());
[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] 238 |     let _ = playlist.modificar_titulo("Nuevo".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     playlist.agregar_cancion(cancion.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] 260 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     playlist.agregar_cancion(cancion2.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] 261 |     let _ = playlist.agregar_cancion(cancion2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     playlist.agregar_cancion(cancion.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] 284 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:285:5
[INFO] [stdout]     |
[INFO] [stdout] 285 |     playlist.agregar_cancion(cancion2.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] 285 |     let _ = playlist.agregar_cancion(cancion2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 308 |     playlist.agregar_cancion(cancion.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] 308 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 |     playlist.agregar_cancion(cancion.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] 332 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 333 |     playlist.agregar_cancion(cancion2.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] 333 |     let _ = playlist.agregar_cancion(cancion2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:334:5
[INFO] [stdout]     |
[INFO] [stdout] 334 |     playlist.mover_cancion(cancion.clone(), 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] 334 |     let _ = playlist.mover_cancion(cancion.clone(), 1);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:355:5
[INFO] [stdout]     |
[INFO] [stdout] 355 |     playlist.agregar_cancion(cancion.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] 355 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:356:5
[INFO] [stdout]     |
[INFO] [stdout] 356 |     playlist.eliminar_cancion_por_nombre(cancion);
[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] 356 |     let _ = playlist.eliminar_cancion_por_nombre(cancion);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej2.rs:381:5
[INFO] [stdout]     |
[INFO] [stdout] 381 |     playlist.agregar_cancion(cancion.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] 381 |     let _ = playlist.agregar_cancion(cancion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     veterinaria.registrar_atencion(atencion.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] 288 |     let _ = veterinaria.registrar_atencion(atencion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     veterinaria.eliminar_atencion(atencion.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] 289 |     let _ = veterinaria.eliminar_atencion(atencion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:320:5
[INFO] [stdout]     |
[INFO] [stdout] 320 |     veterinaria.registrar_atencion(atencion.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] 320 |     let _ = veterinaria.registrar_atencion(atencion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     veterinaria.modificar_fecha(&atencion, Some(Fecha::new(2, 2, 2024)));
[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] 321 |     let _ = veterinaria.modificar_fecha(&atencion, Some(Fecha::new(2, 2, 2024)));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:357:5
[INFO] [stdout]     |
[INFO] [stdout] 357 |     veterinaria.registrar_atencion(atencion.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] 357 |     let _ = veterinaria.registrar_atencion(atencion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 358 |     veterinaria.modificar_diagnostico(&atencion, "Nuevo Diagnostico".to_string());
[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] 358 |     let _ = veterinaria.modificar_diagnostico(&atencion, "Nuevo Diagnostico".to_string());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     veterinaria.registrar_atencion(atencion.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] 394 |     let _ = veterinaria.registrar_atencion(atencion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej3.rs:427:5
[INFO] [stdout]     |
[INFO] [stdout] 427 |     veterinaria.registrar_atencion(atencion.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] 427 |     let _ = veterinaria.registrar_atencion(atencion.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej4.rs:217:13
[INFO] [stdout]     |
[INFO] [stdout] 217 |             self.decrementar_copias(&libro);
[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] 217 |             let _ = self.decrementar_copias(&libro);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej4.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 self.incrementar_copias(libro);
[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] 263 |                 let _ = self.incrementar_copias(libro);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej4.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 389 |     biblioteca.decrementar_copias(&libro);
[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] 389 |     let _ = biblioteca.decrementar_copias(&libro);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej4.rs:417:5
[INFO] [stdout]     |
[INFO] [stdout] 417 |     biblioteca.incrementar_copias(&libro);
[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] 417 |     let _ = biblioteca.incrementar_copias(&libro);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 315 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 316 |         transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 316 |         let _ = transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 317 |         let _ = transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 318 |         let _ = transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 319 |         transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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 _ = transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:320:9
[INFO] [stdout]     |
[INFO] [stdout] 320 |         transmision.cancelar_suscripcion(4);
[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] 320 |         let _ = transmision.cancelar_suscripcion(4);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:321:9
[INFO] [stdout]     |
[INFO] [stdout] 321 |         transmision.cancelar_suscripcion(5);
[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] 321 |         let _ = transmision.cancelar_suscripcion(5);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:331:9
[INFO] [stdout]     |
[INFO] [stdout] 331 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 331 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |         transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 332 |         let _ = transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |         transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 333 |         let _ = transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 334 | ...   transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "777".to_string() });
[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] 334 |         let _ = transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "777".to_string() });
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:335:9
[INFO] [stdout]     |
[INFO] [stdout] 335 | ...   transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "123".to_string() });
[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] 335 |         let _ = transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "123".to_string() });
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:336:9
[INFO] [stdout]     |
[INFO] [stdout] 336 |         transmision.cancelar_suscripcion(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] 336 |         let _ = transmision.cancelar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         transmision.cancelar_suscripcion(2);
[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] 337 |         let _ = transmision.cancelar_suscripcion(2);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:345:9
[INFO] [stdout]     |
[INFO] [stdout] 345 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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 _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |         transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 346 |         let _ = transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |         transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 347 |         let _ = transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |         transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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 _ = transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:349:9
[INFO] [stdout]     |
[INFO] [stdout] 349 |         transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 349 |         let _ = transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:350:9
[INFO] [stdout]     |
[INFO] [stdout] 350 |         transmision.cancelar_suscripcion(4);
[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] 350 |         let _ = transmision.cancelar_suscripcion(4);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:351:9
[INFO] [stdout]     |
[INFO] [stdout] 351 |         transmision.cancelar_suscripcion(5);
[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] 351 |         let _ = transmision.cancelar_suscripcion(5);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:359:9
[INFO] [stdout]     |
[INFO] [stdout] 359 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 359 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:360:9
[INFO] [stdout]     |
[INFO] [stdout] 360 |         transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 360 |         let _ = transmision.crear_suscripcion(2, "Luffy".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 361 | ...   transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "10".to_string() });
[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] 361 |         let _ = transmision.crear_suscripcion(3, "Messi".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "10".to_string() });
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:362:9
[INFO] [stdout]     |
[INFO] [stdout] 362 | ...   transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "777".to_string() });
[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] 362 |         let _ = transmision.crear_suscripcion(4, "Vegeta".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "777".to_string() });
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...   transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "123".to_string() });
[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] 363 |         let _ = transmision.crear_suscripcion(5, "Kira".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::MercadoPago { id_cuenta: "123".to_string() });
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |         transmision.cancelar_suscripcion(4);
[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] 364 |         let _ = transmision.cancelar_suscripcion(4);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:365:9
[INFO] [stdout]     |
[INFO] [stdout] 365 |         transmision.cancelar_suscripcion(5);
[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] 365 |         let _ = transmision.cancelar_suscripcion(5);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:373:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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 _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:374:9
[INFO] [stdout]     |
[INFO] [stdout] 374 |         transmision.cancelar_suscripcion(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] 374 |         let _ = transmision.cancelar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 382 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         transmision.degradar_suscripcion(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] 383 |         let _ = transmision.degradar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:391:9
[INFO] [stdout]     |
[INFO] [stdout] 391 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 391 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:392:9
[INFO] [stdout]     |
[INFO] [stdout] 392 |         transmision.degradar_suscripcion(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] 392 |         let _ = transmision.degradar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:396:9
[INFO] [stdout]     |
[INFO] [stdout] 396 |         transmision.degradar_suscripcion(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] 396 |         let _ = transmision.degradar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 404 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[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] 404 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Premium, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:405:9
[INFO] [stdout]     |
[INFO] [stdout] 405 |         transmision.mejorar_suscripcion(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] 405 |         let _ = transmision.mejorar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:413:9
[INFO] [stdout]     |
[INFO] [stdout] 413 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 413 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:414:9
[INFO] [stdout]     |
[INFO] [stdout] 414 |         transmision.mejorar_suscripcion(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] 414 |         let _ = transmision.mejorar_suscripcion(1);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej5.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[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] 422 |         let _ = transmision.crear_suscripcion(1, "Tomas".to_string(), TipoSuscripcion::Basica, 3, MetodoPago::Efectivo);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:700:5
[INFO] [stdout]     |
[INFO] [stdout] 700 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.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] 700 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:701:5
[INFO] [stdout]     |
[INFO] [stdout] 701 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.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] 701 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:702:5
[INFO] [stdout]     |
[INFO] [stdout] 702 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.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] 702 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:703:5
[INFO] [stdout]     |
[INFO] [stdout] 703 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.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] 703 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:704:5
[INFO] [stdout]     |
[INFO] [stdout] 704 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.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] 704 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:727:5
[INFO] [stdout]     |
[INFO] [stdout] 727 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.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] 727 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:728:5
[INFO] [stdout]     |
[INFO] [stdout] 728 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.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] 728 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:729:5
[INFO] [stdout]     |
[INFO] [stdout] 729 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 729 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:730:5
[INFO] [stdout]     |
[INFO] [stdout] 730 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 730 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:731:5
[INFO] [stdout]     |
[INFO] [stdout] 731 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 731 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:754:5
[INFO] [stdout]     |
[INFO] [stdout] 754 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.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] 754 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:755:5
[INFO] [stdout]     |
[INFO] [stdout] 755 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.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] 755 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:756:5
[INFO] [stdout]     |
[INFO] [stdout] 756 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.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] 756 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:757:5
[INFO] [stdout]     |
[INFO] [stdout] 757 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.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] 757 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:758:5
[INFO] [stdout]     |
[INFO] [stdout] 758 |     plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.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] 758 |     let _ = plataforma.comprar_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:781:5
[INFO] [stdout]     |
[INFO] [stdout] 781 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.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] 781 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:782:5
[INFO] [stdout]     |
[INFO] [stdout] 782 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.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] 782 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto2.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:783:5
[INFO] [stdout]     |
[INFO] [stdout] 783 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 783 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:784:5
[INFO] [stdout]     |
[INFO] [stdout] 784 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 784 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:785:5
[INFO] [stdout]     |
[INFO] [stdout] 785 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 785 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:832:5
[INFO] [stdout]     |
[INFO] [stdout] 832 |     plataforma.recibir_cripto(usuario.clone(), 50.0, cripto.clone(), blockchain.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] 832 |     let _ = plataforma.recibir_cripto(usuario.clone(), 50.0, cripto.clone(), blockchain.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:859:5
[INFO] [stdout]     |
[INFO] [stdout] 859 |     plataforma.retirar_cripto(usuario.clone(), 50.0, cripto.clone(), blockchain.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] 859 |     let _ = plataforma.retirar_cripto(usuario.clone(), 50.0, cripto.clone(), blockchain.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:885:5
[INFO] [stdout]     |
[INFO] [stdout] 885 |     plataforma.vender_cripto(usuario.clone(), 50.0, cripto.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] 885 |     let _ = plataforma.vender_cripto(usuario.clone(), 50.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tp05/ej6.rs:911:5
[INFO] [stdout]     |
[INFO] [stdout] 911 |     plataforma.comprar_cripto(usuario.clone(), 100.0, cripto.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] 911 |     let _ = plataforma.comprar_cripto(usuario.clone(), 100.0, cripto.clone());
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/tp04/ej2.rs:38:74
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn mayor_y_menor_salario <'a> (v_personas: &'a Vec<Persona<'a>>) -> (Persona , Persona) {
[INFO] [stdout]    |                                                 --             --        ^^^^^^^   ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                 |              |         |
[INFO] [stdout]    |                                                 |              |         the same lifetime is hidden here
[INFO] [stdout]    |                                                 |              the lifetime is named here
[INFO] [stdout]    |                                                 the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn mayor_y_menor_salario <'a> (v_personas: &'a Vec<Persona<'a>>) -> (Persona<'a> , Persona<'a>) {
[INFO] [stdout]    |                                                                                 ++++          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.43s
[INFO] running `Command { std: "docker" "inspect" "7912d1e7385ed32083d721e9e7d2b608d521629e879748da386ced3d317c2bdc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7912d1e7385ed32083d721e9e7d2b608d521629e879748da386ced3d317c2bdc", kill_on_drop: false }`
[INFO] [stdout] 7912d1e7385ed32083d721e9e7d2b608d521629e879748da386ced3d317c2bdc
