[INFO] cloning repository https://github.com/ErikAndersen81/detour
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ErikAndersen81/detour" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikAndersen81%2Fdetour", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikAndersen81%2Fdetour'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6cd99e9d4ade35032b9a7770ca57e824daaba5d8
[INFO] checking ErikAndersen81/detour against master#8f21a5c92ea55c348c275a1bc4fedbdf181e0d64 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikAndersen81%2Fdetour" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ErikAndersen81/detour
[INFO] finished tweaking git repo https://github.com/ErikAndersen81/detour
[INFO] tweaked toml for git repo https://github.com/ErikAndersen81/detour written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ErikAndersen81/detour on toolchain 8f21a5c92ea55c348c275a1bc4fedbdf181e0d64
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ErikAndersen81/detour already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/ErikAndersen81/line_similarity.git`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rstar v0.8.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 45f567319df03a382c606cd8d30d0ba9a737c799544dce4cce6dcb4d5656e9d3
[INFO] running `Command { std: "docker" "start" "-a" "45f567319df03a382c606cd8d30d0ba9a737c799544dce4cce6dcb4d5656e9d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45f567319df03a382c606cd8d30d0ba9a737c799544dce4cce6dcb4d5656e9d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45f567319df03a382c606cd8d30d0ba9a737c799544dce4cce6dcb4d5656e9d3", kill_on_drop: false }`
[INFO] [stdout] 45f567319df03a382c606cd8d30d0ba9a737c799544dce4cce6dcb4d5656e9d3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9b78e7b29c721f3a9835d4f5835038155a4a3589006c3ccd90d237346e771bd1
[INFO] running `Command { std: "docker" "start" "-a" "9b78e7b29c721f3a9835d4f5835038155a4a3589006c3ccd90d237346e771bd1", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling typenum v1.14.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.86
[INFO] [stderr]    Compiling libc v0.2.103
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]     Checking byteorder v1.4.3
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling heapless v0.6.1
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]     Checking pdqselect v0.1.0
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking smallvec v1.7.0
[INFO] [stderr]    Compiling serde_json v1.0.79
[INFO] [stderr]     Checking hash32 v0.1.1
[INFO] [stderr]     Checking geographiclib-rs v0.2.0
[INFO] [stderr]     Checking fixedbitset v0.4.0
[INFO] [stderr]     Checking textwrap v0.14.2
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking robust v0.2.3
[INFO] [stderr]     Checking ryu v1.0.9
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]     Checking termcolor v1.1.2
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]     Checking itertools v0.10.1
[INFO] [stderr]     Checking trajectory_similarity v0.1.0 (https://github.com/ErikAndersen81/line_similarity.git#0021da0a)
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling quote v1.0.15
[INFO] [stderr]     Checking os_str_bytes v6.0.0
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking approx v0.4.0
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking clap v3.0.6
[INFO] [stderr]     Checking generic-array v0.13.3
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking as-slice v0.1.5
[INFO] [stderr]     Checking rstar v0.8.3
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking geo-types v0.7.2
[INFO] [stderr]     Checking geo v0.18.0
[INFO] [stderr]     Checking petgraph v0.6.0
[INFO] [stderr]     Checking detour v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::utility::trajectory::Monotone`
[INFO] [stdout]  --> src/graph/graph.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utility::trajectory::Monotone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CONFIG`
[INFO] [stdout]  --> src/graph/graph.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{CONFIG, OUTPUT, STATS};
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_edges_centroid_trjs`
[INFO] [stdout]  --> src/graph/graph_builder.rs:2:38
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::{path_builder::get_paths, set_edges_centroid_trjs, DetourGraph, PathBuilderStats};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `STATS`
[INFO] [stdout]  --> src/graph/node_clustering.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{from_epsg_3857_to_4326, STATS};
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StableDiGraph`
[INFO] [stdout]  --> src/graph/node_clustering.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 | use petgraph::stable_graph::{NodeIndex, StableDiGraph};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `petgraph::visit::EdgeRef`
[INFO] [stdout]  --> src/graph/node_clustering.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use petgraph::visit::EdgeRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/graph/node_clustering.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node_clustering::spatially_cluster_nodes`
[INFO] [stdout]   --> src/graph/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use node_clustering::spatially_cluster_nodes;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time_guard::clean_stream`
[INFO] [stdout]   --> src/utility/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use time_guard::clean_stream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `timeout_handler::TimeoutHandler`
[INFO] [stdout]   --> src/utility/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use timeout_handler::TimeoutHandler;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `line::Line`
[INFO] [stdout]   --> src/utility/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use line::Line;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graph::get_graph`
[INFO] [stdout]   --> src/main.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | use crate::{graph::get_graph, utility::visvalingam};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Config`
[INFO] [stdout]   --> src/utility/stop_detector.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let config = Config::default();
[INFO] [stdout]    |                      ^^^^^^ use of undeclared type `Config`
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 73 -         let config = Config::default();
[INFO] [stdout] 73 +         let config = CONFIG::default();
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 70 +     use crate::Config;
[INFO] [stdout]    |
[INFO] [stdout] 70 +     use petgraph::dot::Config;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Config`
[INFO] [stdout]   --> src/utility/stop_detector.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let config = Config::default();
[INFO] [stdout]    |                      ^^^^^^ use of undeclared type `Config`
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 84 -         let config = Config::default();
[INFO] [stdout] 84 +         let config = CONFIG::default();
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 70 +     use crate::Config;
[INFO] [stdout]    |
[INFO] [stdout] 70 +     use petgraph::dot::Config;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Config`
[INFO] [stdout]   --> src/utility/stop_detector.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let config = Config::default();
[INFO] [stdout]    |                      ^^^^^^ use of undeclared type `Config`
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 94 -         let config = Config::default();
[INFO] [stdout] 94 +         let config = CONFIG::default();
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]    |
[INFO] [stdout] 70 +     use crate::Config;
[INFO] [stdout]    |
[INFO] [stdout] 70 +     use petgraph::dot::Config;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Config`
[INFO] [stdout]    --> src/utility/stop_detector.rs:115:22
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let config = Config::default();
[INFO] [stdout]     |                      ^^^^^^ use of undeclared type `Config`
[INFO] [stdout]     |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 115 -         let config = Config::default();
[INFO] [stdout] 115 +         let config = CONFIG::default();
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing one of these items
[INFO] [stdout]     |
[INFO] [stdout] 70  +     use crate::Config;
[INFO] [stdout]     |
[INFO] [stdout] 70  +     use petgraph::dot::Config;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: enum import `PathElement` is private
[INFO] [stdout]    --> src/graph/graph.rs:356:54
[INFO] [stdout]     |
[INFO] [stdout] 356 |     use crate::{config::Config, graph::path_builder::PathElement};
[INFO] [stdout]     |                                                      ^^^^^^^^^^^ private enum import
[INFO] [stdout]     |
[INFO] [stdout] note: the enum import `PathElement` is defined here...
[INFO] [stdout]    --> src/graph/path_builder.rs:1:44
[INFO] [stdout]     |
[INFO] [stdout] 1   | use crate::graph::{Path, PathBuilderStats, PathElement};
[INFO] [stdout]     |                                            ^^^^^^^^^^^
[INFO] [stdout] note: ...and refers to the enum import `PathElement` which is defined here...
[INFO] [stdout]    --> src/graph/mod.rs:20:9
[INFO] [stdout]     |
[INFO] [stdout] 20  | pub use path_element::PathElement;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ you could import this re-export
[INFO] [stdout] note: ...and refers to the enum `PathElement` which is defined here
[INFO] [stdout]    --> src/graph/path_element.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub enum PathElement {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^ you could import this directly
[INFO] [stdout] help: import `PathElement` through the re-export
[INFO] [stdout]     |
[INFO] [stdout] 356 -     use crate::{config::Config, graph::path_builder::PathElement};
[INFO] [stdout] 356 +     use crate::{config::Config, graph::PathElement};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utility::trajectory::Monotone`
[INFO] [stdout]  --> src/graph/graph.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utility::trajectory::Monotone;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CONFIG`
[INFO] [stdout]  --> src/graph/graph.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{CONFIG, OUTPUT, STATS};
[INFO] [stdout]   |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `set_edges_centroid_trjs`
[INFO] [stdout]  --> src/graph/graph_builder.rs:2:38
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::{path_builder::get_paths, set_edges_centroid_trjs, DetourGraph, PathBuilderStats};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `STATS`
[INFO] [stdout]  --> src/graph/node_clustering.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{from_epsg_3857_to_4326, STATS};
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StableDiGraph`
[INFO] [stdout]  --> src/graph/node_clustering.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 | use petgraph::stable_graph::{NodeIndex, StableDiGraph};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `petgraph::visit::EdgeRef`
[INFO] [stdout]  --> src/graph/node_clustering.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use petgraph::visit::EdgeRef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/graph/node_clustering.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node_clustering::spatially_cluster_nodes`
[INFO] [stdout]   --> src/graph/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use node_clustering::spatially_cluster_nodes;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time_guard::clean_stream`
[INFO] [stdout]   --> src/utility/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use time_guard::clean_stream;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `timeout_handler::TimeoutHandler`
[INFO] [stdout]   --> src/utility/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use timeout_handler::TimeoutHandler;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `line::Line`
[INFO] [stdout]   --> src/utility/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use line::Line;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graph::get_graph`
[INFO] [stdout]   --> src/main.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 | use crate::{graph::get_graph, utility::visvalingam};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/graph/graph.rs:360:25
[INFO] [stdout]     |
[INFO] [stdout] 360 |         let mut graph = DetourGraph::new(&config);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ ------- unexpected argument of type `&config::Config`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/graph/graph.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout] 90  |     pub fn new() -> DetourGraph {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 360 -         let mut graph = DetourGraph::new(&config);
[INFO] [stdout] 360 +         let mut graph = DetourGraph::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `merge_node_pair` found for struct `graph::graph::DetourGraph` in the current scope
[INFO] [stdout]    --> src/graph/graph.rs:377:15
[INFO] [stdout]     |
[INFO] [stdout] 24  | pub struct DetourGraph {
[INFO] [stdout]     | ---------------------- method `merge_node_pair` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 377 |         graph.merge_node_pair(a, b);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^ method not found in `graph::graph::DetourGraph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/graph/graph.rs:384:25
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let mut graph = DetourGraph::new(&config);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ ------- unexpected argument of type `&config::Config`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/graph/graph.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout] 90  |     pub fn new() -> DetourGraph {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 384 -         let mut graph = DetourGraph::new(&config);
[INFO] [stdout] 384 +         let mut graph = DetourGraph::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/graph/graph.rs:407:25
[INFO] [stdout]     |
[INFO] [stdout] 407 |         let mut graph = DetourGraph::new(&config);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ ------- unexpected argument of type `&config::Config`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/graph/graph.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout] 90  |     pub fn new() -> DetourGraph {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 407 -         let mut graph = DetourGraph::new(&config);
[INFO] [stdout] 407 +         let mut graph = DetourGraph::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/graph/graph.rs:437:25
[INFO] [stdout]     |
[INFO] [stdout] 437 |         let mut graph = DetourGraph::new(&config);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ ------- unexpected argument of type `&config::Config`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/graph/graph.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout] 90  |     pub fn new() -> DetourGraph {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 437 -         let mut graph = DetourGraph::new(&config);
[INFO] [stdout] 437 +         let mut graph = DetourGraph::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total` is assigned to, but never used
[INFO] [stdout]    --> src/graph/edge_clustering.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut total = 0;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `starttime`
[INFO] [stdout]   --> src/graph/node_clustering.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let starttime = format!("{:02}:{:02}:{:02}", start_h, start_m, start_s);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_starttime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `endtime`
[INFO] [stdout]   --> src/graph/node_clustering.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let endtime = format!("{:02}:{:02}:{:02}", end_h, end_m, end_s);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endtime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dimensions`
[INFO] [stdout]   --> src/graph/node_clustering.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let dimensions = format!("{:.2}m x {:.2}m", bbox.x2 - bbox.x1, bbox.y2 - bbox.y1);
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dimensions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coord`
[INFO] [stdout]   --> src/graph/node_clustering.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let coord = format!("{:.7},{:.7}", coord[0], coord[1]);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_coord`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_to_cluster` found for struct `clustering::Clustering` in the current scope
[INFO] [stdout]   --> src/utility/clustering.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct Clustering {
[INFO] [stdout]    | --------------------- method `add_to_cluster` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |         c.add_to_cluster(&[1usize, 2usize], None);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^ method not found in `clustering::Clustering`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_to_cluster` found for struct `clustering::Clustering` in the current scope
[INFO] [stdout]    --> src/utility/clustering.rs:110:11
[INFO] [stdout]     |
[INFO] [stdout] 6   | pub struct Clustering {
[INFO] [stdout]     | --------------------- method `add_to_cluster` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 110 |         c.add_to_cluster(&[1usize, 2usize], Some(0usize));
[INFO] [stdout]     |           ^^^^^^^^^^^^^^ method not found in `clustering::Clustering`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]   --> src/utility/stop_detector.rs:75:22
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let mut sd = StopDetector::new(&config);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^ ------- unexpected argument
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utility/stop_detector.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new() -> StopDetector {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 75 -         let mut sd = StopDetector::new(&config);
[INFO] [stdout] 75 +         let mut sd = StopDetector::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]   --> src/utility/stop_detector.rs:86:22
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let mut sd = StopDetector::new(&config);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^ ------- unexpected argument
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utility/stop_detector.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new() -> StopDetector {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 86 -         let mut sd = StopDetector::new(&config);
[INFO] [stdout] 86 +         let mut sd = StopDetector::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]   --> src/utility/stop_detector.rs:97:22
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut sd = StopDetector::new(&config);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^ ------- unexpected argument
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/utility/stop_detector.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new() -> StopDetector {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 97 -         let mut sd = StopDetector::new(&config);
[INFO] [stdout] 97 +         let mut sd = StopDetector::new();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/utility/stop_detector.rs:118:22
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let mut sd = StopDetector::new(&config);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^ ------- unexpected argument
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/utility/stop_detector.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout] 26  |     pub fn new() -> StopDetector {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 118 -         let mut sd = StopDetector::new(&config);
[INFO] [stdout] 118 +         let mut sd = StopDetector::new();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TimePairs` is never constructed
[INFO] [stdout]   --> src/graph/graph.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct TimePairs {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DetourGraph` is never constructed
[INFO] [stdout]   --> src/graph/graph.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct DetourGraph {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/graph/graph.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout] 89  | impl DetourGraph {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 90  |     pub fn new() -> DetourGraph {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub fn set_graph(&mut self, new_graph: Graph, root_nodes: Vec<NodeIndex>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_mut_graph(&mut self) -> &mut Graph {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_graph(&self) -> &Graph {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn to_csv(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn remove_node(&mut self, nx: NodeIndex) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn get_root_index(&self, nx: NodeIndex) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn node_indices(&self) -> petgraph::stable_graph::NodeIndices<(u32, Bbox)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn edge_weights(&self) -> Vec<&(u32, Vec<[f64; 3]>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn get_node_bbox(&self, nx: NodeIndex) -> Bbox {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn get_node_weight(&self, nx: NodeIndex) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn set_node_bbox(&mut self, nx: NodeIndex, bbox: Bbox) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn set_node_weight(&mut self, nx: NodeIndex, weight: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn edges_directed(&self, nx: NodeIndex, dir: EdgeDirection) -> Vec<EdgeIndex> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn edge_trj_mut(&mut self, ex: EdgeIndex) -> &mut Vec<[f64; 3]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn set_edge_weight(&mut self, ex: EdgeIndex, weight: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn verify_constraints(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     fn verify_node(&self, nx: NodeIndex) -> (bool, bool, bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     fn verify_temporal_monotonicity(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn root_reachable(&self, target: NodeIndex) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn add_path(&mut self, mut path: Path) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Graph` is never used
[INFO] [stdout]   --> src/graph/graph_builder.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Graph = StableDiGraph<(u32, Bbox), (u32, Vec<[f64; 3]>)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_graph` is never used
[INFO] [stdout]   --> src/graph/graph_builder.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_graph(streams: Vec<Vec<[f64; 3]>>) -> DetourGraph {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_nodes` is never used
[INFO] [stdout]   --> src/graph/graph_builder.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn merge_nodes(graph: &mut DetourGraph) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reassign_edges` is never used
[INFO] [stdout]    --> src/graph/graph_builder.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn reassign_edges(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_bbox` is never used
[INFO] [stdout]    --> src/graph/graph_builder.rs:227:4
[INFO] [stdout]     |
[INFO] [stdout] 227 | fn split_bbox(bbox: Bbox, splits: &[f64]) -> Vec<Bbox> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_temporal_splits` is never used
[INFO] [stdout]    --> src/graph/graph_builder.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn get_temporal_splits(trjs: Vec<(u32, Vec<[f64; 3]>)>) -> Vec<f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spatially_cluster_nodes` is never used
[INFO] [stdout]   --> src/graph/node_clustering.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn spatially_cluster_nodes(graph: &mut DetourGraph) -> Vec<Vec<NodeIndex>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_minimal_bbox` is never used
[INFO] [stdout]   --> src/graph/node_clustering.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_minimal_bbox(graph: &mut DetourGraph, cluster: &[NodeIndex]) -> Bbox {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resize_bboxs` is never used
[INFO] [stdout]    --> src/graph/node_clustering.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn resize_bboxs(graph: &mut DetourGraph, bbox: Bbox, cluster: &[NodeIndex]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_spatial_clustering` is never used
[INFO] [stdout]    --> src/graph/node_clustering.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub fn get_spatial_clustering(graph: &DetourGraph) -> Vec<Vec<NodeIndex>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Path` is never constructed
[INFO] [stdout]   --> src/graph/path.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Path {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/graph/path.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout] 25  | impl Path {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 26  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30  |     pub fn verify(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59  |     pub fn expand_stops(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn merge_nodes(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn rm_single_points(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn push(&mut self, path_element: PathElement) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn last_element(&self) -> Option<PathElement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn remove_first(&mut self) -> PathElement {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn remove_last(&mut self) -> PathElement {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn next_trj_stop(&mut self) -> Option<(Trajectory, Bbox)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_trjs(&self) -> Vec<Trajectory> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_paths` is never used
[INFO] [stdout]   --> src/graph/path_builder.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn get_paths(stream: Vec<[f64; 3]>, stats: &mut PathBuilderStats) -> Vec<Path> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_path` is never used
[INFO] [stdout]   --> src/graph/path_builder.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn build_path(stream: Vec<[f64; 3]>) -> Path {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathBuilder` is never constructed
[INFO] [stdout]   --> src/graph/path_builder.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct PathBuilder {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_pt`, `finalize_path`, and `get_path` are never used
[INFO] [stdout]    --> src/graph/path_builder.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout] 86  | impl PathBuilder {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 87  |     pub fn new() -> PathBuilder {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 99  |     fn add_pt(&mut self, point: [f64; 3], is_stopped: IsStopped) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn finalize_path(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn get_path(&mut self) -> Path {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PathElement` is never used
[INFO] [stdout]  --> src/graph/path_element.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum PathElement {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_stop`, `copy_bbox`, and `copy_trj` are never used
[INFO] [stdout]   --> src/graph/path_element.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl PathElement {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 33 |     pub fn is_stop(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn copy_bbox(&self) -> Option<Bbox> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn copy_trj(&self) -> Option<Vec<[f64; 3]>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/utility/bounding_box.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout] 53  | impl Bbox {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84  |     pub fn overlaps_spatially_by(&self, other: &Self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     fn interval_overlap(a1: f64, a2: f64, b1: f64, b2: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn area(&self) -> f64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn is_before(&self, other: &Self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn longest_side(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn union(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn is_single_point(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn can_contain_trj(&self, trj: &[[f64; 3]]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn expand_along_trjs(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotionDetector` is never constructed
[INFO] [stdout]  --> src/utility/motion_detector.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct MotionDetector {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_avg_velocity`, and `is_stopped` are never used
[INFO] [stdout]   --> src/utility/motion_detector.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl MotionDetector {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new() -> MotionDetector {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn get_avg_velocity(&self) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn is_stopped(&mut self, point: &[f64; 3]) -> IsStopped {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min_duration_ms` and `max_diagonal_meters` are never read
[INFO] [stdout]   --> src/utility/stop_detector.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct StopDetector {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 20 |     min_duration_ms: f64,     // Minimum time a stop must last
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     max_diagonal_meters: f64, // Maximum width/length of a stop.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StopDetector` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/graph/graph.rs:199:25
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub fn node_indices(&self) -> petgraph::stable_graph::NodeIndices<(u32, Bbox)> {
[INFO] [stdout]     |                         ^^^^^     ------------------------------------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 199 |     pub fn node_indices(&self) -> petgraph::stable_graph::NodeIndices<'_, (u32, Bbox)> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total` is assigned to, but never used
[INFO] [stdout]    --> src/graph/edge_clustering.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let mut total = 0;
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_total` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `starttime`
[INFO] [stdout]   --> src/graph/node_clustering.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let starttime = format!("{:02}:{:02}:{:02}", start_h, start_m, start_s);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_starttime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `endtime`
[INFO] [stdout]   --> src/graph/node_clustering.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let endtime = format!("{:02}:{:02}:{:02}", end_h, end_m, end_s);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endtime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dimensions`
[INFO] [stdout]   --> src/graph/node_clustering.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let dimensions = format!("{:.2}m x {:.2}m", bbox.x2 - bbox.x1, bbox.y2 - bbox.y1);
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dimensions`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coord`
[INFO] [stdout]   --> src/graph/node_clustering.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let coord = format!("{:.7},{:.7}", coord[0], coord[1]);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_coord`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `connection_timeout`
[INFO] [stdout]    --> src/graph/path_builder.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let connection_timeout = 3.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_timeout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0433, E0599, E0603.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `detour` (bin "detour" test) due to 16 previous errors; 18 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9b78e7b29c721f3a9835d4f5835038155a4a3589006c3ccd90d237346e771bd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9b78e7b29c721f3a9835d4f5835038155a4a3589006c3ccd90d237346e771bd1", kill_on_drop: false }`
[INFO] [stdout] 9b78e7b29c721f3a9835d4f5835038155a4a3589006c3ccd90d237346e771bd1
