[INFO] fetching crate kagemeka 0.1.0...
[INFO] testing kagemeka-0.1.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate kagemeka 0.1.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate kagemeka 0.1.0
[INFO] finished tweaking crates.io crate kagemeka 0.1.0
[INFO] tweaked toml for crates.io crate kagemeka 0.1.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate kagemeka 0.1.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a60b2b2caa407c1b5367a01031af0306b5136b53671bd5a43dc3c587498c3236
[INFO] running `Command { std: "docker" "start" "-a" "a60b2b2caa407c1b5367a01031af0306b5136b53671bd5a43dc3c587498c3236", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a60b2b2caa407c1b5367a01031af0306b5136b53671bd5a43dc3c587498c3236", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a60b2b2caa407c1b5367a01031af0306b5136b53671bd5a43dc3c587498c3236", kill_on_drop: false }`
[INFO] [stdout] a60b2b2caa407c1b5367a01031af0306b5136b53671bd5a43dc3c587498c3236
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2edc0c8baf757b549dc0b3094794605edd78ce823f477e2d08705eefc12de3ea
[INFO] running `Command { std: "docker" "start" "-a" "2edc0c8baf757b549dc0b3094794605edd78ce823f477e2d08705eefc12de3ea", kill_on_drop: false }`
[INFO] [stderr]    Compiling kagemeka v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SparseTable`
[INFO] [stdout]    --> src/graph_theory/lca.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |     use super::{SparseTable, DisjointSparseTable, euler_tour_node, Semigroup};
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnionFind` is never constructed
[INFO] [stdout]  --> src/union_find.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct UnionFind {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find`, `unite`, and `size` are never used
[INFO] [stdout]   --> src/union_find.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl UnionFind {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout]  7 |     pub fn new(n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn find(&mut self, u: usize) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn unite(&mut self, u: usize, v: usize) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn size(&mut self, u: usize) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RollbackUnionFind` is never constructed
[INFO] [stdout]   --> src/union_find.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct RollbackUnionFind {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PersistentUnionFind` is never constructed
[INFO] [stdout]   --> src/union_find.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PersistentUnionFind {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `least_prime_factor` is never used
[INFO] [stdout]  --> src/number_theory/prime.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn least_prime_factor(n: usize) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `greatest_prime_factor` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn greatest_prime_factor(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sieve_of_eratosthenes` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn sieve_of_eratosthenes(n: usize) -> Vec<bool> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_prime_numbers` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn find_prime_numbers(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prime_factorize` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn prime_factorize(mut n: usize) -> std::collections::BTreeMap<usize, usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrimeFactorizeLPF` is never constructed
[INFO] [stdout]   --> src/number_theory/prime.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct PrimeFactorizeLPF {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `factorize` are never used
[INFO] [stdout]   --> src/number_theory/prime.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl PrimeFactorizeLPF {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 68 |     pub fn new(n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn factorize(&self, mut n: usize) -> std::collections::BTreeMap<usize, usize> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_prime_factors` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn count_prime_factors(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_divisors` is never used
[INFO] [stdout]  --> src/number_theory/divisor.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn find_divisors(n: i32) -> Vec<i32> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]  --> src/number_theory/lcm_gcd.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn gcd(a: usize, b: usize) -> usize {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]  --> src/number_theory/lcm_gcd.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn lcm(a: usize, b: usize) -> usize { a / gcd(a, b) * b }
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_totient` is never used
[INFO] [stdout]  --> src/number_theory/euler_totient.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn euler_totient(mut n: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EulerTotientLPF` is never constructed
[INFO] [stdout]   --> src/number_theory/euler_totient.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EulerTotientLPF {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extgcd` is never used
[INFO] [stdout]  --> src/number_theory/extgcd.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn extgcd(a: i64, b: i64) -> (i64, i64, i64) {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SegmentTree` is never constructed
[INFO] [stdout]  --> src/graph_theory/tree/segment_tree.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SegmentTree<'a, S: Copy> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_vec`, `merge`, `set`, `get`, and `max_right` are never used
[INFO] [stdout]   --> src/graph_theory/tree/segment_tree.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, S: Copy> SegmentTree<'a, S> {
[INFO] [stdout]    | ------------------------------------ associated items in this implementation
[INFO] [stdout] 21 |
[INFO] [stdout] 22 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn from_vec(m: Monoid<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn merge(&mut self, i: usize) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn set(&mut self, mut i: usize, x: S) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn get(&self, mut l: usize, mut r: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>, l: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FenwickTree` is never constructed
[INFO] [stdout]  --> src/graph_theory/tree/fenwick_tree.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FenwickTree<'a, S: Copy> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_vec`, `set`, `get`, and `max_right` are never used
[INFO] [stdout]   --> src/graph_theory/tree/fenwick_tree.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a, S: Copy> FenwickTree<'a, S> {
[INFO] [stdout]    | ------------------------------------ associated items in this implementation
[INFO] [stdout] 16 |
[INFO] [stdout] 17 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn from_vec(m: Monoid<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn set(&mut self, mut i: usize, x: &S) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, mut i: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs` is never used
[INFO] [stdout]  --> src/graph_theory/shortest_path.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn bfs(g: &[Vec<usize>], src: usize) -> Vec<usize> {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn dijkstra_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Vec<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_dense` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn dijkstra_dense(g: &Vec<Vec<i64>>, src: usize) -> Vec<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NegativeCycleError` is never constructed
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct NegativeCycleError {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl NegativeCycleError {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 77 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellman_ford_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn bellman_ford_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellman_ford_dense` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn bellman_ford_dense(g: &Vec<Vec<i64>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `johnson_dense` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn johnson_dense(g: &Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floyd_warshall` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn floyd_warshall(mut g: Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_dfs` is never used
[INFO] [stdout]  --> src/graph_theory/connected_components.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn with_dfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_bfs` is never used
[INFO] [stdout]   --> src/graph_theory/connected_components.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn with_bfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_union_find` is never used
[INFO] [stdout]   --> src/graph_theory/connected_components.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn with_union_find(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kruskal` is never used
[INFO] [stdout]  --> src/graph_theory/mst.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn kruskal(n: usize, mut g: Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn prim_sparse(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_dense` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn prim_dense(g: &Vec<Vec<i64>>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `boruvka` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn boruvka(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_delete` is never used
[INFO] [stdout]    --> src/graph_theory/mst.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn reverse_delete() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randomized_linear` is never used
[INFO] [stdout]    --> src/graph_theory/mst.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn randomized_linear() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lowlink` is never used
[INFO] [stdout]  --> src/graph_theory/lowlink.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn lowlink(g: &Vec<Vec<usize>>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bridges` is never used
[INFO] [stdout]   --> src/graph_theory/lowlink.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn bridges(n: usize, g: &Vec<(usize, usize)>) -> Vec<(usize, usize)> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `articulation_points` is never used
[INFO] [stdout]   --> src/graph_theory/lowlink.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn articulation_points(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_based` is never used
[INFO] [stdout]  --> src/graph_theory/scc.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn path_based(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tarjan` is never used
[INFO] [stdout]   --> src/graph_theory/scc.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn tarjan(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kosaraju` is never used
[INFO] [stdout]    --> src/graph_theory/scc.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn kosaraju(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NonDAGError` is never constructed
[INFO] [stdout]  --> src/graph_theory/topological_sort.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct NonDAGError {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/graph_theory/topological_sort.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl NonDAGError {
[INFO] [stdout]   | ---------------- associated function in this implementation
[INFO] [stdout] 8 |     fn new() -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_dfs` is never used
[INFO] [stdout]   --> src/graph_theory/topological_sort.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn with_dfs(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kahn` is never used
[INFO] [stdout]   --> src/graph_theory/topological_sort.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn kahn(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_dfs` is never used
[INFO] [stdout]  --> src/graph_theory/tree_diameter.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn tree_dfs(g: &Vec<Vec<(usize, i64)>>, root: usize) -> (Vec<usize>, Vec<i64>) {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_diameter` is never used
[INFO] [stdout]   --> src/graph_theory/tree_diameter.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn tree_diameter(g: &Vec<(usize, usize, i64)>) -> (Vec<usize>, i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_tour_edge` is never used
[INFO] [stdout]  --> src/graph_theory/euler_tour.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn euler_tour_edge(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_tour_node` is never used
[INFO] [stdout]   --> src/graph_theory/euler_tour.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn euler_tour_node(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>, Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_first_idx` is never used
[INFO] [stdout]   --> src/graph_theory/euler_tour.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compute_first_idx(tour_edge: &Vec<isize>) -> Vec<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rerooting` is never used
[INFO] [stdout]  --> src/graph_theory/rerooting.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rerooting<S: Clone, F>(g: &Vec<(usize, usize, F)>, m: &Monoid<S>, map: Box<dyn Fn(&F, &S) -> S>) -> Vec<S> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_bfs` is never used
[INFO] [stdout]  --> src/graph_theory/tree_bfs.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn tree_bfs(g: &Vec<(usize, usize)>, root: usize) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tarjan_offline` is never used
[INFO] [stdout]   --> src/graph_theory/lca.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn tarjan_offline(g: &Vec<(usize, usize)>, uv: &Vec<(usize, usize)>, root: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryLifting` is never constructed
[INFO] [stdout]   --> src/graph_theory/lca.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BinaryLifting {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/graph_theory/lca.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl BinaryLifting {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 69 |     /// O(N\log{N})
[INFO] [stdout] 70 |     pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn get(&self, mut u: usize, mut v: usize) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_hl_decomposition` is never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn with_hl_decomposition() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithHLD` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct WithHLD {}
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSparseTable` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct WithSparseTable<'a, S> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 116 |     impl<'a> WithSparseTable<'a, (usize, usize)> {
[INFO] [stdout]     |     -------------------------------------------- associated items in this implementation
[INFO] [stdout] 117 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSegmentTree` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub struct WithSegmentTree<'a, S: Copy> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     impl<'a> WithSegmentTree<'a, (usize, usize)> {
[INFO] [stdout]     |     -------------------------------------------- associated items in this implementation
[INFO] [stdout] 146 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSqrtDecomposition` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:171:16
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub struct WithSqrtDecomposition {}
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edmonds_karp` is never used
[INFO] [stdout]  --> src/graph_theory/max_flow.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn edmonds_karp(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ford_fulkerson` is never used
[INFO] [stdout]   --> src/graph_theory/max_flow.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn ford_fulkerson(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dinic` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn dinic(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpm` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn mpm() {}
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_fifo_vertex` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn push_relabel_fifo_vertex() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_dist_vertex` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn push_relabel_dist_vertex() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_dynamic_tree` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn push_relabel_dynamic_tree() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `krt` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn krt() {}
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_blocking_flow` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn binary_blocking_flow() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orlin` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn orlin() {}
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ford_fulkerson` is never used
[INFO] [stdout]   --> src/graph_theory/max_cardinal_match.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn ford_fulkerson(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hopcroft_karp` is never used
[INFO] [stdout]   --> src/graph_theory/max_cardinal_match.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn hopcroft_karp(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blossom` is never used
[INFO] [stdout]    --> src/graph_theory/max_cardinal_match.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn blossom() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Monoid` is never constructed
[INFO] [stdout]  --> src/algebra/abstract_/structure.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub struct Monoid<'a, S> {
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semigroup` is never constructed
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub struct Semigroup<'a, S> {
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Identity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub trait Identity { fn e() -> Self; } 
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Inverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub trait Inverse { fn inv(&self) -> Self;}
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Semigroup` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub trait Semigroup {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Monoid` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub trait Monoid: Semigroup + Identity {}
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Group` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub trait Group: Monoid + Inverse {}
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MulIdentity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub trait MulIdentity { fn e() -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddIdentity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub trait AddIdentity { fn e() -> Self;}
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddInverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub trait AddInverse { fn inv(&self) -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MulInverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub trait MulInverse { fn inv(&self) -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Semiring` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub trait Semiring: Sized + std::ops::Add<Output=Self> + std::ops::Mul<Output=Self> + AddIdentity + MulIdentity {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Ring` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub trait Ring: Semiring + AddInverse {}
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn msb(n: usize) -> isize { 0usize.leading_zeros() as isize - n.leading_zeros() as isize - 1 }
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb_number_binary_search` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn msb_number_binary_search(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn lsb(n: usize) -> usize { n.reverse_bits().leading_zeros() as usize }
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb_number` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn lsb_number(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_least_bit` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn delete_least_bit(n: usize) -> usize { n - lsb_number(n) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_least_bit_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn delete_least_bit_v2(n: usize) -> usize { n & (n - 1) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn bit_length(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn bit_length_v2(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_v3` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn bit_length_v3(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_table` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn bit_length_table(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_bits` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn reverse_bits(n: usize) -> usize { n.reverse_bits() }
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_bits_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn reverse_bits_v2(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_inverse` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn bit_inverse(n: usize) -> usize { !n }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_inverse_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn bit_inverse_v2(n: usize) -> usize { (!0usize) ^ n }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn popcount(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn popcount_v2(n: usize) -> usize { n.count_ones() as usize }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_v3` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn popcount_v3(mut n: usize) -> usize { 
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_table` is never used
[INFO] [stdout]    --> src/algebra/bit.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn popcount_table(n: usize) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow` is never used
[INFO] [stdout]  --> src/algebra/pow.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn pow<T: Monoid>(x: &T, n: usize) -> T {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Power` is never constructed
[INFO] [stdout]   --> src/algebra/pow.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Power<'a, T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `do` are never used
[INFO] [stdout]   --> src/algebra/pow.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<'a, T> Power<'a, T> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(m: structs::Monoid<'a, T>) -> Self { Self { m } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn r#do(&self, x: &T, n: usize) -> T{
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Modular` is never constructed
[INFO] [stdout]  --> src/algebra/modular.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Modular<const MOD: usize> {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `value`, and `inverse` are never used
[INFO] [stdout]   --> src/algebra/modular.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<const MOD: usize> Modular<MOD> {
[INFO] [stdout]    | ----------------------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(n: usize) -> Self { Self { value: n % MOD } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 17 |     pub const fn value(&self) -> usize { self.value % MOD }
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 18 |     pub fn inverse(&self) -> Modular<MOD> { pow(self, MOD - 2) }
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tensor` is never constructed
[INFO] [stdout]  --> src/algebra/tensor.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Tensor<T, const NDIM: usize> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/algebra/tensor.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: Clone + Default, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stdout]    | ----------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(shape: [usize; NDIM]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flat_index` is never used
[INFO] [stdout]   --> src/algebra/tensor.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stdout]    | ------------------------------------------ method in this implementation
[INFO] [stdout] 38 |     fn flat_index(&self, index: [usize; NDIM]) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `e`, `op`, and `pow` are never used
[INFO] [stdout]    --> src/algebra/tensor.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl<T: Copy + Default + Semiring> Tensor<T, 2> {
[INFO] [stdout]     | ----------------------------------------------- associated items in this implementation
[INFO] [stdout]  89 |     pub fn e(&self) -> Self {
[INFO] [stdout]     |            ^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn op(lhs: &Self, rhs: &Self) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn pow(&self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseTable` is never constructed
[INFO] [stdout]  --> src/sparse_table.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SparseTable<'a, S> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/sparse_table.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a, S: Default + Clone> SparseTable<'a, S> {
[INFO] [stdout]    | ----------------------------------------------- associated items in this implementation
[INFO] [stdout] 16 |     /// O(N\log{N})
[INFO] [stdout] 17 |     pub fn new(sg: Semigroup<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get(&self, l: usize, r: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisjointSparseTable` is never constructed
[INFO] [stdout]   --> src/sparse_table.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct DisjointSparseTable<'a, S> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/sparse_table.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl<'a, S: Default + Clone> DisjointSparseTable<'a, S> {
[INFO] [stdout]    | ------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new(sg: Semigroup<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get(&self, l: usize, r: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sa_doubling` is never used
[INFO] [stdout]  --> src/string/sa.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn sa_doubling(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sa_doubling_with_countsort` is never used
[INFO] [stdout]   --> src/string/sa.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn sa_doubling_with_countsort(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sa_is` is never used
[INFO] [stdout]   --> src/string/sa.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn sa_is(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique` is never used
[INFO] [stdout]  --> src/vector.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn unique<T: Ord + Clone>(a: &Vec<T>) -> Vec<T> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_array` is never used
[INFO] [stdout]  --> src/vector.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn compress_array<T: Ord + Clone>(a: &Vec<T>) -> (Vec<usize>, Vec<T>) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Inf` is never used
[INFO] [stdout]  --> src/cmp.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Inf { const INF: Self; }
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bisect` is never used
[INFO] [stdout]  --> src/analysis/binary_search.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn bisect<T>(is_ok: &dyn Fn(&T) -> bool, a: &[T]) -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_bound` is never used
[INFO] [stdout]   --> src/analysis/binary_search.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn lower_bound<T: Ord>(a: &[T], x: &T) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_increasing_sequence` is never used
[INFO] [stdout]  --> src/dp.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn longest_increasing_sequence<T: Ord + Inf + Clone + Copy>(a: &[T]) -> Vec<T> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pascal` is never used
[INFO] [stdout]  --> src/combinatorics/pascal.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn pascal<T: Copy + traits::Semiring>(n: usize) -> Vec<Vec<T>> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.72s
[INFO] running `Command { std: "docker" "inspect" "2edc0c8baf757b549dc0b3094794605edd78ce823f477e2d08705eefc12de3ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2edc0c8baf757b549dc0b3094794605edd78ce823f477e2d08705eefc12de3ea", kill_on_drop: false }`
[INFO] [stdout] 2edc0c8baf757b549dc0b3094794605edd78ce823f477e2d08705eefc12de3ea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 60af2f7808bb73b6cc7f7133831c592d7ae7ce984e2989334b5ccb979065d860
[INFO] running `Command { std: "docker" "start" "-a" "60af2f7808bb73b6cc7f7133831c592d7ae7ce984e2989334b5ccb979065d860", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `SparseTable`
[INFO] [stdout]    --> src/graph_theory/lca.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |     use super::{SparseTable, DisjointSparseTable, euler_tour_node, Semigroup};
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnionFind` is never constructed
[INFO] [stdout]  --> src/union_find.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct UnionFind {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find`, `unite`, and `size` are never used
[INFO] [stdout]   --> src/union_find.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl UnionFind {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout]  7 |     pub fn new(n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub fn find(&mut self, u: usize) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn unite(&mut self, u: usize, v: usize) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn size(&mut self, u: usize) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RollbackUnionFind` is never constructed
[INFO] [stdout]   --> src/union_find.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct RollbackUnionFind {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PersistentUnionFind` is never constructed
[INFO] [stdout]   --> src/union_find.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PersistentUnionFind {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `least_prime_factor` is never used
[INFO] [stdout]  --> src/number_theory/prime.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn least_prime_factor(n: usize) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `greatest_prime_factor` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn greatest_prime_factor(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sieve_of_eratosthenes` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn sieve_of_eratosthenes(n: usize) -> Vec<bool> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_prime_numbers` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn find_prime_numbers(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prime_factorize` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn prime_factorize(mut n: usize) -> std::collections::BTreeMap<usize, usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrimeFactorizeLPF` is never constructed
[INFO] [stdout]   --> src/number_theory/prime.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct PrimeFactorizeLPF {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `factorize` are never used
[INFO] [stdout]   --> src/number_theory/prime.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl PrimeFactorizeLPF {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 68 |     pub fn new(n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn factorize(&self, mut n: usize) -> std::collections::BTreeMap<usize, usize> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_prime_factors` is never used
[INFO] [stdout]   --> src/number_theory/prime.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn count_prime_factors(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_divisors` is never used
[INFO] [stdout]  --> src/number_theory/divisor.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn find_divisors(n: i32) -> Vec<i32> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]  --> src/number_theory/lcm_gcd.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn gcd(a: usize, b: usize) -> usize {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]  --> src/number_theory/lcm_gcd.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn lcm(a: usize, b: usize) -> usize { a / gcd(a, b) * b }
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_totient` is never used
[INFO] [stdout]  --> src/number_theory/euler_totient.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn euler_totient(mut n: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EulerTotientLPF` is never constructed
[INFO] [stdout]   --> src/number_theory/euler_totient.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EulerTotientLPF {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extgcd` is never used
[INFO] [stdout]  --> src/number_theory/extgcd.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn extgcd(a: i64, b: i64) -> (i64, i64, i64) {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SegmentTree` is never constructed
[INFO] [stdout]  --> src/graph_theory/tree/segment_tree.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SegmentTree<'a, S: Copy> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_vec`, `merge`, `set`, `get`, and `max_right` are never used
[INFO] [stdout]   --> src/graph_theory/tree/segment_tree.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, S: Copy> SegmentTree<'a, S> {
[INFO] [stdout]    | ------------------------------------ associated items in this implementation
[INFO] [stdout] 21 |
[INFO] [stdout] 22 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn from_vec(m: Monoid<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn merge(&mut self, i: usize) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn set(&mut self, mut i: usize, x: S) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn get(&self, mut l: usize, mut r: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>, l: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FenwickTree` is never constructed
[INFO] [stdout]  --> src/graph_theory/tree/fenwick_tree.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct FenwickTree<'a, S: Copy> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_vec`, `set`, `get`, and `max_right` are never used
[INFO] [stdout]   --> src/graph_theory/tree/fenwick_tree.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a, S: Copy> FenwickTree<'a, S> {
[INFO] [stdout]    | ------------------------------------ associated items in this implementation
[INFO] [stdout] 16 |
[INFO] [stdout] 17 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn from_vec(m: Monoid<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn set(&mut self, mut i: usize, x: &S) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn get(&self, mut i: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs` is never used
[INFO] [stdout]  --> src/graph_theory/shortest_path.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn bfs(g: &[Vec<usize>], src: usize) -> Vec<usize> {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn dijkstra_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Vec<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_dense` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn dijkstra_dense(g: &Vec<Vec<i64>>, src: usize) -> Vec<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NegativeCycleError` is never constructed
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct NegativeCycleError {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl NegativeCycleError {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 77 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellman_ford_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn bellman_ford_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellman_ford_dense` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn bellman_ford_dense(g: &Vec<Vec<i64>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `johnson_dense` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn johnson_dense(g: &Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floyd_warshall` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn floyd_warshall(mut g: Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_dfs` is never used
[INFO] [stdout]  --> src/graph_theory/connected_components.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn with_dfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_bfs` is never used
[INFO] [stdout]   --> src/graph_theory/connected_components.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn with_bfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_union_find` is never used
[INFO] [stdout]   --> src/graph_theory/connected_components.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn with_union_find(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kruskal` is never used
[INFO] [stdout]  --> src/graph_theory/mst.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn kruskal(n: usize, mut g: Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn prim_sparse(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_dense` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn prim_dense(g: &Vec<Vec<i64>>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `boruvka` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn boruvka(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_delete` is never used
[INFO] [stdout]    --> src/graph_theory/mst.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn reverse_delete() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randomized_linear` is never used
[INFO] [stdout]    --> src/graph_theory/mst.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn randomized_linear() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lowlink` is never used
[INFO] [stdout]  --> src/graph_theory/lowlink.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn lowlink(g: &Vec<Vec<usize>>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bridges` is never used
[INFO] [stdout]   --> src/graph_theory/lowlink.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn bridges(n: usize, g: &Vec<(usize, usize)>) -> Vec<(usize, usize)> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `articulation_points` is never used
[INFO] [stdout]   --> src/graph_theory/lowlink.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn articulation_points(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_based` is never used
[INFO] [stdout]  --> src/graph_theory/scc.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn path_based(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tarjan` is never used
[INFO] [stdout]   --> src/graph_theory/scc.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn tarjan(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kosaraju` is never used
[INFO] [stdout]    --> src/graph_theory/scc.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn kosaraju(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NonDAGError` is never constructed
[INFO] [stdout]  --> src/graph_theory/topological_sort.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct NonDAGError {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/graph_theory/topological_sort.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl NonDAGError {
[INFO] [stdout]   | ---------------- associated function in this implementation
[INFO] [stdout] 8 |     fn new() -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_dfs` is never used
[INFO] [stdout]   --> src/graph_theory/topological_sort.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn with_dfs(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kahn` is never used
[INFO] [stdout]   --> src/graph_theory/topological_sort.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn kahn(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_dfs` is never used
[INFO] [stdout]  --> src/graph_theory/tree_diameter.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn tree_dfs(g: &Vec<Vec<(usize, i64)>>, root: usize) -> (Vec<usize>, Vec<i64>) {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_diameter` is never used
[INFO] [stdout]   --> src/graph_theory/tree_diameter.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn tree_diameter(g: &Vec<(usize, usize, i64)>) -> (Vec<usize>, i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_tour_edge` is never used
[INFO] [stdout]  --> src/graph_theory/euler_tour.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn euler_tour_edge(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_tour_node` is never used
[INFO] [stdout]   --> src/graph_theory/euler_tour.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn euler_tour_node(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>, Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_first_idx` is never used
[INFO] [stdout]   --> src/graph_theory/euler_tour.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compute_first_idx(tour_edge: &Vec<isize>) -> Vec<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rerooting` is never used
[INFO] [stdout]  --> src/graph_theory/rerooting.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rerooting<S: Clone, F>(g: &Vec<(usize, usize, F)>, m: &Monoid<S>, map: Box<dyn Fn(&F, &S) -> S>) -> Vec<S> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_bfs` is never used
[INFO] [stdout]  --> src/graph_theory/tree_bfs.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn tree_bfs(g: &Vec<(usize, usize)>, root: usize) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tarjan_offline` is never used
[INFO] [stdout]   --> src/graph_theory/lca.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn tarjan_offline(g: &Vec<(usize, usize)>, uv: &Vec<(usize, usize)>, root: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryLifting` is never constructed
[INFO] [stdout]   --> src/graph_theory/lca.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BinaryLifting {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/graph_theory/lca.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl BinaryLifting {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 69 |     /// O(N\log{N})
[INFO] [stdout] 70 |     pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn get(&self, mut u: usize, mut v: usize) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_hl_decomposition` is never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn with_hl_decomposition() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithHLD` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct WithHLD {}
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSparseTable` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct WithSparseTable<'a, S> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 116 |     impl<'a> WithSparseTable<'a, (usize, usize)> {
[INFO] [stdout]     |     -------------------------------------------- associated items in this implementation
[INFO] [stdout] 117 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSegmentTree` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub struct WithSegmentTree<'a, S: Copy> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     impl<'a> WithSegmentTree<'a, (usize, usize)> {
[INFO] [stdout]     |     -------------------------------------------- associated items in this implementation
[INFO] [stdout] 146 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSqrtDecomposition` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:171:16
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub struct WithSqrtDecomposition {}
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edmonds_karp` is never used
[INFO] [stdout]  --> src/graph_theory/max_flow.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn edmonds_karp(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ford_fulkerson` is never used
[INFO] [stdout]   --> src/graph_theory/max_flow.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn ford_fulkerson(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dinic` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn dinic(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpm` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn mpm() {}
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_fifo_vertex` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn push_relabel_fifo_vertex() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_dist_vertex` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn push_relabel_dist_vertex() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_dynamic_tree` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn push_relabel_dynamic_tree() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `krt` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn krt() {}
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_blocking_flow` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn binary_blocking_flow() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orlin` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn orlin() {}
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ford_fulkerson` is never used
[INFO] [stdout]   --> src/graph_theory/max_cardinal_match.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn ford_fulkerson(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hopcroft_karp` is never used
[INFO] [stdout]   --> src/graph_theory/max_cardinal_match.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn hopcroft_karp(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blossom` is never used
[INFO] [stdout]    --> src/graph_theory/max_cardinal_match.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn blossom() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Monoid` is never constructed
[INFO] [stdout]  --> src/algebra/abstract_/structure.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub struct Monoid<'a, S> {
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semigroup` is never constructed
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub struct Semigroup<'a, S> {
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Identity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub trait Identity { fn e() -> Self; } 
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Inverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub trait Inverse { fn inv(&self) -> Self;}
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Semigroup` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub trait Semigroup {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Monoid` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub trait Monoid: Semigroup + Identity {}
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Group` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub trait Group: Monoid + Inverse {}
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MulIdentity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub trait MulIdentity { fn e() -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddIdentity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub trait AddIdentity { fn e() -> Self;}
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddInverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub trait AddInverse { fn inv(&self) -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MulInverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub trait MulInverse { fn inv(&self) -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Semiring` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub trait Semiring: Sized + std::ops::Add<Output=Self> + std::ops::Mul<Output=Self> + AddIdentity + MulIdentity {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Ring` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub trait Ring: Semiring + AddInverse {}
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn msb(n: usize) -> isize { 0usize.leading_zeros() as isize - n.leading_zeros() as isize - 1 }
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb_number_binary_search` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn msb_number_binary_search(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn lsb(n: usize) -> usize { n.reverse_bits().leading_zeros() as usize }
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb_number` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn lsb_number(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_least_bit` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn delete_least_bit(n: usize) -> usize { n - lsb_number(n) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_least_bit_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn delete_least_bit_v2(n: usize) -> usize { n & (n - 1) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn bit_length(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn bit_length_v2(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_v3` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn bit_length_v3(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_table` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn bit_length_table(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_bits` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn reverse_bits(n: usize) -> usize { n.reverse_bits() }
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_bits_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn reverse_bits_v2(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_inverse` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn bit_inverse(n: usize) -> usize { !n }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_inverse_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn bit_inverse_v2(n: usize) -> usize { (!0usize) ^ n }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn popcount(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn popcount_v2(n: usize) -> usize { n.count_ones() as usize }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_v3` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn popcount_v3(mut n: usize) -> usize { 
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_table` is never used
[INFO] [stdout]    --> src/algebra/bit.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn popcount_table(n: usize) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pow` is never used
[INFO] [stdout]  --> src/algebra/pow.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn pow<T: Monoid>(x: &T, n: usize) -> T {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Power` is never constructed
[INFO] [stdout]   --> src/algebra/pow.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Power<'a, T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `do` are never used
[INFO] [stdout]   --> src/algebra/pow.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<'a, T> Power<'a, T> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(m: structs::Monoid<'a, T>) -> Self { Self { m } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn r#do(&self, x: &T, n: usize) -> T{
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Modular` is never constructed
[INFO] [stdout]  --> src/algebra/modular.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Modular<const MOD: usize> {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `value`, and `inverse` are never used
[INFO] [stdout]   --> src/algebra/modular.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<const MOD: usize> Modular<MOD> {
[INFO] [stdout]    | ----------------------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(n: usize) -> Self { Self { value: n % MOD } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 17 |     pub const fn value(&self) -> usize { self.value % MOD }
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 18 |     pub fn inverse(&self) -> Modular<MOD> { pow(self, MOD - 2) }
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tensor` is never constructed
[INFO] [stdout]  --> src/algebra/tensor.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Tensor<T, const NDIM: usize> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/algebra/tensor.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: Clone + Default, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stdout]    | ----------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(shape: [usize; NDIM]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flat_index` is never used
[INFO] [stdout]   --> src/algebra/tensor.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stdout]    | ------------------------------------------ method in this implementation
[INFO] [stdout] 38 |     fn flat_index(&self, index: [usize; NDIM]) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `e`, `op`, and `pow` are never used
[INFO] [stdout]    --> src/algebra/tensor.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl<T: Copy + Default + Semiring> Tensor<T, 2> {
[INFO] [stdout]     | ----------------------------------------------- associated items in this implementation
[INFO] [stdout]  89 |     pub fn e(&self) -> Self {
[INFO] [stdout]     |            ^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn op(lhs: &Self, rhs: &Self) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn pow(&self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseTable` is never constructed
[INFO] [stdout]  --> src/sparse_table.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct SparseTable<'a, S> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/sparse_table.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a, S: Default + Clone> SparseTable<'a, S> {
[INFO] [stdout]    | ----------------------------------------------- associated items in this implementation
[INFO] [stdout] 16 |     /// O(N\log{N})
[INFO] [stdout] 17 |     pub fn new(sg: Semigroup<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get(&self, l: usize, r: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DisjointSparseTable` is never constructed
[INFO] [stdout]   --> src/sparse_table.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct DisjointSparseTable<'a, S> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/sparse_table.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl<'a, S: Default + Clone> DisjointSparseTable<'a, S> {
[INFO] [stdout]    | ------------------------------------------------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new(sg: Semigroup<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get(&self, l: usize, r: usize) -> S {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sa_doubling` is never used
[INFO] [stdout]  --> src/string/sa.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn sa_doubling(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sa_doubling_with_countsort` is never used
[INFO] [stdout]   --> src/string/sa.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn sa_doubling_with_countsort(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sa_is` is never used
[INFO] [stdout]   --> src/string/sa.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn sa_is(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique` is never used
[INFO] [stdout]  --> src/vector.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn unique<T: Ord + Clone>(a: &Vec<T>) -> Vec<T> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_array` is never used
[INFO] [stdout]  --> src/vector.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn compress_array<T: Ord + Clone>(a: &Vec<T>) -> (Vec<usize>, Vec<T>) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Inf` is never used
[INFO] [stdout]  --> src/cmp.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Inf { const INF: Self; }
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bisect` is never used
[INFO] [stdout]  --> src/analysis/binary_search.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn bisect<T>(is_ok: &dyn Fn(&T) -> bool, a: &[T]) -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_bound` is never used
[INFO] [stdout]   --> src/analysis/binary_search.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn lower_bound<T: Ord>(a: &[T], x: &T) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_increasing_sequence` is never used
[INFO] [stdout]  --> src/dp.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn longest_increasing_sequence<T: Ord + Inf + Clone + Copy>(a: &[T]) -> Vec<T> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pascal` is never used
[INFO] [stdout]  --> src/combinatorics/pascal.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn pascal<T: Copy + traits::Semiring>(n: usize) -> Vec<Vec<T>> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling kagemeka v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SparseTable`
[INFO] [stdout]    --> src/graph_theory/lca.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |     use super::{SparseTable, DisjointSparseTable, euler_tour_node, Semigroup};
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::array::IntoIter::<T, N>::new`: use `IntoIterator::into_iter` instead
[INFO] [stdout]    --> src/number_theory/prime.rs:142:43
[INFO] [stdout]     |
[INFO] [stdout] 142 |             BTreeMap::from_iter(IntoIter::new([(3, 1), (5, 1), (7, 1)])),
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::array::IntoIter::<T, N>::new`: use `IntoIterator::into_iter` instead
[INFO] [stdout]    --> src/number_theory/prime.rs:153:43
[INFO] [stdout]     |
[INFO] [stdout] 153 |             BTreeMap::from_iter(IntoIter::new([(3, 1), (5, 1), (7, 1)])),
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RollbackUnionFind` is never constructed
[INFO] [stdout]   --> src/union_find.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct RollbackUnionFind {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PersistentUnionFind` is never constructed
[INFO] [stdout]   --> src/union_find.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PersistentUnionFind {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]  --> src/number_theory/lcm_gcd.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn gcd(a: usize, b: usize) -> usize {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]  --> src/number_theory/lcm_gcd.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn lcm(a: usize, b: usize) -> usize { a / gcd(a, b) * b }
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_totient` is never used
[INFO] [stdout]  --> src/number_theory/euler_totient.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn euler_totient(mut n: usize) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EulerTotientLPF` is never constructed
[INFO] [stdout]   --> src/number_theory/euler_totient.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EulerTotientLPF {}
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extgcd` is never used
[INFO] [stdout]  --> src/number_theory/extgcd.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn extgcd(a: i64, b: i64) -> (i64, i64, i64) {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `max_right` are never used
[INFO] [stdout]   --> src/graph_theory/tree/segment_tree.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl<'a, S: Copy> SegmentTree<'a, S> {
[INFO] [stdout]    | ------------------------------------ associated items in this implementation
[INFO] [stdout] 21 |
[INFO] [stdout] 22 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>, l: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `max_right` are never used
[INFO] [stdout]   --> src/graph_theory/tree/fenwick_tree.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a, S: Copy> FenwickTree<'a, S> {
[INFO] [stdout]    | ------------------------------------ associated items in this implementation
[INFO] [stdout] 16 |
[INFO] [stdout] 17 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs` is never used
[INFO] [stdout]  --> src/graph_theory/shortest_path.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn bfs(g: &[Vec<usize>], src: usize) -> Vec<usize> {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn dijkstra_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Vec<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_dense` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn dijkstra_dense(g: &Vec<Vec<i64>>, src: usize) -> Vec<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NegativeCycleError` is never constructed
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct NegativeCycleError {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl NegativeCycleError {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 77 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellman_ford_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/shortest_path.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn bellman_ford_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bellman_ford_dense` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn bellman_ford_dense(g: &Vec<Vec<i64>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `johnson_dense` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn johnson_dense(g: &Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `floyd_warshall` is never used
[INFO] [stdout]    --> src/graph_theory/shortest_path.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub fn floyd_warshall(mut g: Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_dfs` is never used
[INFO] [stdout]  --> src/graph_theory/connected_components.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn with_dfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_bfs` is never used
[INFO] [stdout]   --> src/graph_theory/connected_components.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn with_bfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_union_find` is never used
[INFO] [stdout]   --> src/graph_theory/connected_components.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn with_union_find(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kruskal` is never used
[INFO] [stdout]  --> src/graph_theory/mst.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn kruskal(n: usize, mut g: Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_sparse` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn prim_sparse(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prim_dense` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn prim_dense(g: &Vec<Vec<i64>>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `boruvka` is never used
[INFO] [stdout]   --> src/graph_theory/mst.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn boruvka(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_delete` is never used
[INFO] [stdout]    --> src/graph_theory/mst.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn reverse_delete() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `randomized_linear` is never used
[INFO] [stdout]    --> src/graph_theory/mst.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn randomized_linear() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lowlink` is never used
[INFO] [stdout]  --> src/graph_theory/lowlink.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn lowlink(g: &Vec<Vec<usize>>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bridges` is never used
[INFO] [stdout]   --> src/graph_theory/lowlink.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn bridges(n: usize, g: &Vec<(usize, usize)>) -> Vec<(usize, usize)> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `articulation_points` is never used
[INFO] [stdout]   --> src/graph_theory/lowlink.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn articulation_points(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `path_based` is never used
[INFO] [stdout]  --> src/graph_theory/scc.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn path_based(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tarjan` is never used
[INFO] [stdout]   --> src/graph_theory/scc.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn tarjan(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kosaraju` is never used
[INFO] [stdout]    --> src/graph_theory/scc.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn kosaraju(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NonDAGError` is never constructed
[INFO] [stdout]  --> src/graph_theory/topological_sort.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct NonDAGError {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/graph_theory/topological_sort.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl NonDAGError {
[INFO] [stdout]   | ---------------- associated function in this implementation
[INFO] [stdout] 8 |     fn new() -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_dfs` is never used
[INFO] [stdout]   --> src/graph_theory/topological_sort.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn with_dfs(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kahn` is never used
[INFO] [stdout]   --> src/graph_theory/topological_sort.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn kahn(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_dfs` is never used
[INFO] [stdout]  --> src/graph_theory/tree_diameter.rs:2:4
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn tree_dfs(g: &Vec<Vec<(usize, i64)>>, root: usize) -> (Vec<usize>, Vec<i64>) {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_diameter` is never used
[INFO] [stdout]   --> src/graph_theory/tree_diameter.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn tree_diameter(g: &Vec<(usize, usize, i64)>) -> (Vec<usize>, i64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_tour_edge` is never used
[INFO] [stdout]  --> src/graph_theory/euler_tour.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn euler_tour_edge(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `euler_tour_node` is never used
[INFO] [stdout]   --> src/graph_theory/euler_tour.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn euler_tour_node(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>, Vec<usize>, Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_first_idx` is never used
[INFO] [stdout]   --> src/graph_theory/euler_tour.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compute_first_idx(tour_edge: &Vec<isize>) -> Vec<usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rerooting` is never used
[INFO] [stdout]  --> src/graph_theory/rerooting.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn rerooting<S: Clone, F>(g: &Vec<(usize, usize, F)>, m: &Monoid<S>, map: Box<dyn Fn(&F, &S) -> S>) -> Vec<S> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tree_bfs` is never used
[INFO] [stdout]  --> src/graph_theory/tree_bfs.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn tree_bfs(g: &Vec<(usize, usize)>, root: usize) -> (Vec<usize>, Vec<usize>) {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tarjan_offline` is never used
[INFO] [stdout]   --> src/graph_theory/lca.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn tarjan_offline(g: &Vec<(usize, usize)>, uv: &Vec<(usize, usize)>, root: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryLifting` is never constructed
[INFO] [stdout]   --> src/graph_theory/lca.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BinaryLifting {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> src/graph_theory/lca.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl BinaryLifting {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 69 |     /// O(N\log{N})
[INFO] [stdout] 70 |     pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn get(&self, mut u: usize, mut v: usize) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_hl_decomposition` is never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn with_hl_decomposition() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithHLD` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct WithHLD {}
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSparseTable` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct WithSparseTable<'a, S> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 116 |     impl<'a> WithSparseTable<'a, (usize, usize)> {
[INFO] [stdout]     |     -------------------------------------------- associated items in this implementation
[INFO] [stdout] 117 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSegmentTree` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub struct WithSegmentTree<'a, S: Copy> {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/graph_theory/lca.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     impl<'a> WithSegmentTree<'a, (usize, usize)> {
[INFO] [stdout]     |     -------------------------------------------- associated items in this implementation
[INFO] [stdout] 146 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WithSqrtDecomposition` is never constructed
[INFO] [stdout]    --> src/graph_theory/lca.rs:171:16
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub struct WithSqrtDecomposition {}
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edmonds_karp` is never used
[INFO] [stdout]  --> src/graph_theory/max_flow.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn edmonds_karp(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ford_fulkerson` is never used
[INFO] [stdout]   --> src/graph_theory/max_flow.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn ford_fulkerson(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dinic` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn dinic(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mpm` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:178:8
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub fn mpm() {}
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_fifo_vertex` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn push_relabel_fifo_vertex() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_dist_vertex` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn push_relabel_dist_vertex() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_relabel_dynamic_tree` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn push_relabel_dynamic_tree() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `krt` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn krt() {}
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_blocking_flow` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn binary_blocking_flow() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `orlin` is never used
[INFO] [stdout]    --> src/graph_theory/max_flow.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub fn orlin() {}
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ford_fulkerson` is never used
[INFO] [stdout]   --> src/graph_theory/max_cardinal_match.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn ford_fulkerson(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hopcroft_karp` is never used
[INFO] [stdout]   --> src/graph_theory/max_cardinal_match.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn hopcroft_karp(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blossom` is never used
[INFO] [stdout]    --> src/graph_theory/max_cardinal_match.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn blossom() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `commutative` and `idempotent` are never read
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:9:13
[INFO] [stdout]    |
[INFO] [stdout]  6 |     pub struct Monoid<'a, S> {
[INFO] [stdout]    |                ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |         pub commutative: bool,
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 10 |         pub idempotent: bool,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Inverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub trait Inverse { fn inv(&self) -> Self;}
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `COMMUTATIVE` and `IDEMPOTENT` are never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub trait Semigroup {
[INFO] [stdout]    |               --------- associated constants in this trait
[INFO] [stdout] 25 |         fn op(_: &Self, _: &Self) -> Self;
[INFO] [stdout] 26 |         const COMMUTATIVE: bool;
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 27 |         const IDEMPOTENT: bool;
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Group` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub trait Group: Monoid + Inverse {}
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MulIdentity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub trait MulIdentity { fn e() -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddIdentity` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub trait AddIdentity { fn e() -> Self;}
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AddInverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub trait AddInverse { fn inv(&self) -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MulInverse` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub trait MulInverse { fn inv(&self) -> Self; }
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Semiring` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub trait Semiring: Sized + std::ops::Add<Output=Self> + std::ops::Mul<Output=Self> + AddIdentity + MulIdentity {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Ring` is never used
[INFO] [stdout]   --> src/algebra/abstract_/structure.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub trait Ring: Semiring + AddInverse {}
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn msb(n: usize) -> isize { 0usize.leading_zeros() as isize - n.leading_zeros() as isize - 1 }
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `msb_number_binary_search` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn msb_number_binary_search(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn lsb(n: usize) -> usize { n.reverse_bits().leading_zeros() as usize }
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lsb_number` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn lsb_number(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_least_bit` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn delete_least_bit(n: usize) -> usize { n - lsb_number(n) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_least_bit_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn delete_least_bit_v2(n: usize) -> usize { n & (n - 1) }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn bit_length_v2(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_v3` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn bit_length_v3(n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_length_table` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn bit_length_table(n: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_bits` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn reverse_bits(n: usize) -> usize { n.reverse_bits() }
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_bits_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn reverse_bits_v2(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_inverse` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn bit_inverse(n: usize) -> usize { !n }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit_inverse_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn bit_inverse_v2(n: usize) -> usize { (!0usize) ^ n }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn popcount(mut n: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_v2` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn popcount_v2(n: usize) -> usize { n.count_ones() as usize }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_v3` is never used
[INFO] [stdout]   --> src/algebra/bit.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn popcount_v3(mut n: usize) -> usize { 
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `popcount_table` is never used
[INFO] [stdout]    --> src/algebra/bit.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn popcount_table(n: usize) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Power` is never constructed
[INFO] [stdout]   --> src/algebra/pow.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Power<'a, T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `do` are never used
[INFO] [stdout]   --> src/algebra/pow.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<'a, T> Power<'a, T> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(m: structs::Monoid<'a, T>) -> Self { Self { m } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn r#do(&self, x: &T, n: usize) -> T{
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/algebra/modular.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<const MOD: usize> Modular<MOD> {
[INFO] [stdout]    | ----------------------------------- method in this implementation
[INFO] [stdout] 16 |     pub fn new(n: usize) -> Self { Self { value: n % MOD } }
[INFO] [stdout] 17 |     pub const fn value(&self) -> usize { self.value % MOD }
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tensor` is never constructed
[INFO] [stdout]  --> src/algebra/tensor.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Tensor<T, const NDIM: usize> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/algebra/tensor.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<T: Clone + Default, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stdout]    | ----------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 24 |     pub fn new(shape: [usize; NDIM]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flat_index` is never used
[INFO] [stdout]   --> src/algebra/tensor.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stdout]    | ------------------------------------------ method in this implementation
[INFO] [stdout] 38 |     fn flat_index(&self, index: [usize; NDIM]) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `e`, `op`, and `pow` are never used
[INFO] [stdout]    --> src/algebra/tensor.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl<T: Copy + Default + Semiring> Tensor<T, 2> {
[INFO] [stdout]     | ----------------------------------------------- associated items in this implementation
[INFO] [stdout]  89 |     pub fn e(&self) -> Self {
[INFO] [stdout]     |            ^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn op(lhs: &Self, rhs: &Self) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn pow(&self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Inf` is never used
[INFO] [stdout]  --> src/cmp.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Inf { const INF: Self; }
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bisect` is never used
[INFO] [stdout]  --> src/analysis/binary_search.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn bisect<T>(is_ok: &dyn Fn(&T) -> bool, a: &[T]) -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_bound` is never used
[INFO] [stdout]   --> src/analysis/binary_search.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn lower_bound<T: Ord>(a: &[T], x: &T) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_increasing_sequence` is never used
[INFO] [stdout]  --> src/dp.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn longest_increasing_sequence<T: Ord + Inf + Clone + Copy>(a: &[T]) -> Vec<T> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pascal` is never used
[INFO] [stdout]  --> src/combinatorics/pascal.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn pascal<T: Copy + traits::Semiring>(n: usize) -> Vec<Vec<T>> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.53s
[INFO] running `Command { std: "docker" "inspect" "60af2f7808bb73b6cc7f7133831c592d7ae7ce984e2989334b5ccb979065d860", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "60af2f7808bb73b6cc7f7133831c592d7ae7ce984e2989334b5ccb979065d860", kill_on_drop: false }`
[INFO] [stdout] 60af2f7808bb73b6cc7f7133831c592d7ae7ce984e2989334b5ccb979065d860
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3d4edcad272a505ec8384a2766d490df032564866e95329cd3adfca8abd2558d
[INFO] running `Command { std: "docker" "start" "-a" "3d4edcad272a505ec8384a2766d490df032564866e95329cd3adfca8abd2558d", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `SparseTable`
[INFO] [stderr]    --> src/graph_theory/lca.rs:108:17
[INFO] [stderr]     |
[INFO] [stderr] 108 |     use super::{SparseTable, DisjointSparseTable, euler_tour_node, Semigroup};
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UnionFind` is never constructed
[INFO] [stderr]  --> src/union_find.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct UnionFind {
[INFO] [stderr]   |            ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `find`, `unite`, and `size` are never used
[INFO] [stderr]   --> src/union_find.rs:7:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl UnionFind {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr]  7 |     pub fn new(n: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 11 |     pub fn find(&mut self, u: usize) -> usize {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub fn unite(&mut self, u: usize, v: usize) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn size(&mut self, u: usize) -> usize {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RollbackUnionFind` is never constructed
[INFO] [stderr]   --> src/union_find.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct RollbackUnionFind {}
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PersistentUnionFind` is never constructed
[INFO] [stderr]   --> src/union_find.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct PersistentUnionFind {}
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `least_prime_factor` is never used
[INFO] [stderr]  --> src/number_theory/prime.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn least_prime_factor(n: usize) -> Vec<usize> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `greatest_prime_factor` is never used
[INFO] [stderr]   --> src/number_theory/prime.rs:18:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn greatest_prime_factor(n: usize) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sieve_of_eratosthenes` is never used
[INFO] [stderr]   --> src/number_theory/prime.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn sieve_of_eratosthenes(n: usize) -> Vec<bool> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_prime_numbers` is never used
[INFO] [stderr]   --> src/number_theory/prime.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn find_prime_numbers(n: usize) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `prime_factorize` is never used
[INFO] [stderr]   --> src/number_theory/prime.rs:46:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn prime_factorize(mut n: usize) -> std::collections::BTreeMap<usize, usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PrimeFactorizeLPF` is never constructed
[INFO] [stderr]   --> src/number_theory/prime.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct PrimeFactorizeLPF {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `factorize` are never used
[INFO] [stderr]   --> src/number_theory/prime.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 67 | impl PrimeFactorizeLPF {
[INFO] [stderr]    | ---------------------- associated items in this implementation
[INFO] [stderr] 68 |     pub fn new(n: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     pub fn factorize(&self, mut n: usize) -> std::collections::BTreeMap<usize, usize> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `count_prime_factors` is never used
[INFO] [stderr]   --> src/number_theory/prime.rs:84:8
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn count_prime_factors(n: usize) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_divisors` is never used
[INFO] [stderr]  --> src/number_theory/divisor.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn find_divisors(n: i32) -> Vec<i32> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `gcd` is never used
[INFO] [stderr]  --> src/number_theory/lcm_gcd.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn gcd(a: usize, b: usize) -> usize {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lcm` is never used
[INFO] [stderr]  --> src/number_theory/lcm_gcd.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn lcm(a: usize, b: usize) -> usize { a / gcd(a, b) * b }
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `euler_totient` is never used
[INFO] [stderr]  --> src/number_theory/euler_totient.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn euler_totient(mut n: usize) -> usize {
[INFO] [stderr]   |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `EulerTotientLPF` is never constructed
[INFO] [stderr]   --> src/number_theory/euler_totient.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct EulerTotientLPF {}
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extgcd` is never used
[INFO] [stderr]  --> src/number_theory/extgcd.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn extgcd(a: i64, b: i64) -> (i64, i64, i64) {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SegmentTree` is never constructed
[INFO] [stderr]  --> src/graph_theory/tree/segment_tree.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct SegmentTree<'a, S: Copy> {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from_vec`, `merge`, `set`, `get`, and `max_right` are never used
[INFO] [stderr]   --> src/graph_theory/tree/segment_tree.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl<'a, S: Copy> SegmentTree<'a, S> {
[INFO] [stderr]    | ------------------------------------ associated items in this implementation
[INFO] [stderr] 21 |
[INFO] [stderr] 22 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn from_vec(m: Monoid<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     fn merge(&mut self, i: usize) {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn set(&mut self, mut i: usize, x: S) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub fn get(&self, mut l: usize, mut r: usize) -> S {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>, l: usize) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FenwickTree` is never constructed
[INFO] [stderr]  --> src/graph_theory/tree/fenwick_tree.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct FenwickTree<'a, S: Copy> {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from_vec`, `set`, `get`, and `max_right` are never used
[INFO] [stderr]   --> src/graph_theory/tree/fenwick_tree.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl<'a, S: Copy> FenwickTree<'a, S> {
[INFO] [stderr]    | ------------------------------------ associated items in this implementation
[INFO] [stderr] 16 |
[INFO] [stderr] 17 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn from_vec(m: Monoid<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn set(&mut self, mut i: usize, x: &S) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn get(&self, mut i: usize) -> S {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bfs` is never used
[INFO] [stderr]  --> src/graph_theory/shortest_path.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn bfs(g: &[Vec<usize>], src: usize) -> Vec<usize> {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dijkstra_sparse` is never used
[INFO] [stderr]   --> src/graph_theory/shortest_path.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn dijkstra_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Vec<i64> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dijkstra_dense` is never used
[INFO] [stderr]   --> src/graph_theory/shortest_path.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn dijkstra_dense(g: &Vec<Vec<i64>>, src: usize) -> Vec<i64> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NegativeCycleError` is never constructed
[INFO] [stderr]   --> src/graph_theory/shortest_path.rs:72:12
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub struct NegativeCycleError {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/graph_theory/shortest_path.rs:77:8
[INFO] [stderr]    |
[INFO] [stderr] 76 | impl NegativeCycleError {
[INFO] [stderr]    | ----------------------- associated function in this implementation
[INFO] [stderr] 77 |     fn new() -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bellman_ford_sparse` is never used
[INFO] [stderr]   --> src/graph_theory/shortest_path.rs:94:8
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn bellman_ford_sparse(g: &Vec<Vec<(usize, i64)>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bellman_ford_dense` is never used
[INFO] [stderr]    --> src/graph_theory/shortest_path.rs:119:8
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub fn bellman_ford_dense(g: &Vec<Vec<i64>>, src: usize) -> Result<Vec<i64>, NegativeCycleError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `johnson_dense` is never used
[INFO] [stderr]    --> src/graph_theory/shortest_path.rs:143:8
[INFO] [stderr]     |
[INFO] [stderr] 143 | pub fn johnson_dense(g: &Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `floyd_warshall` is never used
[INFO] [stderr]    --> src/graph_theory/shortest_path.rs:169:8
[INFO] [stderr]     |
[INFO] [stderr] 169 | pub fn floyd_warshall(mut g: Vec<Vec<i64>>) -> Result<Vec<Vec<i64>>, NegativeCycleError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `with_dfs` is never used
[INFO] [stderr]  --> src/graph_theory/connected_components.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn with_dfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `with_bfs` is never used
[INFO] [stderr]   --> src/graph_theory/connected_components.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub fn with_bfs(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `with_union_find` is never used
[INFO] [stderr]   --> src/graph_theory/connected_components.rs:51:8
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub fn with_union_find(n: usize, g: &Vec<(usize, usize)>) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `kruskal` is never used
[INFO] [stderr]  --> src/graph_theory/mst.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn kruskal(n: usize, mut g: Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stderr]   |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `prim_sparse` is never used
[INFO] [stderr]   --> src/graph_theory/mst.rs:22:8
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn prim_sparse(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `prim_dense` is never used
[INFO] [stderr]   --> src/graph_theory/mst.rs:49:8
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub fn prim_dense(g: &Vec<Vec<i64>>) -> Vec<(usize, usize, i64)> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `boruvka` is never used
[INFO] [stderr]   --> src/graph_theory/mst.rs:85:8
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub fn boruvka(n: usize, g: &Vec<(usize, usize, i64)>) -> Vec<(usize, usize, i64)> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reverse_delete` is never used
[INFO] [stderr]    --> src/graph_theory/mst.rs:114:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub fn reverse_delete() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `randomized_linear` is never used
[INFO] [stderr]    --> src/graph_theory/mst.rs:117:8
[INFO] [stderr]     |
[INFO] [stderr] 117 | pub fn randomized_linear() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lowlink` is never used
[INFO] [stderr]  --> src/graph_theory/lowlink.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub fn lowlink(g: &Vec<Vec<usize>>) -> (Vec<usize>, Vec<usize>) {
[INFO] [stderr]   |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bridges` is never used
[INFO] [stderr]   --> src/graph_theory/lowlink.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn bridges(n: usize, g: &Vec<(usize, usize)>) -> Vec<(usize, usize)> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `articulation_points` is never used
[INFO] [stderr]   --> src/graph_theory/lowlink.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn articulation_points(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `path_based` is never used
[INFO] [stderr]  --> src/graph_theory/scc.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn path_based(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stderr]   |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tarjan` is never used
[INFO] [stderr]   --> src/graph_theory/scc.rs:56:8
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn tarjan(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `kosaraju` is never used
[INFO] [stderr]    --> src/graph_theory/scc.rs:111:8
[INFO] [stderr]     |
[INFO] [stderr] 111 | pub fn kosaraju(g: &Vec<Vec<usize>>) -> Vec<usize> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NonDAGError` is never constructed
[INFO] [stderr]  --> src/graph_theory/topological_sort.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct NonDAGError {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/graph_theory/topological_sort.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | impl NonDAGError {
[INFO] [stderr]   | ---------------- associated function in this implementation
[INFO] [stderr] 8 |     fn new() -> Self {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `with_dfs` is never used
[INFO] [stderr]   --> src/graph_theory/topological_sort.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn with_dfs(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `kahn` is never used
[INFO] [stderr]   --> src/graph_theory/topological_sort.rs:55:8
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub fn kahn(g: &Vec<Vec<usize>>) -> Result<Vec<usize>, NonDAGError> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tree_dfs` is never used
[INFO] [stderr]  --> src/graph_theory/tree_diameter.rs:2:4
[INFO] [stderr]   |
[INFO] [stderr] 2 | fn tree_dfs(g: &Vec<Vec<(usize, i64)>>, root: usize) -> (Vec<usize>, Vec<i64>) {
[INFO] [stderr]   |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tree_diameter` is never used
[INFO] [stderr]   --> src/graph_theory/tree_diameter.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn tree_diameter(g: &Vec<(usize, usize, i64)>) -> (Vec<usize>, i64) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `euler_tour_edge` is never used
[INFO] [stderr]  --> src/graph_theory/euler_tour.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn euler_tour_edge(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `euler_tour_node` is never used
[INFO] [stderr]   --> src/graph_theory/euler_tour.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn euler_tour_node(g: &Vec<(usize, usize)>, root: usize) -> (Vec<isize>, Vec<usize>, Vec<usize>, Vec<usize>, Vec<usize>) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compute_first_idx` is never used
[INFO] [stderr]   --> src/graph_theory/euler_tour.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub fn compute_first_idx(tour_edge: &Vec<isize>) -> Vec<usize> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rerooting` is never used
[INFO] [stderr]  --> src/graph_theory/rerooting.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn rerooting<S: Clone, F>(g: &Vec<(usize, usize, F)>, m: &Monoid<S>, map: Box<dyn Fn(&F, &S) -> S>) -> Vec<S> {
[INFO] [stderr]   |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tree_bfs` is never used
[INFO] [stderr]  --> src/graph_theory/tree_bfs.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub fn tree_bfs(g: &Vec<(usize, usize)>, root: usize) -> (Vec<usize>, Vec<usize>) {
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tarjan_offline` is never used
[INFO] [stderr]   --> src/graph_theory/lca.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn tarjan_offline(g: &Vec<(usize, usize)>, uv: &Vec<(usize, usize)>, root: usize) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BinaryLifting` is never constructed
[INFO] [stderr]   --> src/graph_theory/lca.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct BinaryLifting {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get` are never used
[INFO] [stderr]   --> src/graph_theory/lca.rs:70:12
[INFO] [stderr]    |
[INFO] [stderr] 68 | impl BinaryLifting {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 69 |     /// O(N\log{N})
[INFO] [stderr] 70 |     pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     pub fn get(&self, mut u: usize, mut v: usize) -> usize {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `with_hl_decomposition` is never used
[INFO] [stderr]    --> src/graph_theory/lca.rs:103:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub fn with_hl_decomposition() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WithHLD` is never constructed
[INFO] [stderr]    --> src/graph_theory/lca.rs:178:12
[INFO] [stderr]     |
[INFO] [stderr] 178 | pub struct WithHLD {}
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WithSparseTable` is never constructed
[INFO] [stderr]    --> src/graph_theory/lca.rs:112:16
[INFO] [stderr]     |
[INFO] [stderr] 112 |     pub struct WithSparseTable<'a, S> {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get` are never used
[INFO] [stderr]    --> src/graph_theory/lca.rs:117:16
[INFO] [stderr]     |
[INFO] [stderr] 116 |     impl<'a> WithSparseTable<'a, (usize, usize)> {
[INFO] [stderr]     |     -------------------------------------------- associated items in this implementation
[INFO] [stderr] 117 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WithSegmentTree` is never constructed
[INFO] [stderr]    --> src/graph_theory/lca.rs:141:16
[INFO] [stderr]     |
[INFO] [stderr] 141 |     pub struct WithSegmentTree<'a, S: Copy> {
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get` are never used
[INFO] [stderr]    --> src/graph_theory/lca.rs:146:16
[INFO] [stderr]     |
[INFO] [stderr] 145 |     impl<'a> WithSegmentTree<'a, (usize, usize)> {
[INFO] [stderr]     |     -------------------------------------------- associated items in this implementation
[INFO] [stderr] 146 |         pub fn new(g: &Vec<(usize, usize)>, root: usize) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 162 |         pub fn get(&self, u: usize, v: usize) -> usize {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WithSqrtDecomposition` is never constructed
[INFO] [stderr]    --> src/graph_theory/lca.rs:171:16
[INFO] [stderr]     |
[INFO] [stderr] 171 |     pub struct WithSqrtDecomposition {}
[INFO] [stderr]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `edmonds_karp` is never used
[INFO] [stderr]  --> src/graph_theory/max_flow.rs:2:8
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub fn edmonds_karp(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ford_fulkerson` is never used
[INFO] [stderr]   --> src/graph_theory/max_flow.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn ford_fulkerson(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dinic` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:114:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub fn dinic(g: &Vec<Vec<(usize, u64)>>, src: usize, sink: usize) -> u64 {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mpm` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:178:8
[INFO] [stderr]     |
[INFO] [stderr] 178 | pub fn mpm() {}
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `push_relabel_fifo_vertex` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:182:8
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub fn push_relabel_fifo_vertex() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `push_relabel_dist_vertex` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:183:8
[INFO] [stderr]     |
[INFO] [stderr] 183 | pub fn push_relabel_dist_vertex() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `push_relabel_dynamic_tree` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:184:8
[INFO] [stderr]     |
[INFO] [stderr] 184 | pub fn push_relabel_dynamic_tree() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `krt` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:189:8
[INFO] [stderr]     |
[INFO] [stderr] 189 | pub fn krt() {}
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `binary_blocking_flow` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:194:8
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub fn binary_blocking_flow() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `orlin` is never used
[INFO] [stderr]    --> src/graph_theory/max_flow.rs:198:8
[INFO] [stderr]     |
[INFO] [stderr] 198 | pub fn orlin() {}
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ford_fulkerson` is never used
[INFO] [stderr]   --> src/graph_theory/max_cardinal_match.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub fn ford_fulkerson(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hopcroft_karp` is never used
[INFO] [stderr]   --> src/graph_theory/max_cardinal_match.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn hopcroft_karp(size_a: usize, size_b: usize, g: &[(usize, usize)]) -> Vec<Option<usize>> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blossom` is never used
[INFO] [stderr]    --> src/graph_theory/max_cardinal_match.rs:109:8
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub fn blossom() {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Monoid` is never constructed
[INFO] [stderr]  --> src/algebra/abstract_/structure.rs:6:16
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub struct Monoid<'a, S> {
[INFO] [stderr]   |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Semigroup` is never constructed
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:13:16
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub struct Semigroup<'a, S> {
[INFO] [stderr]    |                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Identity` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:22:15
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub trait Identity { fn e() -> Self; } 
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Inverse` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub trait Inverse { fn inv(&self) -> Self;}
[INFO] [stderr]    |               ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Semigroup` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:24:15
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub trait Semigroup {
[INFO] [stderr]    |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Monoid` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:30:15
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub trait Monoid: Semigroup + Identity {}
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Group` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub trait Group: Monoid + Inverse {}
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `MulIdentity` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:32:15
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub trait MulIdentity { fn e() -> Self; }
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `AddIdentity` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:34:15
[INFO] [stderr]    |
[INFO] [stderr] 34 |     pub trait AddIdentity { fn e() -> Self;}
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `AddInverse` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:35:15
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub trait AddInverse { fn inv(&self) -> Self; }
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `MulInverse` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:36:15
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub trait MulInverse { fn inv(&self) -> Self; }
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Semiring` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub trait Semiring: Sized + std::ops::Add<Output=Self> + std::ops::Mul<Output=Self> + AddIdentity + MulIdentity {
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Ring` is never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub trait Ring: Semiring + AddInverse {}
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `msb` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub fn msb(n: usize) -> isize { 0usize.leading_zeros() as isize - n.leading_zeros() as isize - 1 }
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `msb_number_binary_search` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn msb_number_binary_search(mut n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lsb` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn lsb(n: usize) -> usize { n.reverse_bits().leading_zeros() as usize }
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lsb_number` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn lsb_number(n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `delete_least_bit` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub fn delete_least_bit(n: usize) -> usize { n - lsb_number(n) }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `delete_least_bit_v2` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn delete_least_bit_v2(n: usize) -> usize { n & (n - 1) }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bit_length` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn bit_length(n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bit_length_v2` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:42:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn bit_length_v2(mut n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bit_length_v3` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn bit_length_v3(n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bit_length_table` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub fn bit_length_table(n: usize) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reverse_bits` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn reverse_bits(n: usize) -> usize { n.reverse_bits() }
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reverse_bits_v2` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub fn reverse_bits_v2(mut n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bit_inverse` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:79:8
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub fn bit_inverse(n: usize) -> usize { !n }
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bit_inverse_v2` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn bit_inverse_v2(n: usize) -> usize { (!0usize) ^ n }
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `popcount` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:85:8
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub fn popcount(mut n: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `popcount_v2` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:96:8
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub fn popcount_v2(n: usize) -> usize { n.count_ones() as usize }
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `popcount_v3` is never used
[INFO] [stderr]   --> src/algebra/bit.rs:99:8
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub fn popcount_v3(mut n: usize) -> usize { 
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `popcount_table` is never used
[INFO] [stderr]    --> src/algebra/bit.rs:109:8
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub fn popcount_table(n: usize) -> Vec<usize> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pow` is never used
[INFO] [stderr]  --> src/algebra/pow.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn pow<T: Monoid>(x: &T, n: usize) -> T {
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Power` is never constructed
[INFO] [stderr]   --> src/algebra/pow.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Power<'a, T> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `do` are never used
[INFO] [stderr]   --> src/algebra/pow.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl<'a, T> Power<'a, T> {
[INFO] [stderr]    | ------------------------ associated items in this implementation
[INFO] [stderr] 17 |     pub fn new(m: structs::Monoid<'a, T>) -> Self { Self { m } }
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 18 |
[INFO] [stderr] 19 |     pub fn r#do(&self, x: &T, n: usize) -> T{
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Modular` is never constructed
[INFO] [stderr]  --> src/algebra/modular.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Modular<const MOD: usize> {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `value`, and `inverse` are never used
[INFO] [stderr]   --> src/algebra/modular.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl<const MOD: usize> Modular<MOD> {
[INFO] [stderr]    | ----------------------------------- associated items in this implementation
[INFO] [stderr] 16 |     pub fn new(n: usize) -> Self { Self { value: n % MOD } }
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 17 |     pub const fn value(&self) -> usize { self.value % MOD }
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] 18 |     pub fn inverse(&self) -> Modular<MOD> { pow(self, MOD - 2) }
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Tensor` is never constructed
[INFO] [stderr]  --> src/algebra/tensor.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct Tensor<T, const NDIM: usize> {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/algebra/tensor.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl<T: Clone + Default, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stderr]    | ----------------------------------------------------------- associated function in this implementation
[INFO] [stderr] 24 |     pub fn new(shape: [usize; NDIM]) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flat_index` is never used
[INFO] [stderr]   --> src/algebra/tensor.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl<T, const NDIM: usize> Tensor<T, NDIM> {
[INFO] [stderr]    | ------------------------------------------ method in this implementation
[INFO] [stderr] 38 |     fn flat_index(&self, index: [usize; NDIM]) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `e`, `op`, and `pow` are never used
[INFO] [stderr]    --> src/algebra/tensor.rs:89:12
[INFO] [stderr]     |
[INFO] [stderr]  88 | impl<T: Copy + Default + Semiring> Tensor<T, 2> {
[INFO] [stderr]     | ----------------------------------------------- associated items in this implementation
[INFO] [stderr]  89 |     pub fn e(&self) -> Self {
[INFO] [stderr]     |            ^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn op(lhs: &Self, rhs: &Self) -> Self {
[INFO] [stderr]     |            ^^
[INFO] [stderr] ...
[INFO] [stderr] 118 |     pub fn pow(&self, n: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SparseTable` is never constructed
[INFO] [stderr]  --> src/sparse_table.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct SparseTable<'a, S> {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get` are never used
[INFO] [stderr]   --> src/sparse_table.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl<'a, S: Default + Clone> SparseTable<'a, S> {
[INFO] [stderr]    | ----------------------------------------------- associated items in this implementation
[INFO] [stderr] 16 |     /// O(N\log{N})
[INFO] [stderr] 17 |     pub fn new(sg: Semigroup<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn get(&self, l: usize, r: usize) -> S {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DisjointSparseTable` is never constructed
[INFO] [stderr]   --> src/sparse_table.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct DisjointSparseTable<'a, S> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get` are never used
[INFO] [stderr]   --> src/sparse_table.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | impl<'a, S: Default + Clone> DisjointSparseTable<'a, S> {
[INFO] [stderr]    | ------------------------------------------------------- associated items in this implementation
[INFO] [stderr] 55 |     pub fn new(sg: Semigroup<'a, S>, a: &Vec<S>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn get(&self, l: usize, r: usize) -> S {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sa_doubling` is never used
[INFO] [stderr]  --> src/string/sa.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn sa_doubling(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stderr]   |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sa_doubling_with_countsort` is never used
[INFO] [stderr]   --> src/string/sa.rs:31:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn sa_doubling_with_countsort(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sa_is` is never used
[INFO] [stderr]   --> src/string/sa.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn sa_is(a: &Vec<usize>) -> Vec<usize> {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unique` is never used
[INFO] [stderr]  --> src/vector.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn unique<T: Ord + Clone>(a: &Vec<T>) -> Vec<T> {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compress_array` is never used
[INFO] [stderr]  --> src/vector.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn compress_array<T: Ord + Clone>(a: &Vec<T>) -> (Vec<usize>, Vec<T>) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Inf` is never used
[INFO] [stderr]  --> src/cmp.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub trait Inf { const INF: Self; }
[INFO] [stderr]   |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bisect` is never used
[INFO] [stderr]  --> src/analysis/binary_search.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn bisect<T>(is_ok: &dyn Fn(&T) -> bool, a: &[T]) -> usize {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `lower_bound` is never used
[INFO] [stderr]   --> src/analysis/binary_search.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn lower_bound<T: Ord>(a: &[T], x: &T) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `longest_increasing_sequence` is never used
[INFO] [stderr]  --> src/dp.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn longest_increasing_sequence<T: Ord + Inf + Clone + Copy>(a: &[T]) -> Vec<T> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pascal` is never used
[INFO] [stderr]  --> src/combinatorics/pascal.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn pascal<T: Copy + traits::Semiring>(n: usize) -> Vec<Vec<T>> {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kagemeka` (lib) generated 135 warnings (run `cargo fix --lib -p kagemeka` to apply 1 suggestion)
[INFO] [stderr] warning: use of deprecated associated function `std::array::IntoIter::<T, N>::new`: use `IntoIterator::into_iter` instead
[INFO] [stderr]    --> src/number_theory/prime.rs:142:43
[INFO] [stderr]     |
[INFO] [stderr] 142 |             BTreeMap::from_iter(IntoIter::new([(3, 1), (5, 1), (7, 1)])),
[INFO] [stderr]     |                                           ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::array::IntoIter::<T, N>::new`: use `IntoIterator::into_iter` instead
[INFO] [stderr]    --> src/number_theory/prime.rs:153:43
[INFO] [stderr]     |
[INFO] [stderr] 153 |             BTreeMap::from_iter(IntoIter::new([(3, 1), (5, 1), (7, 1)])),
[INFO] [stderr]     |                                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RollbackUnionFind` is never constructed
[INFO] [stderr]   --> src/union_find.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct RollbackUnionFind {}
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `max_right` are never used
[INFO] [stderr]   --> src/graph_theory/tree/segment_tree.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl<'a, S: Copy> SegmentTree<'a, S> {
[INFO] [stderr]    | ------------------------------------ associated items in this implementation
[INFO] [stderr] 21 |
[INFO] [stderr] 22 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>, l: usize) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `max_right` are never used
[INFO] [stderr]   --> src/graph_theory/tree/fenwick_tree.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl<'a, S: Copy> FenwickTree<'a, S> {
[INFO] [stderr]    | ------------------------------------ associated items in this implementation
[INFO] [stderr] 16 |
[INFO] [stderr] 17 |     pub fn new(m: Monoid<'a, S>, n: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn max_right(&self, is_ok: Box<dyn Fn(&S) -> bool>) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `commutative` and `idempotent` are never read
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:9:13
[INFO] [stderr]    |
[INFO] [stderr]  6 |     pub struct Monoid<'a, S> {
[INFO] [stderr]    |                ------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr]  9 |         pub commutative: bool,
[INFO] [stderr]    |             ^^^^^^^^^^^
[INFO] [stderr] 10 |         pub idempotent: bool,
[INFO] [stderr]    |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated constants `COMMUTATIVE` and `IDEMPOTENT` are never used
[INFO] [stderr]   --> src/algebra/abstract_/structure.rs:26:15
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub trait Semigroup {
[INFO] [stderr]    |               --------- associated constants in this trait
[INFO] [stderr] 25 |         fn op(_: &Self, _: &Self) -> Self;
[INFO] [stderr] 26 |         const COMMUTATIVE: bool;
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr] 27 |         const IDEMPOTENT: bool;
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `value` is never used
[INFO] [stderr]   --> src/algebra/modular.rs:17:18
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl<const MOD: usize> Modular<MOD> {
[INFO] [stderr]    | ----------------------------------- method in this implementation
[INFO] [stderr] 16 |     pub fn new(n: usize) -> Self { Self { value: n % MOD } }
[INFO] [stderr] 17 |     pub const fn value(&self) -> usize { self.value % MOD }
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kagemeka` (lib test) generated 109 warnings (101 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kagemeka-9f9ed33de10c90ff)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test algebra::modular::tests::test_add_assign ... ok
[INFO] [stdout] test algebra::modular::tests::test_mul_assign ... ok
[INFO] [stdout] test algebra::modular::tests::test_inverse ... ok
[INFO] [stdout] test algebra::modular::tests::test_neg ... ok
[INFO] [stdout] test algebra::modular::tests::test_sub_assign ... ok
[INFO] [stdout] test graph_theory::tree::fenwick_tree::tests::test_fenwick_tree ... ok
[INFO] [stdout] test graph_theory::tree::segment_tree::tests::test_segment_tree ... ok
[INFO] [stdout] test algebra::modular::tests::test_new ... ok
[INFO] [stdout] test algebra::modular::tests::test_add ... ok
[INFO] [stdout] test number_theory::prime::tests::test_count_prime_factors ... ok
[INFO] [stdout] test number_theory::prime::tests::test_prime_factorize ... ok
[INFO] [stdout] test number_theory::prime::tests::test_find_prime_numbers ... ok
[INFO] [stdout] test number_theory::prime::tests::test_greatest_prime_factor ... ok
[INFO] [stdout] test number_theory::prime::tests::test_prime_factorize_lpf ... ok
[INFO] [stdout] test sparse_table::tests::test_sparse_table ... ok
[INFO] [stdout] test number_theory::prime::tests::test_sieve_of_eratosthenes ... ok
[INFO] [stdout] test sparse_table::tests::test_disjoint_sparse_table ... ok
[INFO] [stdout] test string::sa::tests::test_sa_doubling ... ok
[INFO] [stdout] test union_find::tests::test_uf ... ok
[INFO] [stdout] test string::sa::tests::test_sa_doubling_with_countsort ... ok
[INFO] [stdout] test string::sa::tests::test_sa_is ... ok
[INFO] [stdout] test algebra::modular::tests::test_mul ... ok
[INFO] [stdout] test algebra::modular::tests::test_sub ... ok
[INFO] [stdout] test number_theory::divisor::tests::test_find_divisors ... ok
[INFO] [stdout] test number_theory::prime::tests::test_least_prime_factor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests kagemeka
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3d4edcad272a505ec8384a2766d490df032564866e95329cd3adfca8abd2558d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d4edcad272a505ec8384a2766d490df032564866e95329cd3adfca8abd2558d", kill_on_drop: false }`
[INFO] [stdout] 3d4edcad272a505ec8384a2766d490df032564866e95329cd3adfca8abd2558d
