[INFO] cloning repository https://github.com/Aidan-Jared/rust_algo_practice
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Aidan-Jared/rust_algo_practice" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAidan-Jared%2Frust_algo_practice", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAidan-Jared%2Frust_algo_practice'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d420170d932f67b408c5fe246732e6c2d05f38d4
[INFO] checking Aidan-Jared/rust_algo_practice against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAidan-Jared%2Frust_algo_practice" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Aidan-Jared/rust_algo_practice
[INFO] finished tweaking git repo https://github.com/Aidan-Jared/rust_algo_practice
[INFO] tweaked toml for git repo https://github.com/Aidan-Jared/rust_algo_practice written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Aidan-Jared/rust_algo_practice on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Aidan-Jared/rust_algo_practice 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" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 576581fa0fcb0f9ade5eee198cbb19a7d68da354a0b9323531048b489afe1a96
[INFO] running `Command { std: "docker" "start" "-a" "576581fa0fcb0f9ade5eee198cbb19a7d68da354a0b9323531048b489afe1a96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "576581fa0fcb0f9ade5eee198cbb19a7d68da354a0b9323531048b489afe1a96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "576581fa0fcb0f9ade5eee198cbb19a7d68da354a0b9323531048b489afe1a96", kill_on_drop: false }`
[INFO] [stdout] 576581fa0fcb0f9ade5eee198cbb19a7d68da354a0b9323531048b489afe1a96
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 86777fa13d2eac3c8fa44c171615cac53e0cceb21ffbde1325b8ec8177dbd7fa
[INFO] running `Command { std: "docker" "start" "-a" "86777fa13d2eac3c8fa44c171615cac53e0cceb21ffbde1325b8ec8177dbd7fa", kill_on_drop: false }`
[INFO] [stderr]     Checking algorithims v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, `self`, and `swap`
[INFO] [stdout]  --> src/binary_search.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{max, Ordering}, mem::{self, swap}, ops::{Deref, DerefMut}};
[INFO] [stdout]   |                                       ^^^^  ^^^^         ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/DP.rs:333:33
[INFO] [stdout]     |
[INFO] [stdout] 333 |     let mut memo = vec![vec![-1;(1<<n)];n];
[INFO] [stdout]     |                                 ^    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 333 -     let mut memo = vec![vec![-1;(1<<n)];n];
[INFO] [stdout] 333 +     let mut memo = vec![vec![-1;1<<n];n];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, `self`, and `swap`
[INFO] [stdout]  --> src/binary_search.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{max, Ordering}, mem::{self, swap}, ops::{Deref, DerefMut}};
[INFO] [stdout]   |                                       ^^^^  ^^^^         ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/DP.rs:333:33
[INFO] [stdout]     |
[INFO] [stdout] 333 |     let mut memo = vec![vec![-1;(1<<n)];n];
[INFO] [stdout]     |                                 ^    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 333 -     let mut memo = vec![vec![-1;(1<<n)];n];
[INFO] [stdout] 333 +     let mut memo = vec![vec![-1;1<<n];n];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/divide_and_conquer.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | /     match target.cmp(&arr[0]) {
[INFO] [stdout] 113 | |         Ordering::Equal => {return Some(pivot);}
[INFO] [stdout] 114 | |         Ordering::Greater => {
[INFO] [stdout] 115 | |             return _bs(arr, &target, 0, pivot - 1);
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |         },
[INFO] [stdout] 120 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 121 |       None
[INFO] [stdout]     |       ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]   --> src/graphs.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut res: bool = false;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/binary_search.rs:296:41
[INFO] [stdout]     |
[INFO] [stdout] 296 | ...                   let mut res = true;
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/binary_search.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 | ...                   let mut res = true;
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/greedy.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let mut node = HuffmanNode{ ch: None, freq: a.freq + b.freq, left: Some(Box::new(a)), right: Some(Box::new(b))};
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/greedy.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut s = "0".to_string();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/divide_and_conquer.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 112 | /     match target.cmp(&arr[0]) {
[INFO] [stdout] 113 | |         Ordering::Equal => {return Some(pivot);}
[INFO] [stdout] 114 | |         Ordering::Greater => {
[INFO] [stdout] 115 | |             return _bs(arr, &target, 0, pivot - 1);
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |         },
[INFO] [stdout] 120 | |     }
[INFO] [stdout]     | |_____- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 121 |       None
[INFO] [stdout]     |       ^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/divide_and_conquer.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let k = start;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `i_mirror` is never read
[INFO] [stdout]    --> src/DP.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let mut i_mirror = 0;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diff`
[INFO] [stdout]    --> src/DP.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let mut diff = -1;
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_diff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/DP.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let mut diff = -1;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/flow_network.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut adj_list = HashMap::new();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/flow_network.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn dinic(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sink`
[INFO] [stdout]   --> src/flow_network.rs:95:34
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn dinic(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_sink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/flow_network.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut max_flow = 0;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test3`
[INFO] [stdout]   --> src/main.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut test3 = vec![100, 91, 89, 70, 64, 53, 44, 21, 17, 10, 7, 3];
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_test3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut test3 = vec![100, 91, 89, 70, 64, 53, 44, 21, 17, 10, 7, 3];
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_sort` is never used
[INFO] [stdout]  --> src/sorting.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn merge_sort(arr: &Vec<i32>) -> Vec<i32>{
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]   --> src/sorting.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn merge(left: Vec<i32>, right: Vec<i32>) ->Vec<i32>{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_sort` is never used
[INFO] [stdout]   --> src/sorting.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn quick_sort(arr: &Vec<i32>) -> Vec<i32>{
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Graph` is never constructed
[INFO] [stdout]  --> src/graphs.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Graph {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_edge`, `dfs`, `bfs`, and `has_cycle` are never used
[INFO] [stdout]   --> src/graphs.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Graph {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 11 |     fn new(adj_list: HashMap<i32, Vec<i32>>) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn add_edge(&mut self, from: i32, to: i32) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn dfs(&self, start: i32) -> Vec<i32> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn bfs(&self, start: i32) -> Vec<i32> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn has_cycle(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeightedGraph` is never constructed
[INFO] [stdout]    --> src/graphs.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct WeightedGraph {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dijkstra`, `bellman_ford`, and `floyd_warshall` are never used
[INFO] [stdout]    --> src/graphs.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl WeightedGraph {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 106 |     fn dijkstra(&self, start: i32) -> HashMap<i32, i32> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn bellman_ford(&self, start: i32) -> Result<HashMap<i32, i32>, &'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn floyd_warshall(&self) -> HashMap<(i32, i32), i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edge` is never constructed
[INFO] [stdout]    --> src/graphs.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | struct Edge {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kruskal_mst` is never used
[INFO] [stdout]    --> src/graphs.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn kruskal_mst(edges: Vec<Edge>, num_vertices: usize) -> Vec<Edge> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_cycle` is never used
[INFO] [stdout]    --> src/graphs.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn has_cycle(mut edge: Edge, graph: &mut HashMap<i32, Edge>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_mst` is never used
[INFO] [stdout]    --> src/graphs.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn prim_mst(graph: &WeightedGraph, start: i32) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BST` is never constructed
[INFO] [stdout]  --> src/binary_search.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct BST<T: Ord + Clone> {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/binary_search.rs:11:8
[INFO] [stdout]     |
[INFO] [stdout] 10  | impl<T: Ord + Clone> BST<T> {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 11  |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19  |     fn insert(&mut self, value: T) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43  |     fn search(&self, value: &T) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn inorder_traversal(&self) -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn preorder_traversal(&self) -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn postorder_traversal(&self) -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn level_order_traversal(&self) -> Vec<Vec<T>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn find_min(&self) -> Option<&T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn find_max(&self) -> Option<&T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn height(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn is_valid_bst(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Activity` is never constructed
[INFO] [stdout]  --> src/greedy.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Activity {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activity_selection` is never used
[INFO] [stdout]   --> src/greedy.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn activity_selection(activities: Vec<Activity>) -> Vec<Activity> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanNode` is never constructed
[INFO] [stdout]   --> src/greedy.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct HuffmanNode {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_huffman_tree` is never used
[INFO] [stdout]   --> src/greedy.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn build_huffman_tree(text: &str) -> Option<Box<HuffmanNode>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_codes` is never used
[INFO] [stdout]   --> src/greedy.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn generate_codes(root: &HuffmanNode) -> HashMap<char, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_encode` is never used
[INFO] [stdout]   --> src/greedy.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn huffman_encode(text: &str) -> (String, HashMap<char, String>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_decode` is never used
[INFO] [stdout]    --> src/greedy.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn huffman_decode(encoded: &str, codes: &HashMap<char, String>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Job` is never constructed
[INFO] [stdout]    --> src/greedy.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | struct Job {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `job_scheduling_max_profit` is never used
[INFO] [stdout]    --> src/greedy.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn job_scheduling_max_profit(jobs: Vec<Job>) -> (Vec<Job>, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_job` is never used
[INFO] [stdout]    --> src/greedy.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn find_next_job(i: usize, jobs: &Vec<Job>, mut start: Job) -> Vec<Job>{
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coin_change` is never used
[INFO] [stdout]    --> src/greedy.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn coin_change (coins: &[i32], amount: i32) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `job_scheduling_min_lateness` is never used
[INFO] [stdout]    --> src/greedy.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn job_scheduling_min_lateness(jobs: Vec<Job>) -> Vec<Job> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_power` is never used
[INFO] [stdout]  --> src/divide_and_conquer.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn fast_power(base: i64, exp: i32) -> i64 {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_power_mod` is never used
[INFO] [stdout]   --> src/divide_and_conquer.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn fast_power_mod(base: i64, exp: u32, modulus: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_search` is never used
[INFO] [stdout]   --> src/divide_and_conquer.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn binary_search<T: Ord>(arr: &[T], target: &T) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_search_first_occurrence` is never used
[INFO] [stdout]   --> src/divide_and_conquer.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn binary_search_first_occurrence<T: Ord>(arr: &[T], target: &T) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_rotated_array` is never used
[INFO] [stdout]   --> src/divide_and_conquer.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn search_rotated_array<T: Ord>(arr: &[T], target: &T) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_peak_element` is never used
[INFO] [stdout]    --> src/divide_and_conquer.rs:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn find_peak_element<T: Ord>(arr: &[T]) -> usize{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_sqrt` is never used
[INFO] [stdout]    --> src/divide_and_conquer.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn find_sqrt(n: usize) -> usize{
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_inversion` is never used
[INFO] [stdout]    --> src/divide_and_conquer.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn count_inversion<T: Ord>(arr: &[T]) -> usize{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Matrix` is never constructed
[INFO] [stdout]    --> src/divide_and_conquer.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | struct Matrix<T> 
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_matrix`, `get_value`, `add`, and `dot` are never used
[INFO] [stdout]    --> src/divide_and_conquer.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | / impl <T> Matrix<T> 
[INFO] [stdout] 233 | | where T:Copy,
[INFO] [stdout] 234 | | T:Add<Output = T>,
[INFO] [stdout] 235 | | T:Sub<Output = T>,
[INFO] [stdout] 236 | | T:Mul<Output = T>
[INFO] [stdout]     | |_________________- associated items in this implementation
[INFO] [stdout] 237 |   {
[INFO] [stdout] 238 |       fn new(data: Vec<T>, n_columns:usize) -> Self{
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |       fn get_matrix<R: RangeBounds<usize>, U: RangeBounds<usize>>(&self, cols: R, rows: U) -> Matrix<T>
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |       fn get_value(&self, col: usize, row: usize) -> T{
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |       fn add(&self, b: &Matrix<T>, sign: i32) -> Matrix<T>{
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |       fn dot(&self, b: &Matrix<T>) -> Matrix<T>{
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fibonacci_dp` is never used
[INFO] [stdout]  --> src/DP.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn fibonacci_dp(n: usize) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fibonacci_memoized` is never used
[INFO] [stdout]   --> src/DP.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn fibonacci_memoized(n: usize, memo: &mut HashMap<usize, usize>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_common_subsequence` is never used
[INFO] [stdout]   --> src/DP.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn longest_common_subsequence(s1: &str, s2: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edit_distance` is never used
[INFO] [stdout]   --> src/DP.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn edit_distance(s1: &str, s2: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coin_change` is never used
[INFO] [stdout]   --> src/DP.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn coin_change(coins: &[i32], amount: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KnapsackItem` is never constructed
[INFO] [stdout]   --> src/DP.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | struct KnapsackItem {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knapsack_01` is never used
[INFO] [stdout]   --> src/DP.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn knapsack_01(items: &[KnapsackItem], capacity: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wildcard_matching` is never used
[INFO] [stdout]    --> src/DP.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn wildcard_matching(s: &str, pattern: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regular_expression_matching` is never used
[INFO] [stdout]    --> src/DP.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn regular_expression_matching(s: &str, pattern: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knapsack_01_with_items` is never used
[INFO] [stdout]    --> src/DP.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn knapsack_01_with_items(items: &[KnapsackItem], capacity: i32) -> (i32, Vec<usize>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_palindromic_substring` is never used
[INFO] [stdout]    --> src/DP.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn longest_palindromic_substring(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_increasing_subsequence` is never used
[INFO] [stdout]    --> src/DP.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn longest_increasing_subsequence(arr: &[i32]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lis_nlogn` is never used
[INFO] [stdout]    --> src/DP.rs:263:4
[INFO] [stdout]     |
[INFO] [stdout] 263 | fn lis_nlogn(arr: &[i32]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maximum_subarray_sum` is never used
[INFO] [stdout]    --> src/DP.rs:287:4
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn maximum_subarray_sum(arr: &[i32]) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maximum_product_subarray` is never used
[INFO] [stdout]    --> src/DP.rs:299:4
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn maximum_product_subarray(arr: &[i32]) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maximum_sum_non_adjacent` is never used
[INFO] [stdout]    --> src/DP.rs:311:4
[INFO] [stdout]     |
[INFO] [stdout] 311 | fn maximum_sum_non_adjacent(arr: &[i32]) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `house_robber_circular` is never used
[INFO] [stdout]    --> src/DP.rs:323:4
[INFO] [stdout]     |
[INFO] [stdout] 323 | fn house_robber_circular(arr: &[i32]) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `travelling_salesman_problem` is never used
[INFO] [stdout]    --> src/DP.rs:331:4
[INFO] [stdout]     |
[INFO] [stdout] 331 | fn travelling_salesman_problem(mut cost: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix_chain_multiplication` is never used
[INFO] [stdout]    --> src/DP.rs:337:4
[INFO] [stdout]     |
[INFO] [stdout] 337 | fn matrix_chain_multiplication(dimensions: &[i32]) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minimum_path_sum` is never used
[INFO] [stdout]    --> src/DP.rs:354:4
[INFO] [stdout]     |
[INFO] [stdout] 354 | fn minimum_path_sum(grid: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlowNetwork` is never constructed
[INFO] [stdout]  --> src/flow_network.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct FlowNetwork {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_edge`, `ford_fulkerson`, and `dinic` are never used
[INFO] [stdout]   --> src/flow_network.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl FlowNetwork {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 10 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn add_edge(&mut self, from: i32, to: i32, capacity: i32) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn ford_fulkerson(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn dinic(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `DP` should have a snake case name
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod DP;
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `dp`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]   --> src/graphs.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut res: bool = false;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/binary_search.rs:296:41
[INFO] [stdout]     |
[INFO] [stdout] 296 | ...                   let mut res = true;
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/binary_search.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 | ...                   let mut res = true;
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/greedy.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let mut node = HuffmanNode{ ch: None, freq: a.freq + b.freq, left: Some(Box::new(a)), right: Some(Box::new(b))};
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/greedy.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut s = "0".to_string();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/divide_and_conquer.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     let k = start;
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `i_mirror` is never read
[INFO] [stdout]    --> src/DP.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |     let mut i_mirror = 0;
[INFO] [stdout]     |             ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diff`
[INFO] [stdout]    --> src/DP.rs:214:13
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let mut diff = -1;
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_diff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/DP.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let mut diff = -1;
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/flow_network.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut adj_list = HashMap::new();
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/flow_network.rs:95:21
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn dinic(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sink`
[INFO] [stdout]   --> src/flow_network.rs:95:34
[INFO] [stdout]    |
[INFO] [stdout] 95 |     fn dinic(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_sink`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/flow_network.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut max_flow = 0;
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test3`
[INFO] [stdout]   --> src/main.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut test3 = vec![100, 91, 89, 70, 64, 53, 44, 21, 17, 10, 7, 3];
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_test3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut test3 = vec![100, 91, 89, 70, 64, 53, 44, 21, 17, 10, 7, 3];
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_cycle` is never used
[INFO] [stdout]   --> src/graphs.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Graph {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn has_cycle(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WeightedGraph` is never constructed
[INFO] [stdout]    --> src/graphs.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct WeightedGraph {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dijkstra`, `bellman_ford`, and `floyd_warshall` are never used
[INFO] [stdout]    --> src/graphs.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl WeightedGraph {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 106 |     fn dijkstra(&self, start: i32) -> HashMap<i32, i32> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn bellman_ford(&self, start: i32) -> Result<HashMap<i32, i32>, &'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn floyd_warshall(&self) -> HashMap<(i32, i32), i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edge` is never constructed
[INFO] [stdout]    --> src/graphs.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | struct Edge {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kruskal_mst` is never used
[INFO] [stdout]    --> src/graphs.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn kruskal_mst(edges: Vec<Edge>, num_vertices: usize) -> Vec<Edge> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_cycle` is never used
[INFO] [stdout]    --> src/graphs.rs:236:4
[INFO] [stdout]     |
[INFO] [stdout] 236 | fn has_cycle(mut edge: Edge, graph: &mut HashMap<i32, Edge>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_mst` is never used
[INFO] [stdout]    --> src/graphs.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn prim_mst(graph: &WeightedGraph, start: i32) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/binary_search.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 10  | impl<T: Ord + Clone> BST<T> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn inorder_traversal(&self) -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn preorder_traversal(&self) -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn postorder_traversal(&self) -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn level_order_traversal(&self) -> Vec<Vec<T>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn find_min(&self) -> Option<&T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     fn find_max(&self) -> Option<&T> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn height(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn is_valid_bst(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Activity` is never constructed
[INFO] [stdout]  --> src/greedy.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Activity {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `activity_selection` is never used
[INFO] [stdout]   --> src/greedy.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn activity_selection(activities: Vec<Activity>) -> Vec<Activity> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HuffmanNode` is never constructed
[INFO] [stdout]   --> src/greedy.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct HuffmanNode {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_huffman_tree` is never used
[INFO] [stdout]   --> src/greedy.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn build_huffman_tree(text: &str) -> Option<Box<HuffmanNode>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_codes` is never used
[INFO] [stdout]   --> src/greedy.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn generate_codes(root: &HuffmanNode) -> HashMap<char, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_encode` is never used
[INFO] [stdout]   --> src/greedy.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn huffman_encode(text: &str) -> (String, HashMap<char, String>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_decode` is never used
[INFO] [stdout]    --> src/greedy.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn huffman_decode(encoded: &str, codes: &HashMap<char, String>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Job` is never constructed
[INFO] [stdout]    --> src/greedy.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | struct Job {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `job_scheduling_max_profit` is never used
[INFO] [stdout]    --> src/greedy.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn job_scheduling_max_profit(jobs: Vec<Job>) -> (Vec<Job>, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_job` is never used
[INFO] [stdout]    --> src/greedy.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn find_next_job(i: usize, jobs: &Vec<Job>, mut start: Job) -> Vec<Job>{
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coin_change` is never used
[INFO] [stdout]    --> src/greedy.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn coin_change (coins: &[i32], amount: i32) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `job_scheduling_min_lateness` is never used
[INFO] [stdout]    --> src/greedy.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn job_scheduling_min_lateness(jobs: Vec<Job>) -> Vec<Job> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_power_mod` is never used
[INFO] [stdout]   --> src/divide_and_conquer.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn fast_power_mod(base: i64, exp: u32, modulus: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_inversion` is never used
[INFO] [stdout]    --> src/divide_and_conquer.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn count_inversion<T: Ord>(arr: &[T]) -> usize{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_value` is never used
[INFO] [stdout]    --> src/divide_and_conquer.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | / impl <T> Matrix<T> 
[INFO] [stdout] 233 | | where T:Copy,
[INFO] [stdout] 234 | | T:Add<Output = T>,
[INFO] [stdout] 235 | | T:Sub<Output = T>,
[INFO] [stdout] 236 | | T:Mul<Output = T>
[INFO] [stdout]     | |_________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 258 |       fn get_value(&self, col: usize, row: usize) -> T{
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `coin_change` is never used
[INFO] [stdout]   --> src/DP.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn coin_change(coins: &[i32], amount: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `knapsack_01_with_items` is never used
[INFO] [stdout]    --> src/DP.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn knapsack_01_with_items(items: &[KnapsackItem], capacity: i32) -> (i32, Vec<usize>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_increasing_subsequence` is never used
[INFO] [stdout]    --> src/DP.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn longest_increasing_subsequence(arr: &[i32]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lis_nlogn` is never used
[INFO] [stdout]    --> src/DP.rs:263:4
[INFO] [stdout]     |
[INFO] [stdout] 263 | fn lis_nlogn(arr: &[i32]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlowNetwork` is never constructed
[INFO] [stdout]  --> src/flow_network.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct FlowNetwork {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_edge`, `ford_fulkerson`, and `dinic` are never used
[INFO] [stdout]   --> src/flow_network.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl FlowNetwork {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 10 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn add_edge(&mut self, from: i32, to: i32, capacity: i32) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn ford_fulkerson(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn dinic(&self, source: i32, sink: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `DP` should have a snake case name
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod DP;
[INFO] [stdout]   |     ^^ help: convert the identifier to snake case: `dp`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.76s
[INFO] running `Command { std: "docker" "inspect" "86777fa13d2eac3c8fa44c171615cac53e0cceb21ffbde1325b8ec8177dbd7fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "86777fa13d2eac3c8fa44c171615cac53e0cceb21ffbde1325b8ec8177dbd7fa", kill_on_drop: false }`
[INFO] [stdout] 86777fa13d2eac3c8fa44c171615cac53e0cceb21ffbde1325b8ec8177dbd7fa
