[INFO] cloning repository https://github.com/latachz/apollo-rust-exercises
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/latachz/apollo-rust-exercises" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatachz%2Fapollo-rust-exercises", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatachz%2Fapollo-rust-exercises'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ed067a3bb834164676a244d92f6990014ca76367
[INFO] checking latachz/apollo-rust-exercises against 65b20a97de33e9e59992793a144aef2950c48c76 for pr-154715
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatachz%2Fapollo-rust-exercises" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/latachz/apollo-rust-exercises
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/latachz/apollo-rust-exercises
[INFO] tweaked toml for git repo https://github.com/latachz/apollo-rust-exercises written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/latachz/apollo-rust-exercises on toolchain 65b20a97de33e9e59992793a144aef2950c48c76
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/latachz/apollo-rust-exercises 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" "+65b20a97de33e9e59992793a144aef2950c48c76" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking latachz/apollo-rust-exercises against 65b20a97de33e9e59992793a144aef2950c48c76 for pr-154715
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flatachz%2Fapollo-rust-exercises" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/latachz/apollo-rust-exercises
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/latachz/apollo-rust-exercises
[INFO] tweaked toml for git repo https://github.com/latachz/apollo-rust-exercises written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/latachz/apollo-rust-exercises on toolchain 65b20a97de33e9e59992793a144aef2950c48c76
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/latachz/apollo-rust-exercises 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" "+65b20a97de33e9e59992793a144aef2950c48c76" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081
[INFO] running `Command { std: "docker" "start" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081" "/opt/rustwide/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081" "/opt/rustwide/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking apollo-rust-exercises v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex03_coordinates.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EPSILON` and `MU_MOON`
[INFO] [stdout]   --> src/exercises/ex04_orbital_elements.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::helpers::{MU_MOON, EPSILON};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_ITERATIONS` and `TWO_PI`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::helpers::{DEFAULT_TOLERANCE, MAX_ITERATIONS, TWO_PI};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OrbitalElements`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::ex04_orbital_elements::{OrbitalElements, StateVector};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `eccentric_to_true_anomaly`, `solve_kepler`, and `true_to_mean_anomaly`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:18:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | use super::ex05_keplers_equation::{solve_kepler, eccentric_to_true_anomaly, true_to_mean_anomaly};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MU_MOON` and `TWO_PI`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:19:22
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::helpers::{MU_MOON, TWO_PI};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EPSILON` and `TWO_PI`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::helpers::{TWO_PI, EPSILON};
[INFO] [stdout]    |                      ^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ex04_orbital_elements::StateVector`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::ex04_orbital_elements::StateVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_TOLERANCE`, `EPSILON`, `MAX_ITERATIONS`, and `TWO_PI`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::helpers::{DEFAULT_TOLERANCE, MAX_ITERATIONS, TWO_PI, EPSILON};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LUNAR_GRAVITY`
[INFO] [stdout]   --> src/exercises/ex09_guidance_equations.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::helpers::{LUNAR_GRAVITY, MOON_RADIUS};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::ops::{Add, Mul, Neg};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ex01_vectors::Vector3D`
[INFO] [stdout]   --> src/exercises/ex11_gimbal_lock.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::ex01_vectors::Vector3D;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex11_gimbal_lock.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ex04_orbital_elements::StateVector`
[INFO] [stdout]   --> src/exercises/ex12_landing_simulation.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use super::ex04_orbital_elements::StateVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GuidanceCommand`, `GuidanceState`, and `compute_guidance_command`
[INFO] [stdout]   --> src/exercises/ex12_landing_simulation.rs:22:38
[INFO] [stdout]    |
[INFO] [stdout] 22 | use super::ex09_guidance_equations::{GuidanceState, GuidanceCommand, compute_guidance_command};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:31:56
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn calculate_distance(velocity: f64, time: f64) -> f64 {
[INFO] [stdout]    |        ------------------                              ^^^ expected `f64`, found `()`
[INFO] [stdout]    |        |
[INFO] [stdout]    |        implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] ...
[INFO] [stdout] 34 |     velocity * time;
[INFO] [stdout]    |                    - help: remove this semicolon to return this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:73:33
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     match current {
[INFO] [stdout] 68 | |         MissionPhase::Launch => Some(MissionPhase::TranslunarInjection),
[INFO] [stdout] 69 | |         MissionPhase::TranslunarInjection => Some(MissionPhase::LunarOrbit),
[INFO] [stdout] 70 | |         MissionPhase::LunarOrbit => Some(MissionPhase::Descent),
[INFO] [stdout] 71 | |         MissionPhase::Descent => Some(MissionPhase::Surface),
[INFO] [stdout] 72 | |         MissionPhase::Surface => Some(MissionPhase::Ascent),
[INFO] [stdout]    | |                                  -------------------------- this and all prior arms are found to be of type `Option<MissionPhase>`
[INFO] [stdout] 73 | |         MissionPhase::Ascent => MissionPhase::Return,  // Oops!
[INFO] [stdout]    | |                                 ^^^^^^^^^^^^^^^^^^^^ expected `Option<MissionPhase>`, found `MissionPhase`
[INFO] [stdout] 74 | |         MissionPhase::Return => None, // Mission complete!
[INFO] [stdout] 75 | |     }
[INFO] [stdout]    | |_____- `match` arms have incompatible types
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<MissionPhase>`
[INFO] [stdout]               found enum `MissionPhase`
[INFO] [stdout] help: try wrapping the expression in `Some`
[INFO] [stdout]    |
[INFO] [stdout] 73 |         MissionPhase::Ascent => Some(MissionPhase::Return),  // Oops!
[INFO] [stdout]    |                                 +++++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&_` not covered
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 |     match engine {
[INFO] [stdout]    |           ^^^^^^ pattern `&_` not covered
[INFO] [stdout]    |
[INFO] [stdout]    = note: the matched value is of type `&str`
[INFO] [stdout]    = note: `&str` cannot be matched exhaustively, so a wildcard `_` is necessary
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 46 ~         "APS" => 16000.0,
[INFO] [stdout] 47 ~         &_ => todo!(),    // Ascent Propulsion System: 16 kN
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `result`
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let result = 0.0;
[INFO] [stdout]    |         ------ first assignment to `result`
[INFO] [stdout] 84 |     result = final_velocity - initial_velocity;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]    |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut result = 0.0;
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let result = 0.0;
[INFO] [stdout]    |                  ^^^ this value is reassigned later and never used
[INFO] [stdout] 84 |     result = final_velocity - initial_velocity;
[INFO] [stdout]    |     ------------------------------------------ `result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/exercises/ex01_vectors.rs:83:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub fn dot(&self, other: &Vector3D) -> f64 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn cross(&self, other: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scalar`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |     pub fn scale(&self, scalar: f64) -> Vector3D {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scalar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:171:28
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn angle_to(&self, other: &Vector3D) -> f64 {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:183:18
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn add(self, other: Vector3D) -> Vector3D {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:192:18
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn sub(self, other: Vector3D) -> Vector3D {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:116:35
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn multiply_vector(&self, v: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:132:28
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn multiply(&self, other: &Matrix3x3) -> Matrix3x3 {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:172:23
[INFO] [stdout]     |
[INFO] [stdout] 172 |     pub fn add(&self, other: &Matrix3x3) -> Matrix3x3 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn sub(&self, other: &Matrix3x3) -> Matrix3x3 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scalar`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:184:25
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub fn scale(&self, scalar: f64) -> Matrix3x3 {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scalar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]   --> src/exercises/ex03_coordinates.rs:92:31
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn cartesian_to_spherical(position: &Vector3D) -> Option<SphericalCoord> {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coords`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:119:31
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn spherical_to_cartesian(coords: &SphericalCoord) -> Vector3D {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_coords`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coord1`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn great_circle_distance(coord1: &SphericalCoord, coord2: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_coord1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coord2`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:142:55
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn great_circle_distance(coord1: &SphericalCoord, coord2: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_coord2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:162:16
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn bearing(from: &SphericalCoord, to: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn bearing(from: &SphericalCoord, to: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lon`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:173:28
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn normalize_longitude(lon: f64) -> f64 {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_lon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lat`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:183:27
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn normalize_latitude(lat: f64, lon: f64) -> (f64, f64) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_lat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lon`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:183:37
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn normalize_latitude(lat: f64, lon: f64) -> (f64, f64) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_lon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex04_orbital_elements.rs:82:26
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn period(&self, mu: f64) -> f64 {
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex04_orbital_elements.rs:92:35
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn specific_energy(&self, mu: f64) -> f64 {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:121:26
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn state_to_elements(state: &StateVector, mu: f64) -> OrbitalElements {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:121:47
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn state_to_elements(state: &StateVector, mu: f64) -> OrbitalElements {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elements`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn elements_to_state(elements: &OrbitalElements, mu: f64) -> StateVector {
[INFO] [stdout]     |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:145:54
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn elements_to_state(elements: &OrbitalElements, mu: f64) -> StateVector {
[INFO] [stdout]     |                                                      ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn vis_viva_velocity(r: f64, a: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:164:34
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn vis_viva_velocity(r: f64, a: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:164:42
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn vis_viva_velocity(r: f64, a: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                          ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:171:26
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn circular_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:171:34
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn circular_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:178:24
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn escape_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn escape_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_anomaly`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     mean_anomaly: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EPSILON`
[INFO] [stdout]   --> src/exercises/ex04_orbital_elements.rs:17:31
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::helpers::{MU_MOON, EPSILON};
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     eccentricity: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:187:9
[INFO] [stdout]     |
[INFO] [stdout] 187 |     use std::f64::consts::PI;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_ITERATIONS` and `TWO_PI`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::helpers::{DEFAULT_TOLERANCE, MAX_ITERATIONS, TWO_PI};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     tolerance: f64,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OrbitalElements`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::ex04_orbital_elements::{OrbitalElements, StateVector};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentric_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:103:34
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn eccentric_to_true_anomaly(eccentric_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentric_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:103:58
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn eccentric_to_true_anomaly(eccentric_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `eccentric_to_true_anomaly`, `solve_kepler`, and `true_to_mean_anomaly`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:18:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | use super::ex05_keplers_equation::{solve_kepler, eccentric_to_true_anomaly, true_to_mean_anomaly};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:124:34
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn true_to_eccentric_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use std::f64::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:124:53
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn true_to_eccentric_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:139:29
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn true_to_mean_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EPSILON`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::helpers::{TWO_PI, EPSILON};
[INFO] [stdout]    |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:139:48
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn true_to_mean_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ex04_orbital_elements::StateVector`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use super::ex04_orbital_elements::StateVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     mean_anomaly: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     eccentricity: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_TOLERANCE`, `EPSILON`, and `MAX_ITERATIONS`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:17:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::helpers::{DEFAULT_TOLERANCE, MAX_ITERATIONS, TWO_PI, EPSILON};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     tolerance: f64,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     f: F,
[INFO] [stdout]     |     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `df`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 185 |     df: DF,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_guess`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     initial_guess: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_guess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     tolerance: f64,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_iter`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     max_iter: usize,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn propagate_kepler(initial: &StateVector, delta_t: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_t`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn propagate_kepler(initial: &StateVector, delta_t: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:37:62
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn propagate_kepler(initial: &StateVector, delta_t: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn state_derivative(state: &StateVector, mu: f64) -> StateVector {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:60:46
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn state_derivative(state: &StateVector, mu: f64) -> StateVector {
[INFO] [stdout]    |                                              ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_t`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:47
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:61
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                             ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:70
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:22
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_t`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:45
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:59
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                           ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:68
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:106:26
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn period_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn period_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:114:26
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn energy_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:114:47
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn energy_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn angular_momentum(state: &StateVector) -> Vector3D {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_state(state: &StateVector, mu: f64) -> Self {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:59:44
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_state(state: &StateVector, mu: f64) -> Self {
[INFO] [stdout]    |                                            ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:79:37
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn radius_at_anomaly(&self, true_anomaly: f64) -> f64 {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:86:38
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn velocity_at_radius(&self, radius: f64) -> f64 {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu1`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:103:34
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn time_of_flight(&self, nu1: f64, nu2: f64) -> f64 {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_nu1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu2`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:103:44
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn time_of_flight(&self, nu1: f64, nu2: f64) -> f64 {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_nu2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:117:40
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn true_anomaly_at_time(&self, time: f64) -> f64 {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:125:36
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn is_valid_anomaly(&self, true_anomaly: f64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:143:37
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn flight_path_angle(&self, true_anomaly: f64) -> f64 {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conic`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:153:34
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn position_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_conic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:153:59
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn position_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conic`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:165:34
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn velocity_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_conic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:165:59
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn velocity_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn hyperbolic_turn_angle(eccentricity: f64) -> Option<f64> {
[INFO] [stdout]     |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::ops::{Add, Mul, Neg};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ex01_vectors::Vector3D`
[INFO] [stdout]   --> src/exercises/ex11_gimbal_lock.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::ex01_vectors::Vector3D;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ex04_orbital_elements::StateVector`
[INFO] [stdout]   --> src/exercises/ex12_landing_simulation.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use super::ex04_orbital_elements::StateVector;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GuidanceCommand`, `GuidanceState`, and `compute_guidance_command`
[INFO] [stdout]   --> src/exercises/ex12_landing_simulation.rs:22:38
[INFO] [stdout]    |
[INFO] [stdout] 22 | use super::ex09_guidance_equations::{GuidanceState, GuidanceCommand, compute_guidance_command};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     r1: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     r2: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tof`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     tof: f64,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_tof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     mu: f64,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `short_way`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     short_way: bool,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_way`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     r1: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     r2: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tof`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     tof: f64,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_tof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     mu: f64,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_revs`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     max_revs: u32,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_revs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     r1: &Vector3D,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     r2: &Vector3D,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     mu: f64,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:114:23
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn transfer_angle(r1: &Vector3D, r2: &Vector3D, short_way: bool) -> f64 {
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:114:38
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn transfer_angle(r1: &Vector3D, r2: &Vector3D, short_way: bool) -> f64 {
[INFO] [stdout]     |                                      ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `short_way`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:114:53
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn transfer_angle(r1: &Vector3D, r2: &Vector3D, short_way: bool) -> f64 {
[INFO] [stdout]     |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_way`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     r: &Vector3D,
[INFO] [stdout]     |     ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_other`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     r_other: &Vector3D,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_r_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     a: f64,
[INFO] [stdout]     |     ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 127 |     mu: f64,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `short_way`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     short_way: bool,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_way`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_initial`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     is_initial: bool,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn stumpff_c(z: f64) -> f64 {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn stumpff_s(z: f64) -> f64 {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                           ----^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:39
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                                       ----^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:39
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:51
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn compute_acceleration_command(state: &GuidanceState) -> Vector3D {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:133:33
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn compute_guidance_command(state: &GuidanceState) -> GuidanceCommand {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:148:28
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn gravity_at_position(position: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:159:28
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn estimate_time_to_go(state: &GuidanceState) -> f64 {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:171:33
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn propagate_guidance_state(state: &GuidanceState, acceleration: &Vector3D, dt: f64) -> GuidanceState {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `acceleration`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:171:56
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn propagate_guidance_state(state: &GuidanceState, acceleration: &Vector3D, dt: f64) -> GuidanceState {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_acceleration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:171:81
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn propagate_guidance_state(state: &GuidanceState, acceleration: &Vector3D, dt: f64) -> GuidanceState {
[INFO] [stdout]     |                                                                                 ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     initial_state: GuidanceState,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     dt: f64,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_time`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     max_time: f64,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axis`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:62:28
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn from_axis_angle(axis: &Vector3D, angle: f64) -> Self {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_axis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:62:45
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn from_axis_angle(axis: &Vector3D, angle: f64) -> Self {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `roll`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:93:23
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn from_euler(roll: f64, pitch: f64, yaw: f64) -> Self {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_roll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:93:34
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn from_euler(roll: f64, pitch: f64, yaw: f64) -> Self {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yaw`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:93:46
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn from_euler(roll: f64, pitch: f64, yaw: f64) -> Self {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_yaw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn multiply(&self, other: &Quaternion) -> Self {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:175:33
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn rotate_vector(&self, v: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:194:24
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub fn from_matrix(m: &Matrix3x3) -> Self {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:209:25
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn slerp(&self, other: &Quaternion, t: f64) -> Self {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:209:45
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn slerp(&self, other: &Quaternion, t: f64) -> Self {
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:221:23
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn dot(&self, other: &Quaternion) -> f64 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]   --> src/exercises/ex11_gimbal_lock.rs:78:39
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn is_near_gimbal_lock(&self, threshold: f64) -> bool {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warning_threshold`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:123:30
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn update(&mut self, warning_threshold: f64, lock_threshold: f64) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warning_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock_threshold`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:123:54
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn update(&mut self, warning_threshold: f64, lock_threshold: f64) {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lock_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `roll`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 |             AttitudeState::Normal { roll, pitch, yaw } => {
[INFO] [stdout]     |                                     ^^^^ help: try ignoring the field: `roll: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:137:43
[INFO] [stdout]     |
[INFO] [stdout] 137 |             AttitudeState::Normal { roll, pitch, yaw } => {
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `pitch: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yaw`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             AttitudeState::Normal { roll, pitch, yaw } => {
[INFO] [stdout]     |                                                  ^^^ help: try ignoring the field: `yaw: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `roll`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:140:38
[INFO] [stdout]     |
[INFO] [stdout] 140 |             AttitudeState::Warning { roll, pitch, yaw, .. } => {
[INFO] [stdout]     |                                      ^^^^ help: try ignoring the field: `roll: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:140:44
[INFO] [stdout]     |
[INFO] [stdout] 140 |             AttitudeState::Warning { roll, pitch, yaw, .. } => {
[INFO] [stdout]     |                                            ^^^^^ help: try ignoring the field: `pitch: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yaw`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:140:51
[INFO] [stdout]     |
[INFO] [stdout] 140 |             AttitudeState::Warning { roll, pitch, yaw, .. } => {
[INFO] [stdout]     |                                                   ^^^ help: try ignoring the field: `yaw: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:171:35
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn gimbal_lock_susceptibility(pitch: f64) -> f64 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn apply_rotation(state: &AttitudeState, rotation: &Quaternion) -> AttitudeState {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rotation`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:178:46
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn apply_rotation(state: &AttitudeState, rotation: &Quaternion) -> AttitudeState {
[INFO] [stdout]     |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rotation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn rotation_between(from: &AttitudeState, to: &AttitudeState) -> Quaternion {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:189:47
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn rotation_between(from: &AttitudeState, to: &AttitudeState) -> Quaternion {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex12_landing_simulation.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn downrange(&self, target: &Vector3D) -> f64 {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/exercises/ex12_landing_simulation.rs:160:16
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn new(config: SimulationConfig) -> Self {
[INFO] [stdout]     |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thrust`
[INFO] [stdout]    --> src/exercises/ex12_landing_simulation.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |     fn apply_thrust(&mut self, thrust: &Vector3D) {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_thrust`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0308, E0384.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `apollo-rust-exercises` (lib) due to 4 previous errors; 171 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:31:56
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn calculate_distance(velocity: f64, time: f64) -> f64 {
[INFO] [stdout]    |        ------------------                              ^^^ expected `f64`, found `()`
[INFO] [stdout]    |        |
[INFO] [stdout]    |        implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] ...
[INFO] [stdout] 34 |     velocity * time;
[INFO] [stdout]    |                    - help: remove this semicolon to return this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:73:33
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     match current {
[INFO] [stdout] 68 | |         MissionPhase::Launch => Some(MissionPhase::TranslunarInjection),
[INFO] [stdout] 69 | |         MissionPhase::TranslunarInjection => Some(MissionPhase::LunarOrbit),
[INFO] [stdout] 70 | |         MissionPhase::LunarOrbit => Some(MissionPhase::Descent),
[INFO] [stdout] 71 | |         MissionPhase::Descent => Some(MissionPhase::Surface),
[INFO] [stdout] 72 | |         MissionPhase::Surface => Some(MissionPhase::Ascent),
[INFO] [stdout]    | |                                  -------------------------- this and all prior arms are found to be of type `Option<ex00_intro::MissionPhase>`
[INFO] [stdout] 73 | |         MissionPhase::Ascent => MissionPhase::Return,  // Oops!
[INFO] [stdout]    | |                                 ^^^^^^^^^^^^^^^^^^^^ expected `Option<MissionPhase>`, found `MissionPhase`
[INFO] [stdout] 74 | |         MissionPhase::Return => None, // Mission complete!
[INFO] [stdout] 75 | |     }
[INFO] [stdout]    | |_____- `match` arms have incompatible types
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Option<MissionPhase>`
[INFO] [stdout]               found enum `MissionPhase`
[INFO] [stdout] help: try wrapping the expression in `Some`
[INFO] [stdout]    |
[INFO] [stdout] 73 |         MissionPhase::Ascent => Some(MissionPhase::Return),  // Oops!
[INFO] [stdout]    |                                 +++++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&_` not covered
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 |     match engine {
[INFO] [stdout]    |           ^^^^^^ pattern `&_` not covered
[INFO] [stdout]    |
[INFO] [stdout]    = note: the matched value is of type `&str`
[INFO] [stdout]    = note: `&str` cannot be matched exhaustively, so a wildcard `_` is necessary
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 46 ~         "APS" => 16000.0,
[INFO] [stdout] 47 ~         &_ => todo!(),    // Ascent Propulsion System: 16 kN
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `result`
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let result = 0.0;
[INFO] [stdout]    |         ------ first assignment to `result`
[INFO] [stdout] 84 |     result = final_velocity - initial_velocity;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]    |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut result = 0.0;
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `result` is never read
[INFO] [stdout]   --> src/exercises/ex00_intro.rs:83:18
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let result = 0.0;
[INFO] [stdout]    |                  ^^^ this value is reassigned later and never used
[INFO] [stdout] 84 |     result = final_velocity - initial_velocity;
[INFO] [stdout]    |     ------------------------------------------ `result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/exercises/ex01_vectors.rs:83:23
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub fn dot(&self, other: &Vector3D) -> f64 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn cross(&self, other: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scalar`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |     pub fn scale(&self, scalar: f64) -> Vector3D {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scalar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:171:28
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn angle_to(&self, other: &Vector3D) -> f64 {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:183:18
[INFO] [stdout]     |
[INFO] [stdout] 183 |     fn add(self, other: Vector3D) -> Vector3D {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex01_vectors.rs:192:18
[INFO] [stdout]     |
[INFO] [stdout] 192 |     fn sub(self, other: Vector3D) -> Vector3D {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:116:35
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn multiply_vector(&self, v: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:132:28
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn multiply(&self, other: &Matrix3x3) -> Matrix3x3 {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:172:23
[INFO] [stdout]     |
[INFO] [stdout] 172 |     pub fn add(&self, other: &Matrix3x3) -> Matrix3x3 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn sub(&self, other: &Matrix3x3) -> Matrix3x3 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scalar`
[INFO] [stdout]    --> src/exercises/ex02_matrices.rs:184:25
[INFO] [stdout]     |
[INFO] [stdout] 184 |     pub fn scale(&self, scalar: f64) -> Matrix3x3 {
[INFO] [stdout]     |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scalar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]   --> src/exercises/ex03_coordinates.rs:92:31
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn cartesian_to_spherical(position: &Vector3D) -> Option<SphericalCoord> {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coords`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:119:31
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn spherical_to_cartesian(coords: &SphericalCoord) -> Vector3D {
[INFO] [stdout]     |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_coords`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coord1`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:142:30
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn great_circle_distance(coord1: &SphericalCoord, coord2: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_coord1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coord2`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:142:55
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn great_circle_distance(coord1: &SphericalCoord, coord2: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_coord2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:162:16
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn bearing(from: &SphericalCoord, to: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:162:39
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn bearing(from: &SphericalCoord, to: &SphericalCoord) -> f64 {
[INFO] [stdout]     |                                       ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lon`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:173:28
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn normalize_longitude(lon: f64) -> f64 {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_lon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lat`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:183:27
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn normalize_latitude(lat: f64, lon: f64) -> (f64, f64) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_lat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lon`
[INFO] [stdout]    --> src/exercises/ex03_coordinates.rs:183:37
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn normalize_latitude(lat: f64, lon: f64) -> (f64, f64) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_lon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex04_orbital_elements.rs:82:26
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn period(&self, mu: f64) -> f64 {
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex04_orbital_elements.rs:92:35
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn specific_energy(&self, mu: f64) -> f64 {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:121:26
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn state_to_elements(state: &StateVector, mu: f64) -> OrbitalElements {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:121:47
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn state_to_elements(state: &StateVector, mu: f64) -> OrbitalElements {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elements`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:145:26
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn elements_to_state(elements: &OrbitalElements, mu: f64) -> StateVector {
[INFO] [stdout]     |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_elements`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:145:54
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn elements_to_state(elements: &OrbitalElements, mu: f64) -> StateVector {
[INFO] [stdout]     |                                                      ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:164:26
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn vis_viva_velocity(r: f64, a: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:164:34
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn vis_viva_velocity(r: f64, a: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:164:42
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn vis_viva_velocity(r: f64, a: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                          ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:171:26
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn circular_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:171:34
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn circular_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                  ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:178:24
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn escape_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex04_orbital_elements.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn escape_velocity(r: f64, mu: f64) -> f64 {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_anomaly`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     mean_anomaly: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     eccentricity: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]   --> src/exercises/ex05_keplers_equation.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     tolerance: f64,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentric_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:103:34
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn eccentric_to_true_anomaly(eccentric_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentric_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:103:58
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn eccentric_to_true_anomaly(eccentric_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:124:34
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn true_to_eccentric_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:124:53
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn true_to_eccentric_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:139:29
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn true_to_mean_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:139:48
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn true_to_mean_anomaly(true_anomaly: f64, eccentricity: f64) -> f64 {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mean_anomaly`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     mean_anomaly: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mean_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     eccentricity: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     tolerance: f64,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     f: F,
[INFO] [stdout]     |     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `df`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 185 |     df: DF,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_df`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_guess`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     initial_guess: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_guess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     tolerance: f64,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_iter`
[INFO] [stdout]    --> src/exercises/ex05_keplers_equation.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     max_iter: usize,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn propagate_kepler(initial: &StateVector, delta_t: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_t`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn propagate_kepler(initial: &StateVector, delta_t: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:37:62
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn propagate_kepler(initial: &StateVector, delta_t: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn state_derivative(state: &StateVector, mu: f64) -> StateVector {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:60:46
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn state_derivative(state: &StateVector, mu: f64) -> StateVector {
[INFO] [stdout]    |                                              ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_t`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:47
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:61
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                             ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:78:70
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn propagate_euler(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:22
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_t`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:45
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:59
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                           ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex06_state_vectors.rs:92:68
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn propagate_rk4(initial: &StateVector, delta_t: f64, dt: f64, mu: f64) -> StateVector {
[INFO] [stdout]    |                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:106:26
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn period_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:106:47
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn period_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:114:26
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn energy_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:114:47
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn energy_from_state(state: &StateVector, mu: f64) -> f64 {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex06_state_vectors.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn angular_momentum(state: &StateVector) -> Vector3D {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_state(state: &StateVector, mu: f64) -> Self {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:59:44
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn from_state(state: &StateVector, mu: f64) -> Self {
[INFO] [stdout]    |                                            ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:79:37
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn radius_at_anomaly(&self, true_anomaly: f64) -> f64 {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]   --> src/exercises/ex07_conic_trajectories.rs:86:38
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn velocity_at_radius(&self, radius: f64) -> f64 {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu1`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:103:34
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn time_of_flight(&self, nu1: f64, nu2: f64) -> f64 {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_nu1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nu2`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:103:44
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn time_of_flight(&self, nu1: f64, nu2: f64) -> f64 {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_nu2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:117:40
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn true_anomaly_at_time(&self, time: f64) -> f64 {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:125:36
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn is_valid_anomaly(&self, true_anomaly: f64) -> bool {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:143:37
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn flight_path_angle(&self, true_anomaly: f64) -> f64 {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conic`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:153:34
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn position_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_conic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:153:59
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn position_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conic`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:165:34
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn velocity_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_conic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `true_anomaly`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:165:59
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn velocity_in_orbital_plane(conic: &ConicTrajectory, true_anomaly: f64) -> Vector3D {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_true_anomaly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `eccentricity`
[INFO] [stdout]    --> src/exercises/ex07_conic_trajectories.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn hyperbolic_turn_angle(eccentricity: f64) -> Option<f64> {
[INFO] [stdout]     |                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_eccentricity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     r1: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     r2: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tof`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     tof: f64,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_tof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     mu: f64,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `short_way`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     short_way: bool,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_way`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     r1: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     r2: &Vector3D,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tof`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     tof: f64,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_tof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     mu: f64,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_revs`
[INFO] [stdout]   --> src/exercises/ex08_lambert_problem.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     max_revs: u32,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_revs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     r1: &Vector3D,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     r2: &Vector3D,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     mu: f64,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:114:23
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn transfer_angle(r1: &Vector3D, r2: &Vector3D, short_way: bool) -> f64 {
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:114:38
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn transfer_angle(r1: &Vector3D, r2: &Vector3D, short_way: bool) -> f64 {
[INFO] [stdout]     |                                      ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `short_way`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:114:53
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn transfer_angle(r1: &Vector3D, r2: &Vector3D, short_way: bool) -> f64 {
[INFO] [stdout]     |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_way`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     r: &Vector3D,
[INFO] [stdout]     |     ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_other`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     r_other: &Vector3D,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_r_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     a: f64,
[INFO] [stdout]     |     ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mu`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:127:5
[INFO] [stdout]     |
[INFO] [stdout] 127 |     mu: f64,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_mu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `short_way`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     short_way: bool,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_short_way`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_initial`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 129 |     is_initial: bool,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn stumpff_c(z: f64) -> f64 {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn stumpff_s(z: f64) -> f64 {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                           ----^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:39
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                                       ----^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:39
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tolerance`
[INFO] [stdout]    --> src/exercises/ex08_lambert_problem.rs:158:51
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn bisection<F>(f: F, mut a: f64, mut b: f64, tolerance: f64) -> Result<f64, String>
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tolerance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn compute_acceleration_command(state: &GuidanceState) -> Vector3D {
[INFO] [stdout]     |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:133:33
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn compute_guidance_command(state: &GuidanceState) -> GuidanceCommand {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `position`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:148:28
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn gravity_at_position(position: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:159:28
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn estimate_time_to_go(state: &GuidanceState) -> f64 {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:171:33
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn propagate_guidance_state(state: &GuidanceState, acceleration: &Vector3D, dt: f64) -> GuidanceState {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `acceleration`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:171:56
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn propagate_guidance_state(state: &GuidanceState, acceleration: &Vector3D, dt: f64) -> GuidanceState {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_acceleration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:171:81
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn propagate_guidance_state(state: &GuidanceState, acceleration: &Vector3D, dt: f64) -> GuidanceState {
[INFO] [stdout]     |                                                                                 ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_state`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     initial_state: GuidanceState,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     dt: f64,
[INFO] [stdout]     |     ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_time`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     max_time: f64,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `net`
[INFO] [stdout]    --> src/exercises/ex09_guidance_equations.rs:246:13
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let net = accel + g;  // Wait, this isn't right for the test logic
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_net`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `axis`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:62:28
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn from_axis_angle(axis: &Vector3D, angle: f64) -> Self {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_axis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:62:45
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn from_axis_angle(axis: &Vector3D, angle: f64) -> Self {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `roll`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:93:23
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn from_euler(roll: f64, pitch: f64, yaw: f64) -> Self {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_roll`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:93:34
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn from_euler(roll: f64, pitch: f64, yaw: f64) -> Self {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yaw`
[INFO] [stdout]   --> src/exercises/ex10_quaternions.rs:93:46
[INFO] [stdout]    |
[INFO] [stdout] 93 |     pub fn from_euler(roll: f64, pitch: f64, yaw: f64) -> Self {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_yaw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn multiply(&self, other: &Quaternion) -> Self {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:175:33
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn rotate_vector(&self, v: &Vector3D) -> Vector3D {
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:194:24
[INFO] [stdout]     |
[INFO] [stdout] 194 |     pub fn from_matrix(m: &Matrix3x3) -> Self {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:209:25
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn slerp(&self, other: &Quaternion, t: f64) -> Self {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:209:45
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn slerp(&self, other: &Quaternion, t: f64) -> Self {
[INFO] [stdout]     |                                             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/exercises/ex10_quaternions.rs:221:23
[INFO] [stdout]     |
[INFO] [stdout] 221 |     pub fn dot(&self, other: &Quaternion) -> f64 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]   --> src/exercises/ex11_gimbal_lock.rs:78:39
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn is_near_gimbal_lock(&self, threshold: f64) -> bool {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `warning_threshold`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:123:30
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn update(&mut self, warning_threshold: f64, lock_threshold: f64) {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_warning_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lock_threshold`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:123:54
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn update(&mut self, warning_threshold: f64, lock_threshold: f64) {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lock_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `roll`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 |             AttitudeState::Normal { roll, pitch, yaw } => {
[INFO] [stdout]     |                                     ^^^^ help: try ignoring the field: `roll: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:137:43
[INFO] [stdout]     |
[INFO] [stdout] 137 |             AttitudeState::Normal { roll, pitch, yaw } => {
[INFO] [stdout]     |                                           ^^^^^ help: try ignoring the field: `pitch: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yaw`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:137:50
[INFO] [stdout]     |
[INFO] [stdout] 137 |             AttitudeState::Normal { roll, pitch, yaw } => {
[INFO] [stdout]     |                                                  ^^^ help: try ignoring the field: `yaw: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `roll`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:140:38
[INFO] [stdout]     |
[INFO] [stdout] 140 |             AttitudeState::Warning { roll, pitch, yaw, .. } => {
[INFO] [stdout]     |                                      ^^^^ help: try ignoring the field: `roll: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:140:44
[INFO] [stdout]     |
[INFO] [stdout] 140 |             AttitudeState::Warning { roll, pitch, yaw, .. } => {
[INFO] [stdout]     |                                            ^^^^^ help: try ignoring the field: `pitch: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yaw`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:140:51
[INFO] [stdout]     |
[INFO] [stdout] 140 |             AttitudeState::Warning { roll, pitch, yaw, .. } => {
[INFO] [stdout]     |                                                   ^^^ help: try ignoring the field: `yaw: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pitch`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:171:35
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn gimbal_lock_susceptibility(pitch: f64) -> f64 {
[INFO] [stdout]     |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn apply_rotation(state: &AttitudeState, rotation: &Quaternion) -> AttitudeState {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rotation`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:178:46
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn apply_rotation(state: &AttitudeState, rotation: &Quaternion) -> AttitudeState {
[INFO] [stdout]     |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rotation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn rotation_between(from: &AttitudeState, to: &AttitudeState) -> Quaternion {
[INFO] [stdout]     |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/exercises/ex11_gimbal_lock.rs:189:47
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn rotation_between(from: &AttitudeState, to: &AttitudeState) -> Quaternion {
[INFO] [stdout]     |                                               ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/ex12_landing_simulation.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn downrange(&self, target: &Vector3D) -> f64 {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/exercises/ex12_landing_simulation.rs:160:16
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn new(config: SimulationConfig) -> Self {
[INFO] [stdout]     |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thrust`
[INFO] [stdout]    --> src/exercises/ex12_landing_simulation.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |     fn apply_thrust(&mut self, thrust: &Vector3D) {
[INFO] [stdout]     |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_thrust`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0308, E0384.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `apollo-rust-exercises` (lib test) due to 4 previous errors; 165 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081", kill_on_drop: false }`
[INFO] [stdout] 570a9789c1b3978c7cc552d451ad1dd0888ee87b3c9c4845850b9da71f23c081
