[INFO] fetching crate RustyQLib 0.0.1...
[INFO] checking RustyQLib-0.0.1 against try#47af3d0de9d26c7deba4cfb203b710cc3f764e91 for pr-130443
[INFO] extracting crate RustyQLib 0.0.1 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate RustyQLib 0.0.1 on toolchain 47af3d0de9d26c7deba4cfb203b710cc3f764e91
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+47af3d0de9d26c7deba4cfb203b710cc3f764e91" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate RustyQLib 0.0.1
[INFO] finished tweaking crates.io crate RustyQLib 0.0.1
[INFO] tweaked toml for crates.io crate RustyQLib 0.0.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] crate crates.io crate RustyQLib 0.0.1 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" "+47af3d0de9d26c7deba4cfb203b710cc3f764e91" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+47af3d0de9d26c7deba4cfb203b710cc3f764e91" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6758ebc149f41e3b420980359c274589d6c63f93da7544692645a2a6782b9c1b
[INFO] running `Command { std: "docker" "start" "-a" "6758ebc149f41e3b420980359c274589d6c63f93da7544692645a2a6782b9c1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6758ebc149f41e3b420980359c274589d6c63f93da7544692645a2a6782b9c1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6758ebc149f41e3b420980359c274589d6c63f93da7544692645a2a6782b9c1b", kill_on_drop: false }`
[INFO] [stdout] 6758ebc149f41e3b420980359c274589d6c63f93da7544692645a2a6782b9c1b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+47af3d0de9d26c7deba4cfb203b710cc3f764e91" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d5b58741f0e06c86f86cefbf93e2642a3e3c065e10c87cfafcdcdf40b9753879
[INFO] running `Command { std: "docker" "start" "-a" "d5b58741f0e06c86f86cefbf93e2642a3e3c065e10c87cfafcdcdf40b9753879", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.67
[INFO] [stderr]    Compiling unicode-ident v1.0.5
[INFO] [stderr]    Compiling syn v1.0.102
[INFO] [stderr]    Compiling serde_derive v1.0.145
[INFO] [stderr]    Compiling libm v0.2.5
[INFO] [stderr]    Compiling serde v1.0.145
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling rustversion v1.0.14
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.99
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking regex-automata v0.1.10
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking random v0.12.2
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]     Checking iana-time-zone v0.1.51
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking strum v0.25.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling matrixmultiply v0.3.8
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.37
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking special v0.8.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking probability v0.18.0
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_pcg v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]    Compiling strum_macros v0.25.2
[INFO] [stderr]     Checking bstr v0.2.17
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking chrono v0.4.22
[INFO] [stderr]     Checking csv v1.1.6
[INFO] [stderr]     Checking RustyQLib v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SeedableRng`
[INFO] [stdout]  --> src/main.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::{SeedableRng};
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Datelike`, `Duration`, `Local`, `NaiveDate`, and `NaiveTime`
[INFO] [stdout]  --> src/main.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::{Local,DateTime,NaiveDate,NaiveTime,Datelike, Duration};
[INFO] [stdout]   |              ^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Standard` and `Uniform`
[INFO] [stdout]  --> src/main.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::distributions::{Standard,Uniform};
[INFO] [stdout]   |                           ^^^^^^^^ ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::Distribution`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::distributions::Distribution;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_distr::StandardNormal`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand_distr::StandardNormal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> src/equity/blackscholes.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use libm::{exp, log};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PI` and `SQRT_2`
[INFO] [stdout]  --> src/equity/blackscholes.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::{PI, SQRT_2};
[INFO] [stdout]   |                        ^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/equity/blackscholes.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{io, thread};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/equity/blackscholes.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/equity/vanila_option.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SeedableRng`
[INFO] [stdout]  --> src/main.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::{SeedableRng};
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Greeks`
[INFO] [stdout]  --> src/equity/vanila_option.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::super::core::traits::{Instrument,Greeks};
[INFO] [stdout]   |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/equity/montecarlo.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `N` and `dN`
[INFO] [stdout]  --> src/equity/montecarlo.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::utils::{ContractStyle,dN, N};
[INFO] [stdout]   |                                        ^^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Option`
[INFO] [stdout]   --> src/equity/montecarlo.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde::de::Unexpected::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Datelike`, `Duration`, `Local`, `NaiveDate`, and `NaiveTime`
[INFO] [stdout]  --> src/main.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chrono::{Local,DateTime,NaiveDate,NaiveTime,Datelike, Duration};
[INFO] [stdout]   |              ^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]  --> src/equity/binomial.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::utils::{Engine};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Standard` and `Uniform`
[INFO] [stdout]  --> src/main.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::distributions::{Standard,Uniform};
[INFO] [stdout]   |                           ^^^^^^^^ ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transection`
[INFO] [stdout]  --> src/equity/binomial.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::core::trade::{OptionType,Transection};
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::Distribution`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rand::distributions::Distribution;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Local` and `Weekday`
[INFO] [stdout]  --> src/equity/build_contracts.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{NaiveDate,Local,Weekday};
[INFO] [stdout]   |                        ^^^^^ ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand_distr::StandardNormal`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rand_distr::StandardNormal;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Datelike`
[INFO] [stdout]  --> src/equity/build_contracts.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::Datelike;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::trade`
[INFO] [stdout]  --> src/equity/build_contracts.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::trade;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::core::termstructure::YieldTermStructure`
[INFO] [stdout]  --> src/equity/build_contracts.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::super::core::termstructure::YieldTermStructure;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]  --> src/equity/blackscholes.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use libm::{exp, log};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rates::utils::TermStructure`
[INFO] [stdout]  --> src/equity/build_contracts.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::rates::utils::TermStructure;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PI` and `SQRT_2`
[INFO] [stdout]  --> src/equity/blackscholes.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::{PI, SQRT_2};
[INFO] [stdout]   |                        ^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::quotes::Quote`
[INFO] [stdout]   --> src/equity/build_contracts.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::core::quotes::Quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/equity/blackscholes.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{io, thread};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContractStyle`
[INFO] [stdout]   --> src/equity/build_contracts.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::core::utils::{Contract,ContractStyle};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/equity/blackscholes.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]   --> src/equity/build_contracts.rs:14:28
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::equity::utils::{Engine};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/equity/vanila_option.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/equity/vol_surface.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Greeks`
[INFO] [stdout]  --> src/equity/vanila_option.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::super::core::traits::{Instrument,Greeks};
[INFO] [stdout]   |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::termstructure::YieldTermStructure`
[INFO] [stdout]    --> src/equity/vanila_option.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |     use crate::core::termstructure::YieldTermStructure;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Local`, and `NaiveDate`
[INFO] [stdout]  --> src/core/termstructure.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::quotes::Quote`
[INFO] [stdout]    --> src/equity/vanila_option.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     use crate::core::quotes::Quote;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `exp` and `log`
[INFO] [stdout]  --> src/core/utils.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use libm::{exp, log};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]    --> src/equity/vanila_option.rs:150:18
[INFO] [stdout]     |
[INFO] [stdout] 150 |     use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Standard`
[INFO] [stdout]  --> src/utils/RNG.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::distributions::{Standard,Uniform};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/equity/montecarlo.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/utils/RNG.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Write; // bring trait into scope
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LittleEndian`
[INFO] [stdout]  --> src/utils/RNG.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use byteorder::{ByteOrder, LittleEndian,BigEndian};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `N` and `dN`
[INFO] [stdout]  --> src/equity/montecarlo.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::utils::{ContractStyle,dN, N};
[INFO] [stdout]   |                                        ^^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]   --> src/utils/RNG.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Unexpected::Option`
[INFO] [stdout]   --> src/equity/montecarlo.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde::de::Unexpected::Option;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/utils/RNG.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     while(true) {
[INFO] [stdout]    |          ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     while(true) {
[INFO] [stdout] 23 +     while true {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]  --> src/equity/binomial.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::utils::{Engine};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/utils/RNG.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     while(true) {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Transection`
[INFO] [stdout]  --> src/equity/binomial.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::core::trade::{OptionType,Transection};
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/utils/parse_json.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Local` and `Weekday`
[INFO] [stdout]  --> src/equity/build_contracts.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{NaiveDate,Local,Weekday};
[INFO] [stdout]   |                        ^^^^^ ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ByteOrder`, and `LittleEndian`
[INFO] [stdout]  --> src/utils/parse_json.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use byteorder::{ByteOrder, LittleEndian,BigEndian};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^ ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Datelike`
[INFO] [stdout]  --> src/equity/build_contracts.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::Datelike;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/utils/parse_json.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::trade`
[INFO] [stdout]  --> src/equity/build_contracts.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::trade;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]   --> src/utils/parse_json.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::equity::utils::{Engine};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::core::termstructure::YieldTermStructure`
[INFO] [stdout]  --> src/equity/build_contracts.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::super::core::termstructure::YieldTermStructure;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rates::utils::TermStructure`
[INFO] [stdout]  --> src/equity/build_contracts.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::rates::utils::TermStructure;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::quotes::Quote`
[INFO] [stdout]   --> src/equity/build_contracts.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::core::quotes::Quote;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CombinedContract`, `ContractOutput`, `EngineType`, and `OutputJson`
[INFO] [stdout]   --> src/utils/parse_json.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::core::utils::{CombinedContract, ContractOutput, Contracts, OutputJson,EngineType};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^             ^^^^^^^^^^ ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ContractStyle`
[INFO] [stdout]   --> src/equity/build_contracts.rs:13:35
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::core::utils::{Contract,ContractStyle};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::utils::ContractStyle`
[INFO] [stdout]   --> src/utils/parse_json.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::core::utils::ContractStyle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]   --> src/equity/build_contracts.rs:14:28
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::equity::utils::{Engine};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::temp_dir`
[INFO] [stdout]   --> src/utils/parse_json.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::env::temp_dir;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rates::deposits::Deposit`
[INFO] [stdout]   --> src/utils/parse_json.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::rates::deposits::Deposit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/equity/vol_surface.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `build_ir_contracts`
[INFO] [stdout]   --> src/utils/parse_json.rs:26:37
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::rates::build_contracts::{build_ir_contracts, build_ir_contracts_from_json, build_term_structure};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Local`, and `NaiveDate`
[INFO] [stdout]  --> src/core/termstructure.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^  ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Greeks`
[INFO] [stdout]  --> src/cmdty/cmdty_option.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::super::core::traits::{Instrument,Greeks};
[INFO] [stdout]   |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `exp` and `log`
[INFO] [stdout]  --> src/core/utils.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use libm::{exp, log};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `exp` and `log`
[INFO] [stdout]  --> src/cmdty/black76.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use libm::{exp, log};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Standard`
[INFO] [stdout]  --> src/utils/RNG.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::distributions::{Standard,Uniform};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PI` and `SQRT_2`
[INFO] [stdout]  --> src/cmdty/black76.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::{PI, SQRT_2};
[INFO] [stdout]   |                        ^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/utils/RNG.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Write; // bring trait into scope
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LittleEndian`
[INFO] [stdout]  --> src/utils/RNG.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use byteorder::{ByteOrder, LittleEndian,BigEndian};
[INFO] [stdout]   |                            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]  --> src/cmdty/black76.rs:6:39
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::cmdty_option::{CmdtyOption,Engine};
[INFO] [stdout]   |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]   --> src/utils/RNG.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::io::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::core::termstructure::YieldTermStructure`
[INFO] [stdout]  --> src/cmdty/black76.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::super::core::termstructure::YieldTermStructure;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/utils/RNG.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     while(true) {
[INFO] [stdout]    |          ^    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     while(true) {
[INFO] [stdout] 23 +     while true {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instrument`
[INFO] [stdout]  --> src/rates/deposits.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::core::traits::{Instrument,Rates};
[INFO] [stdout]   |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/utils/RNG.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     while(true) {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instrument`
[INFO] [stdout]  --> src/rates/fra.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::core::traits::{Instrument,Rates};
[INFO] [stdout]   |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/utils/parse_json.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NaiveDate` and `Weekday`
[INFO] [stdout]  --> src/rates/build_contracts.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::{NaiveDate,Local,Weekday};
[INFO] [stdout]   |              ^^^^^^^^^       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian`, `ByteOrder`, and `LittleEndian`
[INFO] [stdout]  --> src/utils/parse_json.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use byteorder::{ByteOrder, LittleEndian,BigEndian};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^^ ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Datelike`
[INFO] [stdout]  --> src/rates/build_contracts.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::Datelike;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Datelike`
[INFO] [stdout]  --> src/utils/parse_json.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{Datelike, Local, NaiveDate};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instrument`
[INFO] [stdout]  --> src/rates/build_contracts.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::traits::{Instrument,Rates};
[INFO] [stdout]   |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]   --> src/utils/parse_json.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::equity::utils::{Engine};
[INFO] [stdout]    |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Contracts`
[INFO] [stdout]  --> src/rates/build_contracts.rs:7:36
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::utils::{Contract, Contracts};
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CombinedContract`, `ContractOutput`, `EngineType`, and `OutputJson`
[INFO] [stdout]   --> src/utils/parse_json.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::core::utils::{CombinedContract, ContractOutput, Contracts, OutputJson,EngineType};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^             ^^^^^^^^^^ ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rand::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::utils::ContractStyle`
[INFO] [stdout]   --> src/utils/parse_json.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::core::utils::ContractStyle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env::temp_dir`
[INFO] [stdout]   --> src/utils/parse_json.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::env::temp_dir;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]   --> src/main.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::{io, thread};
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::rates::deposits::Deposit`
[INFO] [stdout]   --> src/utils/parse_json.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::rates::deposits::Deposit;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::error::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `build_ir_contracts`
[INFO] [stdout]   --> src/utils/parse_json.rs:26:37
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::rates::build_contracts::{build_ir_contracts, build_ir_contracts_from_json, build_term_structure};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `csv`
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use csv;
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Greeks`
[INFO] [stdout]  --> src/cmdty/cmdty_option.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::super::core::traits::{Instrument,Greeks};
[INFO] [stdout]   |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `exp` and `log`
[INFO] [stdout]  --> src/cmdty/black76.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use libm::{exp, log};
[INFO] [stdout]   |            ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PI` and `SQRT_2`
[INFO] [stdout]  --> src/cmdty/black76.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::{PI, SQRT_2};
[INFO] [stdout]   |                        ^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::read_csv`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use utils::read_csv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::RNG`
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use utils::RNG;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]  --> src/cmdty/black76.rs:6:39
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::cmdty_option::{CmdtyOption,Engine};
[INFO] [stdout]   |                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::core::termstructure::YieldTermStructure`
[INFO] [stdout]  --> src/cmdty/black76.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::super::core::termstructure::YieldTermStructure;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `args` and `temp_dir`
[INFO] [stdout]   --> src/main.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | use std::env::{args, temp_dir};
[INFO] [stdout]    |                ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ArgMatches`
[INFO] [stdout]   --> src/main.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 | use clap::{App, Arg, ArgMatches, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instrument`
[INFO] [stdout]  --> src/rates/deposits.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::core::traits::{Instrument,Rates};
[INFO] [stdout]   |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]   --> src/main.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use std::env;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instrument`
[INFO] [stdout]  --> src/rates/fra.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::core::traits::{Instrument,Rates};
[INFO] [stdout]   |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NaiveDate` and `Weekday`
[INFO] [stdout]  --> src/rates/build_contracts.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::{NaiveDate,Local,Weekday};
[INFO] [stdout]   |              ^^^^^^^^^       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Datelike`
[INFO] [stdout]  --> src/rates/build_contracts.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::Datelike;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instrument`
[INFO] [stdout]  --> src/rates/build_contracts.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::traits::{Instrument,Rates};
[INFO] [stdout]   |                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Contracts`
[INFO] [stdout]  --> src/rates/build_contracts.rs:7:36
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::utils::{Contract, Contracts};
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rand::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Read`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::io::Read;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]   --> src/main.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::{io, thread};
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]   --> src/main.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use std::error::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `csv`
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use csv;
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::read_csv`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use utils::read_csv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::RNG`
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use utils::RNG;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `args` and `temp_dir`
[INFO] [stdout]   --> src/main.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 | use std::env::{args, temp_dir};
[INFO] [stdout]    |                ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/main.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ArgMatches`
[INFO] [stdout]   --> src/main.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 | use clap::{App, Arg, ArgMatches, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]   --> src/main.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use std::env;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ByteOrder`
[INFO] [stdout]  --> src/utils/RNG.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use byteorder::{ByteOrder, LittleEndian,BigEndian};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ByteOrder`
[INFO] [stdout]  --> src/utils/RNG.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use byteorder::{ByteOrder, LittleEndian,BigEndian};
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/equity/blackscholes.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         for i in 0..100{
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/equity/blackscholes.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         for i in 0..100{
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/equity/blackscholes.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for i in 0..100{
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/equity/blackscholes.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for i in 0..100{
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]    --> src/equity/blackscholes.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let mut div1 = String::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]    --> src/equity/blackscholes.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let mut div1 = String::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/equity/blackscholes.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let mut div1 = String::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]    --> src/equity/blackscholes.rs:317:13
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let mut div1 = String::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/equity/blackscholes.rs:233:9
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let mut div1 = String::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]    --> src/equity/blackscholes.rs:317:13
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let mut div1 = String::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/equity/blackscholes.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let mut div1 = String::new();
[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/equity/blackscholes.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |     let mut div1 = String::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/equity/vanila_option.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |             _ => {
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/equity/vanila_option.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             Engine::BlackScholes => {
[INFO] [stdout]    |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 20 |             Engine::MonteCarlo => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 25 |             Engine::Binomial => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 30 |             _ => {
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/equity/vanila_option.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |             _ => {
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/equity/vanila_option.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |             Engine::BlackScholes => {
[INFO] [stdout]    |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 20 |             Engine::MonteCarlo => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 25 |             Engine::Binomial => {
[INFO] [stdout]    |             ---------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 30 |             _ => {
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `st` is never read
[INFO] [stdout]   --> src/equity/montecarlo.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut st = vec![];
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]    --> src/equity/montecarlo.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut div1 = String::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `st` is never read
[INFO] [stdout]   --> src/equity/montecarlo.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut st = vec![];
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/equity/montecarlo.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut div1 = String::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]    --> src/equity/montecarlo.rs:186:13
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut div1 = String::new();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/equity/binomial.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         _ => {
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/equity/binomial.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         ContractStyle::European => {
[INFO] [stdout]    |         ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 43 |         ContractStyle::American => {
[INFO] [stdout]    |         ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 54 |         _ => {
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spot_price_i`
[INFO] [stdout]   --> src/equity/binomial.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let spot_price_i =  option.current_price.value * u.powi(i as i32 - j as i32) * d.powi(j as i32);
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spot_price_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/equity/montecarlo.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut div1 = String::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/equity/binomial.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |         _ => {
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/equity/binomial.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         ContractStyle::European => {
[INFO] [stdout]    |         ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 43 |         ContractStyle::American => {
[INFO] [stdout]    |         ----------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 54 |         _ => {
[INFO] [stdout]    |         ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spot_price_i`
[INFO] [stdout]   --> src/equity/binomial.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     let spot_price_i =  option.current_price.value * u.powi(i as i32 - j as i32) * d.powi(j as i32);
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spot_price_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/equity/build_contracts.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut contract = contracts[i].as_mut();
[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/equity/build_contracts.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut contract = contracts[i].as_mut();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_date`
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maturity_date`
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:45
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maturity_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strike`
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:69
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_strike`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val_date`
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_val_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maturity_date`
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:45
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maturity_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strike`
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:69
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_strike`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `rn_vec` is never read
[INFO] [stdout]   --> src/utils/RNG.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut rn_vec:Vec<f64> = Vec::new();
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/utils/RNG.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             for i in 0..self.size{
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/utils/RNG.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     for i in 0..size_n{
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/utils/RNG.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for j in 0..size_m{
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `rn_vec` is never read
[INFO] [stdout]   --> src/utils/RNG.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut rn_vec:Vec<f64> = Vec::new();
[INFO] [stdout]    |                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/utils/RNG.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             for i in 0..self.size{
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/utils/parse_json.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut output: String = String::new();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/utils/RNG.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     for i in 0..size_n{
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/utils/RNG.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for j in 0..size_m{
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils/parse_json.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn build_curve(mut file: &mut File,output_filename: &str)->() {
[INFO] [stdout]    |                    ----^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/utils/parse_json.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut output: String = String::new();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils/parse_json.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut contracts:Vec<Box<EquityOption>> = build_eq_contracts_from_json(list_contracts.contracts);
[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/utils/parse_json.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut output: String = String::new();
[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/utils/parse_json.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut contracts:Vec<Box<dyn Rates>> = build_ir_contracts_from_json(list_contracts.contracts);
[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/utils/parse_json.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn parse_contract(mut file: &mut File,output_filename: &str) {
[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/utils/parse_json.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn build_curve(mut file: &mut File,output_filename: &str)->() {
[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/utils/parse_json.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut contracts:Vec<Box<EquityOption>> = build_eq_contracts_from_json(list_contracts.contracts);
[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/utils/parse_json.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut output: String = String::new();
[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/utils/parse_json.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut contracts:Vec<Box<dyn Rates>> = build_ir_contracts_from_json(list_contracts.contracts);
[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/utils/parse_json.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn parse_contract(mut file: &mut File,output_filename: &str) {
[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/utils/parse_json.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |             let mut option: CmdtyOption = CmdtyOption {
[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/utils/parse_json.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let mut start_date_str = rate_data.start_date; // Only for 0M case
[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/utils/parse_json.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut maturity_date_str = rate_data.maturity_date;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `notional`
[INFO] [stdout]   --> src/rates/deposits.rs:34:60
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->Deposit{
[INFO] [stdout]    |                                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notional`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_rate`
[INFO] [stdout]   --> src/rates/deposits.rs:34:75
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->Deposit{
[INFO] [stdout]    |                                                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fix_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils/parse_json.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |             let mut option: CmdtyOption = CmdtyOption {
[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/utils/parse_json.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let mut start_date_str = rate_data.start_date; // Only for 0M case
[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/utils/parse_json.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let mut maturity_date_str = rate_data.maturity_date;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `notional`
[INFO] [stdout]   --> src/rates/deposits.rs:34:60
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->Deposit{
[INFO] [stdout]    |                                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notional`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fix_rate`
[INFO] [stdout]   --> src/rates/deposits.rs:34:75
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->Deposit{
[INFO] [stdout]    |                                                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fix_rate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valuation_date`
[INFO] [stdout]    --> src/rates/utils.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 |     pub fn build_term_structure(&self,valuation_date:NaiveDate,deposits:Vec<Deposit>) -> TermStructure {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valuation_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rates/utils.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut term_structure = TermStructure::new(dates,discount_factor,rate,day_count);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valuation_date`
[INFO] [stdout]    --> src/rates/utils.rs:134:39
[INFO] [stdout]     |
[INFO] [stdout] 134 |     pub fn build_term_structure(&self,valuation_date:NaiveDate,deposits:Vec<Deposit>) -> TermStructure {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valuation_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rates/utils.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut term_structure = TermStructure::new(dates,discount_factor,rate,day_count);
[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/rates/build_contracts.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut start_date_str = rate_data.start_date; // Only for 0M case
[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/rates/build_contracts.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut maturity_date_str = rate_data.maturity_date;
[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/rates/build_contracts.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut ird:Box<dyn Rates> = Box::new(deposit);
[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/rates/build_contracts.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let mut contract = contracts[0].as_mut();
[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/rates/build_contracts.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut contract = contracts[i].as_mut();
[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/rates/build_contracts.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut start_date_str = rate_data.start_date; // Only for 0M case
[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/rates/build_contracts.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut maturity_date_str = rate_data.maturity_date;
[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/rates/build_contracts.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut ird:Box<dyn Rates> = Box::new(deposit);
[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/rates/build_contracts.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let mut contract = contracts[0].as_mut();
[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/rates/build_contracts.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut contract = contracts[i].as_mut();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |             let mut output_vec:Vec<String> = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transection` and `transection_price` are never read
[INFO] [stdout]   --> src/equity/vanila_option.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct EquityOption {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 39 |     pub option_type: OptionType,
[INFO] [stdout] 40 |     pub transection: Transection,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub transection_price: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EquityOption` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_vol` and `get_year_fraction` are never used
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl VolSurface {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_year_fraction(&self,val_date:NaiveDate,maturity_date:NaiveDate) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `y_vec` is never read
[INFO] [stdout]  --> src/core/interpolation.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CubicSpline<'a>{
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 6 |     pub x_vec : &'a Vec<f64>,
[INFO] [stdout] 7 |     pub y_vec : &'a Vec<f64>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `x` is never read
[INFO] [stdout]   --> src/core/interpolation.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SplineSet{
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     x:f64,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bid`, `ask`, and `mid` are never read
[INFO] [stdout]  --> src/core/quotes.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Quote{
[INFO] [stdout]   |            ----- fields in this struct
[INFO] [stdout] 3 |     pub value: f64,
[INFO] [stdout] 4 |     pub bid: f64,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 5 |     pub ask: f64,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 6 |     pub mid: f64,
[INFO] [stdout]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Quote` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `valid_value` is never used
[INFO] [stdout]   --> src/core/quotes.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl Quote{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn valid_value(&self) -> bool { self.value>0.0}
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_implied_rates` and `get_day_count` are never used
[INFO] [stdout]   --> src/core/traits.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait Rates {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 18 |     fn get_implied_rates(&self) -> f64;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn get_day_count(&self) -> &DayCountConvention;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Observer` is never used
[INFO] [stdout]   --> src/core/traits.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait Observer{
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Observable` is never used
[INFO] [stdout]   --> src/core/traits.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait Observable{
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Sell` is never constructed
[INFO] [stdout]  --> src/core/trade.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum Transection {
[INFO] [stdout]   |          ----------- variant in this enum
[INFO] [stdout] 3 |     Buy,
[INFO] [stdout] 4 |     Sell,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Transection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Straddle` is never constructed
[INFO] [stdout]   --> src/core/trade.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum OptionType {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Straddle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OptionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Analytical`, `MonteCarlo`, `Binomial`, `FiniteDifference`, and `FFT` are never constructed
[INFO] [stdout]   --> src/core/utils.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum EngineType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 17 |     Analytical,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 18 |     MonteCarlo,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 19 |     Binomial,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     FiniteDifference,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     FFT,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/core/utils.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl EngineType {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 24 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_ts` is never used
[INFO] [stdout]  --> src/utils/read_csv.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn read_ts(path: &str){
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_standard_normal_marsaglia_polar` is never used
[INFO] [stdout]   --> src/utils/RNG.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn generate_standard_normal_marsaglia_polar() -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_standard_normal_box` is never used
[INFO] [stdout]   --> src/utils/RNG.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn generate_standard_normal_box() -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dimentation` and `standard_normal_matrix` are never read
[INFO] [stdout]   --> src/utils/RNG.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct MonteCarloSimulation{
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub dimentation: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub standard_normal_matrix: Vec<Vec<f64>>
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StochasticProcess` is never used
[INFO] [stdout]  --> src/utils/stochastic_processes.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait StochasticProcess{
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MonteCarlo` is never constructed
[INFO] [stdout]  --> src/cmdty/cmdty_option.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Engine{
[INFO] [stdout]   |          ------ variant in this enum
[INFO] [stdout] 8 |     Black76,
[INFO] [stdout] 9 |     MonteCarlo
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |             let mut output_vec:Vec<String> = Vec::new();
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transection`, `time_to_future_maturity`, `term_structure`, `risk_free_rate`, `transection_price`, and `simulation` are never read
[INFO] [stdout]   --> src/cmdty/cmdty_option.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CmdtyOption {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     pub option_type: trade::OptionType,
[INFO] [stdout] 15 |     pub transection: trade::Transection,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub time_to_future_maturity: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub term_structure: YieldTermStructure<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub risk_free_rate: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub transection_price: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub engine: Engine,
[INFO] [stdout] 25 |     pub simulation:Option<u64>
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_risk_free_rate` and `get_premium_at_risk` are never used
[INFO] [stdout]   --> src/cmdty/black76.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl CmdtyOption {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 30 |     pub fn set_risk_free_rate(&mut self){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_premium_at_risk(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `notional` and `business_day_adjustment` are never read
[INFO] [stdout]   --> src/rates/deposits.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Deposit {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub notional: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub business_day_adjustment: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/rates/deposits.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout] 19  | impl Deposit {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 20  |     pub fn new(start_date: NaiveDate, maturity_date: NaiveDate, valuation_date: NaiveDate,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->Deposit{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     pub fn get_start_date(&self) -> NaiveDate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn get_notional(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn get_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75  |     pub fn get_business_day_adjustment(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn get_remaining_interest_amount(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn get_value(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_pv(&self,curve:&TermStructure) -> f64 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_weekend` is never used
[INFO] [stdout]  --> src/rates/utils.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn is_weekend(date: NaiveDate) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_year_fraction` is never used
[INFO] [stdout]   --> src/rates/utils.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl DayCountConvention{
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_year_fraction(&self,start_date:NaiveDate,maturity_date:NaiveDate) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rates` and `build_term_structure` are never used
[INFO] [stdout]    --> src/rates/utils.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 75  | impl TermStructure {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn rates(&self,val_date:NaiveDate) -> Vec<f64> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn build_term_structure(&self,valuation_date:NaiveDate,deposits:Vec<Deposit>) -> TermStructure {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `notional`, `currency`, and `business_day_adjustment` are never read
[INFO] [stdout]   --> src/rates/fra.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct FRA {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub notional: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 18 |     pub currency: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub business_day_adjustment: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `builder` are never used
[INFO] [stdout]   --> src/rates/fra.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl FRA {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 25 |     pub fn new(start_date: NaiveDate, maturity_date: NaiveDate, valuation_date: NaiveDate,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->FRA{
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/equity/montecarlo.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let M = 1000;
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `m`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/equity/montecarlo.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let N = 10000;
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dN` should have a snake case name
[INFO] [stdout]   --> src/core/utils.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn dN(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `d_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `N` should have a snake case name
[INFO] [stdout]    --> src/core/utils.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn N(x: f64) -> f64 {
[INFO] [stdout]     |        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `RNG` should have a snake case name
[INFO] [stdout]  --> src/utils/mod.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod RNG;
[INFO] [stdout]   |         ^^^ help: convert the identifier to snake case: `rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut X = 0.0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Y` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut Y = 0.0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `transection_price` is never read
[INFO] [stdout]   --> src/equity/vanila_option.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct EquityOption {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub transection_price: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EquityOption` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut S = 0.0f64;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_vol` and `get_year_fraction` are never used
[INFO] [stdout]   --> src/equity/vol_surface.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl VolSurface {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_vol(&self,val_date:NaiveDate,maturity_date:NaiveDate,strike:f64)-> f64{
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_year_fraction(&self,val_date:NaiveDate,maturity_date:NaiveDate) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `I` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let I = ((-2.0 * S.ln()) / S).sqrt();
[INFO] [stdout]    |         ^ help: convert the identifier to snake case (notice the capitalization): `i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `y_vec` is never read
[INFO] [stdout]  --> src/core/interpolation.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CubicSpline<'a>{
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 6 |     pub x_vec : &'a Vec<f64>,
[INFO] [stdout] 7 |     pub y_vec : &'a Vec<f64>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `x` is never read
[INFO] [stdout]   --> src/core/interpolation.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SplineSet{
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     x:f64,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bid`, `ask`, and `mid` are never read
[INFO] [stdout]  --> src/core/quotes.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Quote{
[INFO] [stdout]   |            ----- fields in this struct
[INFO] [stdout] 3 |     pub value: f64,
[INFO] [stdout] 4 |     pub bid: f64,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 5 |     pub ask: f64,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 6 |     pub mid: f64,
[INFO] [stdout]   |         ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Quote` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `valid_value` is never used
[INFO] [stdout]   --> src/core/quotes.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl Quote{
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn valid_value(&self) -> bool { self.value>0.0}
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_implied_rates` and `get_day_count` are never used
[INFO] [stdout]   --> src/core/traits.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait Rates {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 18 |     fn get_implied_rates(&self) -> f64;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn get_day_count(&self) -> &DayCountConvention;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Observer` is never used
[INFO] [stdout]   --> src/core/traits.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub trait Observer{
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Observable` is never used
[INFO] [stdout]   --> src/core/traits.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait Observable{
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Sell` is never constructed
[INFO] [stdout]  --> src/core/trade.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum Transection {
[INFO] [stdout]   |          ----------- variant in this enum
[INFO] [stdout] 3 |     Buy,
[INFO] [stdout] 4 |     Sell,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Transection` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Straddle` is never constructed
[INFO] [stdout]   --> src/core/trade.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum OptionType {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Straddle,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OptionType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Analytical`, `MonteCarlo`, `Binomial`, `FiniteDifference`, and `FFT` are never constructed
[INFO] [stdout]   --> src/core/utils.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum EngineType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 17 |     Analytical,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 18 |     MonteCarlo,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 19 |     Binomial,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     FiniteDifference,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     FFT,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/core/utils.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl EngineType {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 24 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_ts` is never used
[INFO] [stdout]  --> src/utils/read_csv.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn read_ts(path: &str){
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_standard_normal_marsaglia_polar` is never used
[INFO] [stdout]   --> src/utils/RNG.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn generate_standard_normal_marsaglia_polar() -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_standard_normal_box` is never used
[INFO] [stdout]   --> src/utils/RNG.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn generate_standard_normal_box() -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dimentation` and `standard_normal_matrix` are never read
[INFO] [stdout]   --> src/utils/RNG.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct MonteCarloSimulation{
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub dimentation: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub standard_normal_matrix: Vec<Vec<f64>>
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StochasticProcess` is never used
[INFO] [stdout]  --> src/utils/stochastic_processes.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait StochasticProcess{
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MonteCarlo` is never constructed
[INFO] [stdout]  --> src/cmdty/cmdty_option.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Engine{
[INFO] [stdout]   |          ------ variant in this enum
[INFO] [stdout] 8 |     Black76,
[INFO] [stdout] 9 |     MonteCarlo
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transection`, `time_to_future_maturity`, `term_structure`, `risk_free_rate`, `transection_price`, and `simulation` are never read
[INFO] [stdout]   --> src/cmdty/cmdty_option.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CmdtyOption {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     pub option_type: trade::OptionType,
[INFO] [stdout] 15 |     pub transection: trade::Transection,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub time_to_future_maturity: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub term_structure: YieldTermStructure<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub risk_free_rate: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub transection_price: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub engine: Engine,
[INFO] [stdout] 25 |     pub simulation:Option<u64>
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_risk_free_rate` and `get_premium_at_risk` are never used
[INFO] [stdout]   --> src/cmdty/black76.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl CmdtyOption {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 30 |     pub fn set_risk_free_rate(&mut self){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn get_premium_at_risk(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `notional` and `business_day_adjustment` are never read
[INFO] [stdout]   --> src/rates/deposits.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Deposit {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub notional: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub business_day_adjustment: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/rates/deposits.rs:20:12
[INFO] [stdout]     |
[INFO] [stdout] 19  | impl Deposit {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 20  |     pub fn new(start_date: NaiveDate, maturity_date: NaiveDate, valuation_date: NaiveDate,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34  |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->Deposit{
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63  |     pub fn get_start_date(&self) -> NaiveDate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     pub fn get_notional(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     pub fn get_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75  |     pub fn get_business_day_adjustment(&self) -> i8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88  |     pub fn get_remaining_interest_amount(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn get_value(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_pv(&self,curve:&TermStructure) -> f64 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_weekend` is never used
[INFO] [stdout]  --> src/rates/utils.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn is_weekend(date: NaiveDate) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_year_fraction` is never used
[INFO] [stdout]   --> src/rates/utils.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl DayCountConvention{
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_year_fraction(&self,start_date:NaiveDate,maturity_date:NaiveDate) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rates` and `build_term_structure` are never used
[INFO] [stdout]    --> src/rates/utils.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 75  | impl TermStructure {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn rates(&self,val_date:NaiveDate) -> Vec<f64> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn build_term_structure(&self,valuation_date:NaiveDate,deposits:Vec<Deposit>) -> TermStructure {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `notional`, `currency`, and `business_day_adjustment` are never read
[INFO] [stdout]   --> src/rates/fra.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct FRA {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub notional: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 18 |     pub currency: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub business_day_adjustment: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `builder` are never used
[INFO] [stdout]   --> src/rates/fra.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl FRA {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 25 |     pub fn new(start_date: NaiveDate, maturity_date: NaiveDate, valuation_date: NaiveDate,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn builder(start_date: String,maturity_date:String,notional: f64, fix_rate: f64,day_count: String) ->FRA{
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]   --> src/equity/montecarlo.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let M = 1000;
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `m`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/equity/montecarlo.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let N = 10000;
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dN` should have a snake case name
[INFO] [stdout]   --> src/core/utils.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn dN(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `d_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `N` should have a snake case name
[INFO] [stdout]    --> src/core/utils.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn N(x: f64) -> f64 {
[INFO] [stdout]     |        ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `RNG` should have a snake case name
[INFO] [stdout]  --> src/utils/mod.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod RNG;
[INFO] [stdout]   |         ^^^ help: convert the identifier to snake case: `rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `X` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut X = 0.0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Y` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut Y = 0.0;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut S = 0.0f64;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `I` should have a snake case name
[INFO] [stdout]   --> src/utils/RNG.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let I = ((-2.0 * S.ln()) / S).sqrt();
[INFO] [stdout]    |         ^ help: convert the identifier to snake case (notice the capitalization): `i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 143 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 146 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.81s
[INFO] running `Command { std: "docker" "inspect" "d5b58741f0e06c86f86cefbf93e2642a3e3c065e10c87cfafcdcdf40b9753879", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d5b58741f0e06c86f86cefbf93e2642a3e3c065e10c87cfafcdcdf40b9753879", kill_on_drop: false }`
[INFO] [stdout] d5b58741f0e06c86f86cefbf93e2642a3e3c065e10c87cfafcdcdf40b9753879
