[INFO] fetching crate vrp-core 1.25.0... [INFO] testing vrp-core-1.25.0 against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] extracting crate vrp-core 1.25.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate vrp-core 1.25.0 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate vrp-core 1.25.0 [INFO] tweaked toml for crates.io crate vrp-core 1.25.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate vrp-core 1.25.0 on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate vrp-core 1.25.0 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" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rosomaxa v0.9.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3861e0527c8d892c93056307ac2c740dd8d527951f5ba8ab7206d54fc868e51c [INFO] running `Command { std: "docker" "start" "-a" "3861e0527c8d892c93056307ac2c740dd8d527951f5ba8ab7206d54fc868e51c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3861e0527c8d892c93056307ac2c740dd8d527951f5ba8ab7206d54fc868e51c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3861e0527c8d892c93056307ac2c740dd8d527951f5ba8ab7206d54fc868e51c", kill_on_drop: false }` [INFO] [stdout] 3861e0527c8d892c93056307ac2c740dd8d527951f5ba8ab7206d54fc868e51c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 67dbc36df5c5fb06fa6eda2ffd3b42eb26e573a0f28efcea18ba6f9915738c7b [INFO] running `Command { std: "docker" "start" "-a" "67dbc36df5c5fb06fa6eda2ffd3b42eb26e573a0f28efcea18ba6f9915738c7b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.89 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling libc v0.2.162 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling rustc-hash v2.0.0 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling nohash-hasher v0.2.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling tinyvec v1.8.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling syn v2.0.87 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling crossbeam-deque v0.8.5 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling zerocopy v0.7.35 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling rosomaxa v0.9.0 [INFO] [stderr] Compiling vrp-core v1.25.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/estimations.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - transport: &(dyn TransportCost), [INFO] [stdout] 99 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/estimations.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 124 - transport: &(dyn TransportCost), [INFO] [stdout] 124 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/mod.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stdout] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/conditional_job.rs:67:26 [INFO] [stdout] | [INFO] [stdout] 67 | context_transition: &(dyn JobContextTransition), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 67 - context_transition: &(dyn JobContextTransition), [INFO] [stdout] 67 + context_transition: &dyn JobContextTransition, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 14 - activity: &(dyn ActivityCost), [INFO] [stdout] 14 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 15 - transport: &(dyn TransportCost), [INFO] [stdout] 15 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - activity: &(dyn ActivityCost), [INFO] [stdout] 26 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - transport: &(dyn TransportCost), [INFO] [stdout] 27 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 36 - transport: &(dyn TransportCost), [INFO] [stdout] 36 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/multi_trip.rs:20:34 [INFO] [stdout] | [INFO] [stdout] 20 | fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 20 - fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stdout] 20 + fn get_constraint(&self) -> &dyn FeatureConstraint; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 16 - activity: &(dyn ActivityCost), [INFO] [stdout] 16 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 17 - transport: &(dyn TransportCost), [INFO] [stdout] 17 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - activity: &(dyn ActivityCost), [INFO] [stdout] 27 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 28 - transport: &(dyn TransportCost), [INFO] [stdout] 28 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:37:62 [INFO] [stdout] | [INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:37:94 [INFO] [stdout] | [INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:59:91 [INFO] [stdout] | [INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:113:64 [INFO] [stdout] | [INFO] [stdout] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stdout] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 10 - transport: &(dyn TransportCost), [INFO] [stdout] 10 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 36 - transport: &(dyn TransportCost), [INFO] [stdout] 36 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 68 - transport: &(dyn TransportCost), [INFO] [stdout] 68 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/capacity.rs:138:34 [INFO] [stdout] | [INFO] [stdout] 138 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 138 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] 138 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/recharge.rs:184:34 [INFO] [stdout] | [INFO] [stdout] 184 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 184 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] 184 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/tour_order.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 160 - check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stdout] 160 + check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/evaluators.rs:25:30 [INFO] [stdout] | [INFO] [stdout] 25 | pub result_selector: &'a (dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 25 - pub result_selector: &'a (dyn ResultSelector), [INFO] [stdout] 25 + pub result_selector: &'a dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:264:24 [INFO] [stdout] | [INFO] [stdout] 264 | job_selector: &(dyn JobSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 264 - job_selector: &(dyn JobSelector), [INFO] [stdout] 264 + job_selector: &dyn JobSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:265:26 [INFO] [stdout] | [INFO] [stdout] 265 | route_selector: &(dyn RouteSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 265 - route_selector: &(dyn RouteSelector), [INFO] [stdout] 265 + route_selector: &dyn RouteSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:267:27 [INFO] [stdout] | [INFO] [stdout] 267 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 267 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 267 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 77 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:105:27 [INFO] [stdout] | [INFO] [stdout] 105 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 105 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:137:27 [INFO] [stdout] | [INFO] [stdout] 137 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 137 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 137 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:355:28 [INFO] [stdout] | [INFO] [stdout] 355 | pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 355 - pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stdout] 355 + pub fn pick(&self) -> &dyn ResultSelector { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/probing/repair_solution.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | factory: &(dyn Fn() -> InsertionContext), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 19 - factory: &(dyn Fn() -> InsertionContext), [INFO] [stdout] 19 + factory: &dyn Fn() -> InsertionContext, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/goal.rs:450:37 [INFO] [stdout] | [INFO] [stdout] 450 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 450 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] 450 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/goal.rs:474:37 [INFO] [stdout] | [INFO] [stdout] 474 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 474 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] 474 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:245:21 [INFO] [stdout] | [INFO] [stdout] 245 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 245 - transport: &(dyn TransportCost), [INFO] [stdout] 245 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:332:17 [INFO] [stdout] | [INFO] [stdout] 332 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 332 - transport: &(dyn TransportCost), [INFO] [stdout] 332 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:385:17 [INFO] [stdout] | [INFO] [stdout] 385 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 385 - transport: &(dyn TransportCost), [INFO] [stdout] 385 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:404:17 [INFO] [stdout] | [INFO] [stdout] 404 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 404 - transport: &(dyn TransportCost), [INFO] [stdout] 404 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 419 - transport: &(dyn TransportCost), [INFO] [stdout] 419 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_inter_route.rs:180:23 [INFO] [stdout] | [INFO] [stdout] 180 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 180 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:79:71 [INFO] [stdout] | [INFO] [stdout] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stdout] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:291:23 [INFO] [stdout] | [INFO] [stdout] 291 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 291 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:372:23 [INFO] [stdout] | [INFO] [stdout] 372 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 372 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 372 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/recreate/recreate_with_regret.rs:61:27 [INFO] [stdout] | [INFO] [stdout] 61 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 61 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 61 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 59 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/ruin/route_removal.rs:140:14 [INFO] [stdout] | [INFO] [stdout] 140 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 140 - random: &(dyn Random), [INFO] [stdout] 140 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 82 - random: &(dyn Random), [INFO] [stdout] 82 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:97:92 [INFO] [stdout] | [INFO] [stdout] 97 | fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 97 - fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stdout] 97 + fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:142:18 [INFO] [stdout] | [INFO] [stdout] 142 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 142 - random: &(dyn Random), [INFO] [stdout] 142 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 47 - random: &(dyn Random), [INFO] [stdout] 47 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:48:20 [INFO] [stdout] | [INFO] [stdout] 48 | route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 48 - route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stdout] 48 + route_filter: &dyn Fn(&RouteContext) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] 49 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - random: &(dyn Random), [INFO] [stdout] 79 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:80:18 [INFO] [stdout] | [INFO] [stdout] 80 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] 80 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/tabu_list.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - random: &(dyn Random), [INFO] [stdout] 80 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/construction/enablers/feature_combinator.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | / self.states.iter().try_for_each(|state| { [INFO] [stdout] 125 | | let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len()); [INFO] [stdout] 126 | | [INFO] [stdout] 127 | | state.accept_solution_state(ctx); [INFO] [stdout] ... | [INFO] [stdout] 134 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 124 | let _ = self.states.iter().try_for_each(|state| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:99:27 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn all_activities(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 99 | pub fn all_activities(&self) -> Iter<'_, Activity> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:109:31 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn all_activities_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 109 | pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:114:79 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stdout] | -- -- ^^^^^^^^^ -- the same lifetime is named here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/solver/mod.rs:144:58 [INFO] [stdout] | [INFO] [stdout] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/solver/mod.rs:148:56 [INFO] [stdout] | [INFO] [stdout] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.03s [INFO] running `Command { std: "docker" "inspect" "67dbc36df5c5fb06fa6eda2ffd3b42eb26e573a0f28efcea18ba6f9915738c7b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "67dbc36df5c5fb06fa6eda2ffd3b42eb26e573a0f28efcea18ba6f9915738c7b", kill_on_drop: false }` [INFO] [stdout] 67dbc36df5c5fb06fa6eda2ffd3b42eb26e573a0f28efcea18ba6f9915738c7b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 058eeeeeb7dd6aa668ab44518969c2bceede0d228a5b9dd052ce3d4f009bad0e [INFO] running `Command { std: "docker" "start" "-a" "058eeeeeb7dd6aa668ab44518969c2bceede0d228a5b9dd052ce3d4f009bad0e", kill_on_drop: false }` [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/estimations.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - transport: &(dyn TransportCost), [INFO] [stdout] 99 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/estimations.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 124 - transport: &(dyn TransportCost), [INFO] [stdout] 124 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/mod.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stdout] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/conditional_job.rs:67:26 [INFO] [stdout] | [INFO] [stdout] 67 | context_transition: &(dyn JobContextTransition), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 67 - context_transition: &(dyn JobContextTransition), [INFO] [stdout] 67 + context_transition: &dyn JobContextTransition, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 14 - activity: &(dyn ActivityCost), [INFO] [stdout] 14 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 15 - transport: &(dyn TransportCost), [INFO] [stdout] 15 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - activity: &(dyn ActivityCost), [INFO] [stdout] 26 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - transport: &(dyn TransportCost), [INFO] [stdout] 27 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 36 - transport: &(dyn TransportCost), [INFO] [stdout] 36 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/multi_trip.rs:20:34 [INFO] [stdout] | [INFO] [stdout] 20 | fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 20 - fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stdout] 20 + fn get_constraint(&self) -> &dyn FeatureConstraint; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 16 - activity: &(dyn ActivityCost), [INFO] [stdout] 16 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 17 - transport: &(dyn TransportCost), [INFO] [stdout] 17 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - activity: &(dyn ActivityCost), [INFO] [stdout] 27 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 28 - transport: &(dyn TransportCost), [INFO] [stdout] 28 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:37:62 [INFO] [stdout] | [INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:37:94 [INFO] [stdout] | [INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:59:91 [INFO] [stdout] | [INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:113:64 [INFO] [stdout] | [INFO] [stdout] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stdout] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 10 - transport: &(dyn TransportCost), [INFO] [stdout] 10 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 36 - transport: &(dyn TransportCost), [INFO] [stdout] 36 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 68 - transport: &(dyn TransportCost), [INFO] [stdout] 68 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/capacity.rs:138:34 [INFO] [stdout] | [INFO] [stdout] 138 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 138 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] 138 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/recharge.rs:184:34 [INFO] [stdout] | [INFO] [stdout] 184 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 184 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] 184 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/tour_order.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 160 - check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stdout] 160 + check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/evaluators.rs:25:30 [INFO] [stdout] | [INFO] [stdout] 25 | pub result_selector: &'a (dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 25 - pub result_selector: &'a (dyn ResultSelector), [INFO] [stdout] 25 + pub result_selector: &'a dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:264:24 [INFO] [stdout] | [INFO] [stdout] 264 | job_selector: &(dyn JobSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 264 - job_selector: &(dyn JobSelector), [INFO] [stdout] 264 + job_selector: &dyn JobSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:265:26 [INFO] [stdout] | [INFO] [stdout] 265 | route_selector: &(dyn RouteSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 265 - route_selector: &(dyn RouteSelector), [INFO] [stdout] 265 + route_selector: &dyn RouteSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:267:27 [INFO] [stdout] | [INFO] [stdout] 267 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 267 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 267 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 77 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:105:27 [INFO] [stdout] | [INFO] [stdout] 105 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 105 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:137:27 [INFO] [stdout] | [INFO] [stdout] 137 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 137 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 137 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:355:28 [INFO] [stdout] | [INFO] [stdout] 355 | pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 355 - pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stdout] 355 + pub fn pick(&self) -> &dyn ResultSelector { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/probing/repair_solution.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | factory: &(dyn Fn() -> InsertionContext), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 19 - factory: &(dyn Fn() -> InsertionContext), [INFO] [stdout] 19 + factory: &dyn Fn() -> InsertionContext, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/goal.rs:450:37 [INFO] [stdout] | [INFO] [stdout] 450 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 450 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] 450 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/goal.rs:474:37 [INFO] [stdout] | [INFO] [stdout] 474 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 474 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] 474 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:245:21 [INFO] [stdout] | [INFO] [stdout] 245 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 245 - transport: &(dyn TransportCost), [INFO] [stdout] 245 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:332:17 [INFO] [stdout] | [INFO] [stdout] 332 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 332 - transport: &(dyn TransportCost), [INFO] [stdout] 332 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:385:17 [INFO] [stdout] | [INFO] [stdout] 385 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 385 - transport: &(dyn TransportCost), [INFO] [stdout] 385 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:404:17 [INFO] [stdout] | [INFO] [stdout] 404 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 404 - transport: &(dyn TransportCost), [INFO] [stdout] 404 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 419 - transport: &(dyn TransportCost), [INFO] [stdout] 419 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_inter_route.rs:180:23 [INFO] [stdout] | [INFO] [stdout] 180 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 180 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:79:71 [INFO] [stdout] | [INFO] [stdout] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stdout] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:291:23 [INFO] [stdout] | [INFO] [stdout] 291 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 291 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:372:23 [INFO] [stdout] | [INFO] [stdout] 372 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 372 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 372 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/recreate/recreate_with_regret.rs:61:27 [INFO] [stdout] | [INFO] [stdout] 61 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 61 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 61 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 59 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/ruin/route_removal.rs:140:14 [INFO] [stdout] | [INFO] [stdout] 140 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 140 - random: &(dyn Random), [INFO] [stdout] 140 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 82 - random: &(dyn Random), [INFO] [stdout] 82 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:97:92 [INFO] [stdout] | [INFO] [stdout] 97 | fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 97 - fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stdout] 97 + fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:142:18 [INFO] [stdout] | [INFO] [stdout] 142 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 142 - random: &(dyn Random), [INFO] [stdout] 142 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 47 - random: &(dyn Random), [INFO] [stdout] 47 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:48:20 [INFO] [stdout] | [INFO] [stdout] 48 | route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 48 - route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stdout] 48 + route_filter: &dyn Fn(&RouteContext) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] 49 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - random: &(dyn Random), [INFO] [stdout] 79 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:80:18 [INFO] [stdout] | [INFO] [stdout] 80 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] 80 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/tabu_list.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - random: &(dyn Random), [INFO] [stdout] 80 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/construction/enablers/feature_combinator.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | / self.states.iter().try_for_each(|state| { [INFO] [stdout] 125 | | let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len()); [INFO] [stdout] 126 | | [INFO] [stdout] 127 | | state.accept_solution_state(ctx); [INFO] [stdout] ... | [INFO] [stdout] 134 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 124 | let _ = self.states.iter().try_for_each(|state| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:99:27 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn all_activities(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 99 | pub fn all_activities(&self) -> Iter<'_, Activity> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:109:31 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn all_activities_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 109 | pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:114:79 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stdout] | -- -- ^^^^^^^^^ -- the same lifetime is named here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/solver/mod.rs:144:58 [INFO] [stdout] | [INFO] [stdout] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/solver/mod.rs:148:56 [INFO] [stdout] | [INFO] [stdout] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling vrp-core v1.25.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/estimations.rs:99:17 [INFO] [stdout] | [INFO] [stdout] 99 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 99 - transport: &(dyn TransportCost), [INFO] [stdout] 99 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/estimations.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 124 - transport: &(dyn TransportCost), [INFO] [stdout] 124 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/clustering/vicinity/mod.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stdout] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/conditional_job.rs:67:26 [INFO] [stdout] | [INFO] [stdout] 67 | context_transition: &(dyn JobContextTransition), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 67 - context_transition: &(dyn JobContextTransition), [INFO] [stdout] 67 + context_transition: &dyn JobContextTransition, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 14 - activity: &(dyn ActivityCost), [INFO] [stdout] 14 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 15 - transport: &(dyn TransportCost), [INFO] [stdout] 15 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - activity: &(dyn ActivityCost), [INFO] [stdout] 26 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - transport: &(dyn TransportCost), [INFO] [stdout] 27 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/departure_time.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 36 - transport: &(dyn TransportCost), [INFO] [stdout] 36 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/multi_trip.rs:20:34 [INFO] [stdout] | [INFO] [stdout] 20 | fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 20 - fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stdout] 20 + fn get_constraint(&self) -> &dyn FeatureConstraint; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 16 - activity: &(dyn ActivityCost), [INFO] [stdout] 16 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 17 - transport: &(dyn TransportCost), [INFO] [stdout] 17 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | activity: &(dyn ActivityCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 27 - activity: &(dyn ActivityCost), [INFO] [stdout] 27 + activity: &dyn ActivityCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 28 - transport: &(dyn TransportCost), [INFO] [stdout] 28 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:37:62 [INFO] [stdout] | [INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:37:94 [INFO] [stdout] | [INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:59:91 [INFO] [stdout] | [INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/schedule_update.rs:113:64 [INFO] [stdout] | [INFO] [stdout] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stdout] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 10 - transport: &(dyn TransportCost), [INFO] [stdout] 10 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:36:17 [INFO] [stdout] | [INFO] [stdout] 36 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 36 - transport: &(dyn TransportCost), [INFO] [stdout] 36 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/enablers/travel_info.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 68 - transport: &(dyn TransportCost), [INFO] [stdout] 68 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/capacity.rs:138:34 [INFO] [stdout] | [INFO] [stdout] 138 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 138 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] 138 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/recharge.rs:184:34 [INFO] [stdout] | [INFO] [stdout] 184 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 184 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stdout] 184 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/features/tour_order.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 160 - check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stdout] 160 + check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/evaluators.rs:25:30 [INFO] [stdout] | [INFO] [stdout] 25 | pub result_selector: &'a (dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 25 - pub result_selector: &'a (dyn ResultSelector), [INFO] [stdout] 25 + pub result_selector: &'a dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:264:24 [INFO] [stdout] | [INFO] [stdout] 264 | job_selector: &(dyn JobSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 264 - job_selector: &(dyn JobSelector), [INFO] [stdout] 264 + job_selector: &dyn JobSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:265:26 [INFO] [stdout] | [INFO] [stdout] 265 | route_selector: &(dyn RouteSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 265 - route_selector: &(dyn RouteSelector), [INFO] [stdout] 265 + route_selector: &dyn RouteSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/insertions.rs:267:27 [INFO] [stdout] | [INFO] [stdout] 267 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 267 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 267 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/../../../tests/unit/construction/heuristics/metrics_test.rs:10:21 [INFO] [stdout] | [INFO] [stdout] 10 | route_factory: &(dyn Fn(&Problem, usize) -> RouteContext), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 10 - route_factory: &(dyn Fn(&Problem, usize) -> RouteContext), [INFO] [stdout] 10 + route_factory: &dyn Fn(&Problem, usize) -> RouteContext, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:77:27 [INFO] [stdout] | [INFO] [stdout] 77 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 77 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 77 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:105:27 [INFO] [stdout] | [INFO] [stdout] 105 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 105 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 105 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:137:27 [INFO] [stdout] | [INFO] [stdout] 137 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 137 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 137 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/heuristics/selectors.rs:355:28 [INFO] [stdout] | [INFO] [stdout] 355 | pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 355 - pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stdout] 355 + pub fn pick(&self) -> &dyn ResultSelector { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/construction/probing/repair_solution.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | factory: &(dyn Fn() -> InsertionContext), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 19 - factory: &(dyn Fn() -> InsertionContext), [INFO] [stdout] 19 + factory: &dyn Fn() -> InsertionContext, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/goal.rs:450:37 [INFO] [stdout] | [INFO] [stdout] 450 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 450 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] 450 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/goal.rs:474:37 [INFO] [stdout] | [INFO] [stdout] 474 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 474 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stdout] 474 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:245:21 [INFO] [stdout] | [INFO] [stdout] 245 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 245 - transport: &(dyn TransportCost), [INFO] [stdout] 245 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:332:17 [INFO] [stdout] | [INFO] [stdout] 332 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 332 - transport: &(dyn TransportCost), [INFO] [stdout] 332 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:385:17 [INFO] [stdout] | [INFO] [stdout] 385 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 385 - transport: &(dyn TransportCost), [INFO] [stdout] 385 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:404:17 [INFO] [stdout] | [INFO] [stdout] 404 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 404 - transport: &(dyn TransportCost), [INFO] [stdout] 404 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/models/problem/jobs.rs:419:17 [INFO] [stdout] | [INFO] [stdout] 419 | transport: &(dyn TransportCost), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 419 - transport: &(dyn TransportCost), [INFO] [stdout] 419 + transport: &dyn TransportCost, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_inter_route.rs:180:23 [INFO] [stdout] | [INFO] [stdout] 180 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 180 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 180 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:79:71 [INFO] [stdout] | [INFO] [stdout] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stdout] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:291:23 [INFO] [stdout] | [INFO] [stdout] 291 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 291 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/local/exchange_swap_star.rs:372:23 [INFO] [stdout] | [INFO] [stdout] 372 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 372 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 372 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/recreate/recreate_with_regret.rs:61:27 [INFO] [stdout] | [INFO] [stdout] 61 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 61 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 61 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27 [INFO] [stdout] | [INFO] [stdout] 59 | result_selector: &(dyn ResultSelector), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 59 - result_selector: &(dyn ResultSelector), [INFO] [stdout] 59 + result_selector: &dyn ResultSelector, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/ruin/route_removal.rs:140:14 [INFO] [stdout] | [INFO] [stdout] 140 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 140 - random: &(dyn Random), [INFO] [stdout] 140 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:82:18 [INFO] [stdout] | [INFO] [stdout] 82 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 82 - random: &(dyn Random), [INFO] [stdout] 82 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:97:92 [INFO] [stdout] | [INFO] [stdout] 97 | fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 97 - fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stdout] 97 + fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/removal.rs:142:18 [INFO] [stdout] | [INFO] [stdout] 142 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 142 - random: &(dyn Random), [INFO] [stdout] 142 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 47 - random: &(dyn Random), [INFO] [stdout] 47 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:48:20 [INFO] [stdout] | [INFO] [stdout] 48 | route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 48 - route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stdout] 48 + route_filter: &dyn Fn(&RouteContext) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 49 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] 49 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 79 - random: &(dyn Random), [INFO] [stdout] 79 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/selection.rs:80:18 [INFO] [stdout] | [INFO] [stdout] 80 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stdout] 80 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/solver/search/utils/tabu_list.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | random: &(dyn Random), [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 80 - random: &(dyn Random), [INFO] [stdout] 80 + random: &dyn Random, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/lib.rs:108:1 [INFO] [stdout] | [INFO] [stdout] 108 | pub mod helpers; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | #![warn(missing_docs)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod construction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub mod models; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod solver; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub mod utils; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod macros; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/construction/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod clustering; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/construction/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub mod features; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/construction/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod heuristics; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/construction/clustering/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod dbscan; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/construction/clustering/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub mod vicinity; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/clustering/mod.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn p(x: Float, y: Float) -> Point { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/clustering/dbscan.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn create_test_distances() -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a type alias [INFO] [stdout] --> src/../tests/helpers/construction/clustering/vicinity.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | pub type JobPlaces = Vec<(Option, Duration, Vec<(Float, Float)>)>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/clustering/vicinity.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_clustered_jobs(&self) -> Option<&Vec>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/clustering/vicinity.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | fn set_clustered_jobs(&mut self, jobs: Vec); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/clustering/vicinity.rs:82:1 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn create_goal_context_with_vicinity(disallow_merge_list: Vec<&str>) -> GoalContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/clustering/vicinity.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn create_cluster_config() -> ClusterConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/features.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn create_simple_demand(size: i32) -> Demand { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/features.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn create_simple_dynamic_demand(size: i32) -> Demand { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/construction/features.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn single_demand_as_multi(pickup: (i32, i32), delivery: (i32, i32)) -> Demand { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct TestInsertionContextBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn with_problem(&mut self, problem: Problem) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn with_solution(&mut self, solution: SolutionContext) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn with_registry(&mut self, registry: Registry) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn with_registry_context(&mut self, registry: RegistryContext) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn with_routes(&mut self, routes: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn with_required(&mut self, required: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn with_unassigned(&mut self, required: Vec<(Job, UnassignmentInfo)>) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn with_state(&mut self, state_fn: impl FnOnce(&mut SolutionState)) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/construction/heuristics.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn build(&mut self) -> InsertionContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/models/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod domain; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/models/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | pub mod problem; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/models/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod solution; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn test_random() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn test_logger() -> InfoLogger { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct TestGoalContextBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn empty() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn with_transport_feature() -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn add_feature(mut self, feature: Feature) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn add_features(mut self, feature: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn build(self) -> GoalContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn with_fleet(&mut self, fleet: Fleet) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn with_jobs(&mut self, jobs: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn build(&mut self) -> Problem { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:95:1 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn get_customer_ids_from_routes_sorted(insertion_ctx: &InsertionContext) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:101:1 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn get_sorted_customer_ids_from_jobs(jobs: &[Job]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:107:1 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn get_customer_ids_from_jobs(jobs: &[Job]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:111:1 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn get_customer_ids_from_routes(insertion_ctx: &InsertionContext) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:129:1 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn get_customer_ids_from_unassigned(insertion_ctx: &InsertionContext) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/domain.rs:137:1 [INFO] [stdout] | [INFO] [stdout] 137 | pub fn get_customer_id(job: &Job) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/problem/costs.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct TestTransportCost {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/problem/costs.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn new_shared() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/costs.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn fake_routing(from: Location, to: Location) -> Float { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/problem/costs.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct TestActivityCost { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/problem/costs.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn new_shared() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub const DEFAULT_ACTOR_LOCATION: Location = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub const DEFAULT_ACTOR_TIME_WINDOW: TimeWindow = TimeWindow { start: 0.0, end: 1000.0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub const DEFAULT_VEHICLE_COSTS: Costs = [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn test_costs() -> Costs { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn fixed_costs() -> Costs { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn empty_costs() -> Costs { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn test_driver() -> Driver { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn test_driver_with_costs(costs: Costs) -> Driver { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn test_vehicle_detail() -> VehicleDetail { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn test_vehicle(profile_idx: usize) -> Vehicle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn test_ovrp_vehicle(id: &str) -> Vehicle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn test_fleet() -> Fleet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:62:1 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn test_vehicle_with_id(id: &str) -> Vehicle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:69:1 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn get_vehicle_id(vehicle: &Vehicle) -> &String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:73:1 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn get_test_actor_from_fleet(fleet: &Fleet, vehicle_id: &str) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct TestVehicleBuilder(Vehicle); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn id(&mut self, id: &str) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn profile(&mut self, profile: Profile) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub fn capacity(&mut self, capacity: i32) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn capacity_mult(&mut self, capacity: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | pub fn costs(&mut self, costs: Costs) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn details(&mut self, details: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | pub fn property(&mut self, value: T) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | pub fn dimens_mut(&mut self) -> &mut Dimensions { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:125:5 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn build(&mut self) -> Vehicle { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a type alias [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:130:1 [INFO] [stdout] | [INFO] [stdout] 130 | pub type GroupKeyFn = Box]) -> Box usize + Send + Sync>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:133:1 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct FleetBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 140 | pub fn add_driver(&mut self, driver: Driver) -> &mut FleetBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | pub fn add_vehicle(&mut self, vehicle: Vehicle) -> &mut FleetBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:150:5 [INFO] [stdout] | [INFO] [stdout] 150 | pub fn add_vehicles(&mut self, vehicles: Vec) -> &mut FleetBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn with_group_key_fn(&mut self, group_key_fn: GroupKeyFn) -> &mut FleetBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn build(&mut self) -> Fleet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/fleet.rs:177:1 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn create_details_actor_groups(actors: &[Arc]) -> impl Fn(&Actor) -> usize + Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | pub const DEFAULT_JOB_LOCATION: Location = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub const DEFAULT_JOB_DURATION: Duration = 0.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | pub const DEFAULT_JOB_TIME_SPAN: TimeSpan = TimeSpan::Window(TimeWindow { start: 0., end: 1000. }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub const DEFAULT_ACTIVITY_TIME_WINDOW: TimeWindow = TimeWindow { start: 0., end: 1000. }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a type alias [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub type TestPlace = (Option, Duration, Vec<(Float, Float)>); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn test_multi_with_id(id: &str, jobs: Vec>) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn test_multi_job_with_locations(locations: Vec>>) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn test_multi_with_permutations(id: &str, jobs: Vec>, permutations: Vec>) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:34:1 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn get_job_id(job: &Job) -> &String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct TestSingleBuilder(Single); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn with_locations(locations: Vec>) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn id(&mut self, id: &str) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn property(&mut self, value: T) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn dimens(&mut self, dimens: Dimensions) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn location(&mut self, loc: Option) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn duration(&mut self, dur: Duration) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn times(&mut self, times: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn demand(&mut self, demand: Demand) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:92:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn places(&mut self, places: Vec) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | pub fn dimens_mut(&mut self) -> &mut Dimensions { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn build(&mut self) -> Single { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 113 | pub fn build_shared(&mut self) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/problem/jobs.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn build_as_job_ref(&mut self) -> Job { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/solution/actor.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn test_actor() -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/solution/actor.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn test_actor_with_profile(profile_idx: usize) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/models/solution/actor.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn create_test_registry() -> Registry { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a constant [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub const DEFAULT_ACTIVITY_SCHEDULE: Schedule = Schedule { departure: 0.0, arrival: 0.0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct RouteContextBuilder(RouteContext); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn with_route(&mut self, route: Route) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn with_state(&mut self, state: RouteState) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn build(&mut self) -> RouteContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:36:1 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct RouteBuilder(Route); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | pub fn add_activity(&mut self, activity: Activity) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | / pub fn with_activity(&mut self, configure: F) -> &mut Self [INFO] [stdout] 92 | | where [INFO] [stdout] 93 | | F: FnOnce(&mut Activity), [INFO] [stdout] | |_________________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub fn build(&mut self) -> Route { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:107:1 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct RouteStateBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn set_route_state(&mut self, func: F) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn build(&mut self) -> RouteState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:122:1 [INFO] [stdout] | [INFO] [stdout] 122 | pub struct ActivityBuilder(Activity); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn with_location(location: Location) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn with_location_and_tw(location: Location, tw: TimeWindow) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:139:5 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn with_location_tw_and_duration(location: Location, tw: TimeWindow, duration: Duration) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | pub fn place(&mut self, place: Place) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 153 | pub fn schedule(&mut self, schedule: Schedule) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 158 | pub fn job(&mut self, job: Option>) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a method [INFO] [stdout] --> src/../tests/helpers/models/solution/route.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn build(&mut self) -> Activity { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/solver/mod.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn create_default_refinement_ctx(problem: Arc) -> RefinementContext { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/solver/mod.rs:54:1 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn generate_matrix_distances_from_points(points: &[Point]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/solver/mod.rs:58:1 [INFO] [stdout] | [INFO] [stdout] 58 | / pub fn generate_matrix_routes_with_disallow_list( [INFO] [stdout] 59 | | rows: usize, [INFO] [stdout] 60 | | cols: usize, [INFO] [stdout] 61 | | is_open_vrp: bool, [INFO] [stdout] 62 | | disallowed_pairs: Vec<(&str, &str)>, [INFO] [stdout] 63 | | ) -> (Problem, Solution) { [INFO] [stdout] | |________________________^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/../tests/helpers/utils/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub mod random; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/../tests/helpers/utils/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn create_test_environment_with_random(random: Arc) -> Arc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a struct [INFO] [stdout] --> src/../tests/helpers/utils/random.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct FakeRandom { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for an associated function [INFO] [stdout] --> src/../tests/helpers/utils/random.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn new(ints: Vec, reals: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/construction/enablers/feature_combinator.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | / self.states.iter().try_for_each(|state| { [INFO] [stdout] 125 | | let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len()); [INFO] [stdout] 126 | | [INFO] [stdout] 127 | | state.accept_solution_state(ctx); [INFO] [stdout] ... | [INFO] [stdout] 134 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 124 | let _ = self.states.iter().try_for_each(|state| { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:99:27 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn all_activities(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 99 | pub fn all_activities(&self) -> Iter<'_, Activity> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:109:31 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn all_activities_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 109 | pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/models/solution/tour.rs:114:79 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stdout] | -- -- ^^^^^^^^^ -- the same lifetime is named here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/solver/mod.rs:144:58 [INFO] [stdout] | [INFO] [stdout] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/solver/mod.rs:148:56 [INFO] [stdout] | [INFO] [stdout] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 15.96s [INFO] running `Command { std: "docker" "inspect" "058eeeeeb7dd6aa668ab44518969c2bceede0d228a5b9dd052ce3d4f009bad0e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "058eeeeeb7dd6aa668ab44518969c2bceede0d228a5b9dd052ce3d4f009bad0e", kill_on_drop: false }` [INFO] [stdout] 058eeeeeb7dd6aa668ab44518969c2bceede0d228a5b9dd052ce3d4f009bad0e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b9cd1ba88d39ebb23696bbeebb7970191de897748fd9c9ec91ba95abdbb5aacb [INFO] running `Command { std: "docker" "start" "-a" "b9cd1ba88d39ebb23696bbeebb7970191de897748fd9c9ec91ba95abdbb5aacb", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/clustering/vicinity/estimations.rs:99:17 [INFO] [stderr] | [INFO] [stderr] 99 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 99 - transport: &(dyn TransportCost), [INFO] [stderr] 99 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/clustering/vicinity/estimations.rs:124:17 [INFO] [stderr] | [INFO] [stderr] 124 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 124 - transport: &(dyn TransportCost), [INFO] [stderr] 124 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/clustering/vicinity/mod.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stderr] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/conditional_job.rs:67:26 [INFO] [stderr] | [INFO] [stderr] 67 | context_transition: &(dyn JobContextTransition), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 67 - context_transition: &(dyn JobContextTransition), [INFO] [stderr] 67 + context_transition: &dyn JobContextTransition, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 14 - activity: &(dyn ActivityCost), [INFO] [stderr] 14 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 15 - transport: &(dyn TransportCost), [INFO] [stderr] 15 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 26 - activity: &(dyn ActivityCost), [INFO] [stderr] 26 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 27 - transport: &(dyn TransportCost), [INFO] [stderr] 27 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 36 - transport: &(dyn TransportCost), [INFO] [stderr] 36 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/multi_trip.rs:20:34 [INFO] [stderr] | [INFO] [stderr] 20 | fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 20 - fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stderr] 20 + fn get_constraint(&self) -> &dyn FeatureConstraint; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 16 - activity: &(dyn ActivityCost), [INFO] [stderr] 16 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 17 - transport: &(dyn TransportCost), [INFO] [stderr] 17 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 27 - activity: &(dyn ActivityCost), [INFO] [stderr] 27 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 28 - transport: &(dyn TransportCost), [INFO] [stderr] 28 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:37:62 [INFO] [stderr] | [INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:37:94 [INFO] [stderr] | [INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:59:59 [INFO] [stderr] | [INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:59:91 [INFO] [stderr] | [INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:113:64 [INFO] [stderr] | [INFO] [stderr] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stderr] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/travel_info.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 10 - transport: &(dyn TransportCost), [INFO] [stderr] 10 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/travel_info.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 36 - transport: &(dyn TransportCost), [INFO] [stderr] 36 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/travel_info.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 68 - transport: &(dyn TransportCost), [INFO] [stderr] 68 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/features/capacity.rs:138:34 [INFO] [stderr] | [INFO] [stderr] 138 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 138 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] 138 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/features/recharge.rs:184:34 [INFO] [stderr] | [INFO] [stderr] 184 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 184 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] 184 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/features/tour_order.rs:160:19 [INFO] [stderr] | [INFO] [stderr] 160 | check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 160 - check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stderr] 160 + check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/evaluators.rs:25:30 [INFO] [stderr] | [INFO] [stderr] 25 | pub result_selector: &'a (dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 25 - pub result_selector: &'a (dyn ResultSelector), [INFO] [stderr] 25 + pub result_selector: &'a dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/insertions.rs:264:24 [INFO] [stderr] | [INFO] [stderr] 264 | job_selector: &(dyn JobSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 264 - job_selector: &(dyn JobSelector), [INFO] [stderr] 264 + job_selector: &dyn JobSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/insertions.rs:265:26 [INFO] [stderr] | [INFO] [stderr] 265 | route_selector: &(dyn RouteSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 265 - route_selector: &(dyn RouteSelector), [INFO] [stderr] 265 + route_selector: &dyn RouteSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/insertions.rs:267:27 [INFO] [stderr] | [INFO] [stderr] 267 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 267 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 267 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 77 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 77 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:105:27 [INFO] [stderr] | [INFO] [stderr] 105 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 105 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 105 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:137:27 [INFO] [stderr] | [INFO] [stderr] 137 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 137 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 137 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:355:28 [INFO] [stderr] | [INFO] [stderr] 355 | pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 355 - pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stderr] 355 + pub fn pick(&self) -> &dyn ResultSelector { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/probing/repair_solution.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | factory: &(dyn Fn() -> InsertionContext), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 19 - factory: &(dyn Fn() -> InsertionContext), [INFO] [stderr] 19 + factory: &dyn Fn() -> InsertionContext, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/goal.rs:450:37 [INFO] [stderr] | [INFO] [stderr] 450 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 450 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] 450 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/goal.rs:474:37 [INFO] [stderr] | [INFO] [stderr] 474 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 474 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] 474 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:245:21 [INFO] [stderr] | [INFO] [stderr] 245 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 245 - transport: &(dyn TransportCost), [INFO] [stderr] 245 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:332:17 [INFO] [stderr] | [INFO] [stderr] 332 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 332 - transport: &(dyn TransportCost), [INFO] [stderr] 332 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:385:17 [INFO] [stderr] | [INFO] [stderr] 385 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 385 - transport: &(dyn TransportCost), [INFO] [stderr] 385 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:404:17 [INFO] [stderr] | [INFO] [stderr] 404 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 404 - transport: &(dyn TransportCost), [INFO] [stderr] 404 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:419:17 [INFO] [stderr] | [INFO] [stderr] 419 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 419 - transport: &(dyn TransportCost), [INFO] [stderr] 419 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_inter_route.rs:180:23 [INFO] [stderr] | [INFO] [stderr] 180 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 180 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 180 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_swap_star.rs:79:71 [INFO] [stderr] | [INFO] [stderr] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stderr] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_swap_star.rs:291:23 [INFO] [stderr] | [INFO] [stderr] 291 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 291 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 291 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_swap_star.rs:372:23 [INFO] [stderr] | [INFO] [stderr] 372 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 372 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 372 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/recreate/recreate_with_regret.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 61 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 61 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 59 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 59 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/ruin/route_removal.rs:140:14 [INFO] [stderr] | [INFO] [stderr] 140 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 140 - random: &(dyn Random), [INFO] [stderr] 140 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/removal.rs:82:18 [INFO] [stderr] | [INFO] [stderr] 82 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 82 - random: &(dyn Random), [INFO] [stderr] 82 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/removal.rs:97:92 [INFO] [stderr] | [INFO] [stderr] 97 | fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 97 - fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stderr] 97 + fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/removal.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 142 - random: &(dyn Random), [INFO] [stderr] 142 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:47:14 [INFO] [stderr] | [INFO] [stderr] 47 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 47 - random: &(dyn Random), [INFO] [stderr] 47 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:48:20 [INFO] [stderr] | [INFO] [stderr] 48 | route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 48 - route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stderr] 48 + route_filter: &dyn Fn(&RouteContext) -> bool, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:49:18 [INFO] [stderr] | [INFO] [stderr] 49 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 49 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] 49 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:79:14 [INFO] [stderr] | [INFO] [stderr] 79 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 79 - random: &(dyn Random), [INFO] [stderr] 79 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 80 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] 80 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/tabu_list.rs:80:14 [INFO] [stderr] | [INFO] [stderr] 80 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 80 - random: &(dyn Random), [INFO] [stderr] 80 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stderr] --> src/construction/enablers/feature_combinator.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | / self.states.iter().try_for_each(|state| { [INFO] [stderr] 125 | | let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len()); [INFO] [stderr] 126 | | [INFO] [stderr] 127 | | state.accept_solution_state(ctx); [INFO] [stderr] ... | [INFO] [stderr] 134 | | }); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 124 | let _ = self.states.iter().try_for_each(|state| { [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/models/solution/tour.rs:99:27 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn all_activities(&self) -> Iter { [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 99 | pub fn all_activities(&self) -> Iter<'_, Activity> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/models/solution/tour.rs:109:31 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn all_activities_mut(&mut self) -> IterMut { [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 109 | pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/models/solution/tour.rs:114:79 [INFO] [stderr] | [INFO] [stderr] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stderr] | -- -- ^^^^^^^^^ -- the same lifetime is named here [INFO] [stderr] | | | | [INFO] [stderr] | | the lifetime is named here the same lifetime is elided here [INFO] [stderr] | the lifetime is named here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 114 | pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator + 'a { [INFO] [stderr] | ++ [INFO] [stderr] [INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/solver/mod.rs:144:58 [INFO] [stderr] | [INFO] [stderr] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stderr] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 144 | fn selected<'a>(&'a self) -> Box + 'a> { [INFO] [stderr] | ++ [INFO] [stderr] [INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/solver/mod.rs:148:56 [INFO] [stderr] | [INFO] [stderr] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stderr] | -- the lifetime is named here ^^^^^^^^^^^^^^^ the same lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 148 | fn ranked<'a>(&'a self) -> Box + 'a> { [INFO] [stderr] | ++ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/../../../tests/unit/construction/heuristics/metrics_test.rs:10:21 [INFO] [stderr] | [INFO] [stderr] 10 | route_factory: &(dyn Fn(&Problem, usize) -> RouteContext), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 10 - route_factory: &(dyn Fn(&Problem, usize) -> RouteContext), [INFO] [stderr] 10 + route_factory: &dyn Fn(&Problem, usize) -> RouteContext, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/lib.rs:108:1 [INFO] [stderr] | [INFO] [stderr] 108 | pub mod helpers; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: the lint level is defined here [INFO] [stderr] --> src/lib.rs:102:9 [INFO] [stderr] | [INFO] [stderr] 102 | #![warn(missing_docs)] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod construction; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | pub mod models; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub mod solver; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub mod utils; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/mod.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub mod macros; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/construction/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod clustering; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/construction/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | pub mod features; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/construction/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub mod heuristics; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/construction/clustering/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod dbscan; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/construction/clustering/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | pub mod vicinity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/clustering/mod.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn p(x: Float, y: Float) -> Point { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/clustering/dbscan.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn create_test_distances() -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a type alias [INFO] [stderr] --> src/../tests/helpers/construction/clustering/vicinity.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub type JobPlaces = Vec<(Option, Duration, Vec<(Float, Float)>)>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/clustering/vicinity.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | fn get_clustered_jobs(&self) -> Option<&Vec>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/clustering/vicinity.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | fn set_clustered_jobs(&mut self, jobs: Vec); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/clustering/vicinity.rs:82:1 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn create_goal_context_with_vicinity(disallow_merge_list: Vec<&str>) -> GoalContext { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/clustering/vicinity.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn create_cluster_config() -> ClusterConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/features.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn create_simple_demand(size: i32) -> Demand { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/features.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn create_simple_dynamic_demand(size: i32) -> Demand { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/construction/features.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn single_demand_as_multi(pickup: (i32, i32), delivery: (i32, i32)) -> Demand { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct TestInsertionContextBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn with_problem(&mut self, problem: Problem) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn with_solution(&mut self, solution: SolutionContext) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn with_registry(&mut self, registry: Registry) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn with_registry_context(&mut self, registry: RegistryContext) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn with_routes(&mut self, routes: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn with_required(&mut self, required: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn with_unassigned(&mut self, required: Vec<(Job, UnassignmentInfo)>) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn with_state(&mut self, state_fn: impl FnOnce(&mut SolutionState)) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/construction/heuristics.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn build(&mut self) -> InsertionContext { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/models/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod domain; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/models/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | pub mod problem; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/models/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub mod solution; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn test_random() -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub fn test_logger() -> InfoLogger { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct TestGoalContextBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn empty() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn with_transport_feature() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn add_feature(mut self, feature: Feature) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn add_features(mut self, feature: Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn build(self) -> GoalContext { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn with_fleet(&mut self, fleet: Fleet) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn with_jobs(&mut self, jobs: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn build(&mut self) -> Problem { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:95:1 [INFO] [stderr] | [INFO] [stderr] 95 | pub fn get_customer_ids_from_routes_sorted(insertion_ctx: &InsertionContext) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn get_sorted_customer_ids_from_jobs(jobs: &[Job]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:107:1 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn get_customer_ids_from_jobs(jobs: &[Job]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:111:1 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn get_customer_ids_from_routes(insertion_ctx: &InsertionContext) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:129:1 [INFO] [stderr] | [INFO] [stderr] 129 | pub fn get_customer_ids_from_unassigned(insertion_ctx: &InsertionContext) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/domain.rs:137:1 [INFO] [stderr] | [INFO] [stderr] 137 | pub fn get_customer_id(job: &Job) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/problem/costs.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub struct TestTransportCost {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/problem/costs.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn new_shared() -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/costs.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn fake_routing(from: Location, to: Location) -> Float { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/problem/costs.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub struct TestActivityCost { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/problem/costs.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn new_shared() -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const DEFAULT_ACTOR_LOCATION: Location = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub const DEFAULT_ACTOR_TIME_WINDOW: TimeWindow = TimeWindow { start: 0.0, end: 1000.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub const DEFAULT_VEHICLE_COSTS: Costs = [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn test_costs() -> Costs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn fixed_costs() -> Costs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn empty_costs() -> Costs { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn test_driver() -> Driver { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub fn test_driver_with_costs(costs: Costs) -> Driver { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn test_vehicle_detail() -> VehicleDetail { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn test_vehicle(profile_idx: usize) -> Vehicle { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:54:1 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn test_ovrp_vehicle(id: &str) -> Vehicle { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | pub fn test_fleet() -> Fleet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn test_vehicle_with_id(id: &str) -> Vehicle { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:69:1 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn get_vehicle_id(vehicle: &Vehicle) -> &String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:73:1 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn get_test_actor_from_fleet(fleet: &Fleet, vehicle_id: &str) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:77:1 [INFO] [stderr] | [INFO] [stderr] 77 | pub struct TestVehicleBuilder(Vehicle); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn id(&mut self, id: &str) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn profile(&mut self, profile: Profile) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn capacity(&mut self, capacity: i32) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn capacity_mult(&mut self, capacity: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn costs(&mut self, costs: Costs) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | pub fn details(&mut self, details: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | pub fn property(&mut self, value: T) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | pub fn dimens_mut(&mut self) -> &mut Dimensions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn build(&mut self) -> Vehicle { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a type alias [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:130:1 [INFO] [stderr] | [INFO] [stderr] 130 | pub type GroupKeyFn = Box]) -> Box usize + Send + Sync>>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:133:1 [INFO] [stderr] | [INFO] [stderr] 133 | pub struct FleetBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | pub fn add_driver(&mut self, driver: Driver) -> &mut FleetBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | pub fn add_vehicle(&mut self, vehicle: Vehicle) -> &mut FleetBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | pub fn add_vehicles(&mut self, vehicles: Vec) -> &mut FleetBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | pub fn with_group_key_fn(&mut self, group_key_fn: GroupKeyFn) -> &mut FleetBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn build(&mut self) -> Fleet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/fleet.rs:177:1 [INFO] [stderr] | [INFO] [stderr] 177 | pub fn create_details_actor_groups(actors: &[Arc]) -> impl Fn(&Actor) -> usize + Send + Sync { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const DEFAULT_JOB_LOCATION: Location = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub const DEFAULT_JOB_DURATION: Duration = 0.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub const DEFAULT_JOB_TIME_SPAN: TimeSpan = TimeSpan::Window(TimeWindow { start: 0., end: 1000. }); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub const DEFAULT_ACTIVITY_TIME_WINDOW: TimeWindow = TimeWindow { start: 0., end: 1000. }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a type alias [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub type TestPlace = (Option, Duration, Vec<(Float, Float)>); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn test_multi_with_id(id: &str, jobs: Vec>) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn test_multi_job_with_locations(locations: Vec>>) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn test_multi_with_permutations(id: &str, jobs: Vec>, permutations: Vec>) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn get_job_id(job: &Job) -> &String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | pub struct TestSingleBuilder(Single); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn with_locations(locations: Vec>) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn id(&mut self, id: &str) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn property(&mut self, value: T) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn dimens(&mut self, dimens: Dimensions) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn location(&mut self, loc: Option) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | pub fn duration(&mut self, dur: Duration) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:82:5 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn times(&mut self, times: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn demand(&mut self, demand: Demand) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn places(&mut self, places: Vec) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | pub fn dimens_mut(&mut self) -> &mut Dimensions { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:109:5 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn build(&mut self) -> Single { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:113:5 [INFO] [stderr] | [INFO] [stderr] 113 | pub fn build_shared(&mut self) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/problem/jobs.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn build_as_job_ref(&mut self) -> Job { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/solution/actor.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub fn test_actor() -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/solution/actor.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn test_actor_with_profile(profile_idx: usize) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/models/solution/actor.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn create_test_registry() -> Registry { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a constant [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub const DEFAULT_ACTIVITY_SCHEDULE: Schedule = Schedule { departure: 0.0, arrival: 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub struct RouteContextBuilder(RouteContext); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn with_route(&mut self, route: Route) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn with_state(&mut self, state: RouteState) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn build(&mut self) -> RouteContext { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:36:1 [INFO] [stderr] | [INFO] [stderr] 36 | pub struct RouteBuilder(Route); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | pub fn add_activity(&mut self, activity: Activity) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | / pub fn with_activity(&mut self, configure: F) -> &mut Self [INFO] [stderr] 92 | | where [INFO] [stderr] 93 | | F: FnOnce(&mut Activity), [INFO] [stderr] | |_________________________________^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn build(&mut self) -> Route { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:107:1 [INFO] [stderr] | [INFO] [stderr] 107 | pub struct RouteStateBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn set_route_state(&mut self, func: F) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn build(&mut self) -> RouteState { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:122:1 [INFO] [stderr] | [INFO] [stderr] 122 | pub struct ActivityBuilder(Activity); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | pub fn with_location(location: Location) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:135:5 [INFO] [stderr] | [INFO] [stderr] 135 | pub fn with_location_and_tw(location: Location, tw: TimeWindow) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:139:5 [INFO] [stderr] | [INFO] [stderr] 139 | pub fn with_location_tw_and_duration(location: Location, tw: TimeWindow, duration: Duration) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | pub fn place(&mut self, place: Place) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | pub fn schedule(&mut self, schedule: Schedule) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | pub fn job(&mut self, job: Option>) -> &mut Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a method [INFO] [stderr] --> src/../tests/helpers/models/solution/route.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | pub fn build(&mut self) -> Activity { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/solver/mod.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn create_default_refinement_ctx(problem: Arc) -> RefinementContext { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/solver/mod.rs:54:1 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn generate_matrix_distances_from_points(points: &[Point]) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/solver/mod.rs:58:1 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn generate_matrix_routes_with_disallow_list( [INFO] [stderr] 59 | | rows: usize, [INFO] [stderr] 60 | | cols: usize, [INFO] [stderr] 61 | | is_open_vrp: bool, [INFO] [stderr] 62 | | disallowed_pairs: Vec<(&str, &str)>, [INFO] [stderr] 63 | | ) -> (Problem, Solution) { [INFO] [stderr] | |________________________^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a module [INFO] [stderr] --> src/../tests/helpers/utils/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub mod random; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a function [INFO] [stderr] --> src/../tests/helpers/utils/mod.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn create_test_environment_with_random(random: Arc) -> Arc { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a struct [INFO] [stderr] --> src/../tests/helpers/utils/random.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct FakeRandom { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: missing documentation for an associated function [INFO] [stderr] --> src/../tests/helpers/utils/random.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(ints: Vec, reals: Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `vrp-core` (lib) generated 63 warnings (run `cargo fix --lib -p vrp-core` to apply 62 suggestions) [INFO] [stderr] warning: `vrp-core` (lib test) generated 208 warnings (63 duplicates) (run `cargo fix --lib -p vrp-core --tests` to apply 1 suggestion) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vrp_core-2ef66bc242493aa1) [INFO] [stdout] [INFO] [stdout] running 604 tests [INFO] [stdout] test algorithms::geometry::point::point_test::can_calculate_distance_between_points ... ok [INFO] [stdout] test algorithms::geometry::point::point_test::can_calculate_distance_to_line ... ok [INFO] [stdout] test algorithms::clustering::dbscan::dbscan_test::can_create_clusters_with_single_link ... ok [INFO] [stdout] test algorithms::geometry::point::point_test::can_calculate_distance_to_segment ... ok [INFO] [stdout] test algorithms::clustering::dbscan::dbscan_test::can_create_clusters_normally ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_get_max_curvature ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_01_trivial ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_02_two_places ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_03_disallowed_insertion ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_04_disallowed_merge ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_05_visit_repetition ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_06_time_window_threshold_above ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_07_time_window_threshold_below ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_01_empty ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_02_merge ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_create_job_clusters::case_02 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_03_insertion ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_05 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_04 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_04_all ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_06 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_07 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_04 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_create_job_clusters::case_01 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_create_job_clusters::case_03 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_02 ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_03 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_policy::case_02_open ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_05_used ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_policy::case_03_return ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_04_skip ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_03_diff ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_01 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_01_same ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_00 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_02_diff ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_policy::case_01_closed ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_05_skip ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_01 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_02_two_places ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_08_multi ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_10_shrink ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_03_two_places ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_05_serving_policy ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_04_serving_policy ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_02 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_07_skip ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_06_skip ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_01_one_place ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_06_threshold ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_07_threshold ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_06 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_03 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_08_shared_time ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_09_shared_time ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_11_wide_time_windows ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_12_wide_time_windows ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_13_sorting_shared_time ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_07 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_10_shared_time ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_14_sorting_shared_time ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case03 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case02 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case04 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case01 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case06 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case01 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case04 ... ok [INFO] [stdout] test construction::clustering::vicinity::vicinity_test::can_get_check_insertion ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case05 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case05 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case03 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case08 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case01_break_starts_at_target_then_next_at_end ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case09 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case07 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_avoid_reserved_time_when_driving::case02_should_keep_duration_at_driving ... ok [INFO] [stdout] test construction::clustering::vicinity::vicinity_test::can_create_job_clusters ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case06 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case02_break_starts_at_target_then_next_is_late ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case03_break_with_waiting_time ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case06_break_on_whole_time_window_inclusive ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case07_break_on_whole_time_window_inclusive ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case08_break_constraints_next ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case05_break_on_whole_time_window_exclusive ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case04_break_during_traveling ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_05 ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_09_shrink ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case07 ... ok [INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case02 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_search_for_reserved_time::case01 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case09_break_constraints_next ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_avoid_reserved_time_when_driving::case01_should_move_duration_to_serving ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_search_for_reserved_time::case02 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case04_two_inside_service ... ok [INFO] [stdout] test construction::features::breaks::breaks_test::can_skip_merge_breaks::case_01 ... ok [INFO] [stdout] test construction::features::breaks::breaks_test::can_skip_merge_breaks::case_02 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case03_two_inside_travel ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_04 ... ok [INFO] [stdout] test construction::features::breaks::breaks_test::can_remove_orphan_break::case01_break_no_location_activity_at_another ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_02 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case02_single_inside ... ok [INFO] [stdout] test construction::features::breaks::breaks_test::can_remove_orphan_break::case03_break_with_location ... ok [INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_01 ... ok [INFO] [stdout] test construction::features::breaks::breaks_test::can_skip_merge_breaks::case_03 ... ok [INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case01_single_outside ... ok [INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_03 ... ok [INFO] [stdout] test construction::features::breaks::breaks_test::can_remove_orphan_break::case02_break_no_location_activity_at_prev ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_calculate_current_capacity_state_values::case02 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_calculate_current_capacity_state_values::case03 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case01 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case04 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_calculate_current_capacity_state_values::case01 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case06 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case07 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case05 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case08 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case09 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case10 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case02 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case11 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case03 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_route::case01 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_route::case02 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case01 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case02 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_route::case03 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case03 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case04 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case05 ... ok [INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case06 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_accept_route_state::case_01 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_01 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_03 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_02 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_04 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_accept_route_state::case_02 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_01 ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case02_start_skip_activity ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_03 ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::global_estimation::can_get_solution_fitness_with_reload ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case02_delivery_along_route ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case03_pickup_deviate_route ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case03_end_prev_activity ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case01_delivery_deviate_route ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case04_pickup_along_route ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_02 ... ok [INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_03 ... ok [INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_01 ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case04_end_prev_activity ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case01_start_next_activity ... ok [INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_04 ... ok [INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_05 ... ok [INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_06 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_accept_insertion::case_01 ... ok [INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_02 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_accept_insertion::case_02 ... ok [INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_04 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_01 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_02 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_03 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_evaluate_job::case_02 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_evaluate_job::case_01 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_02 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_03 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_04 ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_05 ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_handle_merge_locked_jobs ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_actor::case02 ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_actor::case01 ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case03_departure ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case04_departure ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case02_departure ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case05_departure ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case06_departure ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case09_arrival ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case08_arrival ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case10_arrival ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case11_arrival ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case12_arrival ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case13_any ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case15_any ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case16_any ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case14_any ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_04 ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case17_any ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case19_any ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case18_any ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case07_departure ... ok [INFO] [stdout] test construction::features::fast_service::fast_service_test::global_estimation::can_get_solution_fitness ... ok [INFO] [stdout] test construction::features::minimize_unassigned::minimize_unassigned_test::can_properly_estimate_empty_solution ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_accept_recharge_in_long_empty_route ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case22_fixed ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case01_single_recharge ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case02_two_recharges ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case01_departure ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case20_any ... ok [INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_01 ... ok [INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case21_fixed ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_evaluate_insertion::case01_reject_before_recharge ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_evaluate_insertion::case02_accept_after_recharge ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case01_remove_one_exact ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case02_remove_one_diff ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case03_keep_one_exact ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case04_remove_one_diff ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case05_can_handle_two ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case03_no_recharges ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case04_recharge_at_end ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_01_enough_resource ... ok [INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case05_recharge_at_start ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_02_enough_resource ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_03_not_enough_resource ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_04_not_enough_resource ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_05_enough_resource_ovrp ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_06_not_enough_resource_ovrp ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_07_not_enough_resource_ovrp ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_08_not_enough_resource_ovrp ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_09_not_enough_resource_ovrp ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_03_no_demand ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_04_no_resource ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_handle_reload_jobs_with_merge ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_01_partial_solution ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_02_complete_solution ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case01_no_reloads ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case02_remove_at_start ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case03_remove_at_start ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case04_remove_at_end ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case05_remove_at_end ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case06_keep_static_delivery ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case07_keep_static_delivery ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case08_keep_static_delivery ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case10_remove_static_delivery ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case11_remove_static_pickup ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case12_keep_static_mixed ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case13_keep_static_pickup ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case09_remove_static_delivery ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case14_remove_static_mixed ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case15_remove_static_mixed ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case16_keep_multiple ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case17_remove_multiple ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case19_remove_multiple ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case18_remove_multiple ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case21_remove_multiple ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case20_remove_multiple ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case22_remove_dynamic ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case23_remove_mixed ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case24_remove_mixed ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case25_keep_mixed ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_01_single_shared_resource ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_02_two_shared_resources ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_03_mixed_normal_resource ... ok [INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_04_partial_solution ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_02 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_03 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_04 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_05 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_06 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_03 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_05 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_04 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_02 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_07 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_06 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_02 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_03 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_04 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_06 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_02 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_05 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_03 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_04 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_05 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_create_empty_skills_as_none ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_03 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_04 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_05 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_02 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_06 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_07 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_06 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_09 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_10 ... ok [INFO] [stdout] test construction::features::total_value::total_value_test::can_estimate_job_value::case_02 ... ok [INFO] [stdout] test construction::features::total_value::total_value_test::can_estimate_job_value::case_03 ... ok [INFO] [stdout] test construction::features::total_value::total_value_test::can_merge_value ... ok [INFO] [stdout] test construction::features::total_value::total_value_test::can_estimate_job_value::case_01 ... ok [INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_01_far_job ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case01 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_08 ... ok [INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_03_near_job ... ok [INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_return_err_if_feature_cannot_be_created ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case03 ... ok [INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_04_near_job_larger_routes ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case04 ... ok [INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_11 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case05 ... ok [INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_02_near_job ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case02 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case06 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case01 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case02 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case03 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case04 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case05 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case06 ... ok [INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_consider_waiting_time ... ok [INFO] [stdout] test construction::features::tour_order::tour_order_test::can_get_violations ... ok [INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_01 ... ok [INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_02 ... ok [INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_03 ... ok [INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_05 ... ok [INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_04 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_calculate_soft_activity_cost_for_non_empty_tour ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case01 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_calculate_soft_activity_cost_for_empty_tour ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case02 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case03 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case04 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case06 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case07 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case08 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case09 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case10 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case01 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case02 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case03 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case05 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case04 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case05 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case06 ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case07 ... ok [INFO] [stdout] test construction::heuristics::context::context_test::can_set_and_get_empty_route_state ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case09 ... ok [INFO] [stdout] test construction::heuristics::context::context_test::can_set_and_get_route_state ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_update_activity_schedule ... ok [INFO] [stdout] test construction::heuristics::context::context_test::can_use_stale_flag ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_stop_with_time_route_constraint ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_handle_activity_constraint_violation::case1 ... ok [INFO] [stdout] test construction::heuristics::context::context_test::can_use_debug_fmt_for_insertion_ctx ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_choose_cheaper_permutation_from_two ... ok [INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case08 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_handle_activity_constraint_violation::case2 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case10 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case08 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case02 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case01 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case02 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case09 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case03 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case03 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_detect_and_return_insertion_violation ... ok [INFO] [stdout] test construction::heuristics::context::context_test::can_set_and_get_activity_states_with_different_type_keys ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case01 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_location_into_empty_tour ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case04 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case04 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case05 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case05 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case06 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case01 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case02 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case04 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case06 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case07 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case10 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case03 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_two_vehicles_and_various_time_constraints::case1 ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_add_with_refs ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_two_vehicles_and_various_time_constraints::case2 ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_compare_insertion_costs ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sub_costs ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sub_defaults ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sub_with_refs ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sum_costs ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sum_defaults ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_use_big_sizes_for_insertion_costs ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case06 ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::debug::can_use_debug_fmt_for_insertion_cost ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::debug::can_use_debug_fmt_for_insertion_result_with_failure ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::debug::can_use_debug_fmt_for_insertion_result_with_success ... ok [INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_compare_insertion_cost_defaults ... ok [INFO] [stdout] test construction::heuristics::metrics::metrics_test::can_get_duration_mean ... ok [INFO] [stdout] test construction::heuristics::metrics::metrics_test::can_get_max_load_variance ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case08 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_two_vehicles_and_various_time_constraints::case3 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case09 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case05 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::iterators::can_get_size_hint_for_tour_legs ... ok [INFO] [stdout] test construction::heuristics::metrics::metrics_test::can_get_distance_mean ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_01 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_04 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_02 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_05 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case07 ... ok [INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case07 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_06 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_03 ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case03_single_multi_assignment_in_one_route ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case05_multi_all_correct ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case07_multi_partial_assignment ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case06_multi_invalid_second_index ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case09_relation_all_correct ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case01_single_all_correct ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_distance::case_01 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_distance::case_02 ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case08_multi_invalid_permutation ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_distance::case_03 ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case04_single_multi_assignment_in_different_routes ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case02_single_invalid_second_job_tw ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_duration::case_01 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_duration::case_02 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_02 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_03 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_04 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_05 ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case13_multi_job_early_rejection ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_01 ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case10_relation_sequence_middle ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case11_relation_strict_end ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_duration::case_03 ... ok [INFO] [stdout] test models::common::load::load_test::multi::can_compare_dimens ... ok [INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case12_relation_strict_another_route ... ok [INFO] [stdout] test models::common::load::load_test::multi::can_sub_dimens ... ok [INFO] [stdout] test models::common::load::load_test::multi::can_sum_dimens ... ok [INFO] [stdout] test models::common::load::load_test::multi::can_use_specific_functions ... ok [INFO] [stdout] test models::common::load::load_test::single::can_compare_dimens ... ok [INFO] [stdout] test models::common::load::load_test::single::can_sub_dimens ... ok [INFO] [stdout] test models::common::load::load_test::single::can_sum_dimens ... ok [INFO] [stdout] test models::common::load::load_test::single::can_use_pudo_demand_ctors ... ok [INFO] [stdout] test models::common::load::load_test::single::can_use_pudo_simple_ctors ... ok [INFO] [stdout] test models::common::load::load_test::single::can_use_specific_functions ... ok [INFO] [stdout] test models::goal::goal_test::can_create_goal_context_with_objective ... ok [INFO] [stdout] test models::goal::goal_test::can_detect_same_name_usage ... ok [INFO] [stdout] test models::goal::goal_test::can_evaluate_constraints ... ok [INFO] [stdout] test models::goal::goal_test::can_use_objective_estimate::case01_use_one ... ok [INFO] [stdout] test models::goal::goal_test::can_use_objective_total_order::case01_equal ... ok [INFO] [stdout] test models::goal::goal_test::can_use_objective_estimate::case02_use_two ... ok [INFO] [stdout] test models::goal::goal_test::can_use_objective_total_order::case02_less ... ok [INFO] [stdout] test models::goal::goal_test::cannot_create_goal_context_without_objectives ... ok [INFO] [stdout] test models::goal::goal_test::can_use_objective_total_order::case03_great ... ok [INFO] [stdout] test models::problem::costs::costs_test::can_detect_dimensions_mismatch ... ok [INFO] [stdout] test models::problem::costs::costs_test::can_interpolate_durations ... ok [INFO] [stdout] test models::problem::costs::costs_test::can_return_error_when_mixing_timestamps ... ok [INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case02 ... ok [INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case01 ... ok [INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_06 ... ok [INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case03 ... ok [INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case04 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case5 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case4 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case02 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case01 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::can_use_multi_job_bind_and_roots ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case03 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case3 ... ok [INFO] [stdout] test models::problem::fleet::fleet_test::fleet_creates_unique_profiles_from_vehicles ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case1 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case2 ... ok [INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case05 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case3 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case4 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case1 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case2 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::all_returns_all_jobs ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case1 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case04 ... ok [INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case1 ... ok [INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case4 ... ok [INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case2 ... ok [INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case3 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case4 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case8 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case2 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case2 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case3 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case7 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case1 ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_get_activities_for_job ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case4 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case6 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case5 ... ok [INFO] [stdout] test models::solution::registry::actor_test::can_provide_next_actors_from_registry ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_get_activity_and_job_count ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_get_job_index ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_get_legs ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_get_start_and_end ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_last_position ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case1 ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case2 ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case3 ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case4 ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case5 ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_remove_job ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_set_and_get_end ... ok [INFO] [stdout] test models::solution::tour::tour_test::can_set_and_get_start ... ok [INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_handle_assignable_job::case_01_unknown_code ... ok [INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_combine_vehicle_details::case_01_single_job ... ok [INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_handle_assignable_job::case_03_different_code ... ok [INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_handle_assignable_job::case_02_same_code ... ok [INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_route_on_post_process::case_01 ... ok [INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case3 ... ok [INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_combine_vehicle_details::case_02_two_jobs ... ok [INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_create_problem_with_clusters_on_pre_process ... ok [INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_route_on_post_process::case_02 ... ok [INFO] [stdout] test solver::search::decompose_search::decompose_search_test::can_create_multiple_insertion_ctxs_with_unassigned ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_jobs::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_jobs::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_05 ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_06 ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_04 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_sequence::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_jobs::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_extract_jobs::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_get_route_indices::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_extract_jobs::case_02 ... ok [INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_route_on_post_process::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_extract_jobs::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_sequence::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_get_route_indices::case_03 ... ok [INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_unassigned_on_post_process ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_07 ... ok [INFO] [stdout] test solver::search::decompose_search::decompose_search_test::can_create_multiple_insertion_ctxs_without_unassigned ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_04 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_get_route_indices::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_06 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_05 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_07 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_04 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_jobs_in_routes ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_05 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_06 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_09 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_07 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_08 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_04 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_top_results::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_insertion_cost::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_top_results::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_04 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_insertion_cost::case_02 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_insertion_cost::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_top_results::case_03 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_keep_locked_jobs_in_place ... ok [INFO] [stdout] test solver::search::redistribute_search::redistribute_search_test::can_add_extra_constraint ... ok [INFO] [stdout] test solver::search::redistribute_search::redistribute_search_test::can_restore_constraints_in_context ... ok [INFO] [stdout] test solver::search::redistribute_search::redistribute_search_test::can_remove_jobs ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_use_exchange_swap_star::case_02 ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_04_preserved ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_02_preserved ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_use_exchange_swap_star::case_01 ... ok [INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_use_exchange_swap_star::case_03 ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_01_sequential ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_06_sequential ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_05_sequential ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_03_preserved ... ok [INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_handle_empty_problem ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_07_sequential ... ok [INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_create_ruin_cluster_with_default_params ... ok [INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_ruin_jobs::case_02 ... ok [INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_ruin_jobs::case_01 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_detect_limit_reached::case_01 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_detect_limit_reached::case_02 ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_08_preserved ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_01 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_02 ... ok [INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_09_preserved ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_03 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_detect_limit_reached::case_03 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_04 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_05 ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_01_one_route_left ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_04_fully_remove_by_hit ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_02_no_routes_left ... ok [INFO] [stdout] test solver::search::ruin::route_removal::route_removal_test::can_remove_worst_route ... ok [INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_03_partial_remove ... ok [INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_ruin_jobs::case_03 ... ok [INFO] [stdout] test solver::search::ruin::route_removal::route_removal_test::can_remove_parts_random_routes_from_context ... ok [INFO] [stdout] test solver::search::decompose_search::decompose_search_test::can_perform_search ... ok [INFO] [stdout] test solver::search::ruin::route_removal::route_removal_test::can_remove_whole_random_routes_from_context ... ok [INFO] [stdout] test solver::search::ruin::worst_jobs_removal::worst_jobs_removal_test::can_ruin_solution_with_matrix_routes::case_02 ... ok [INFO] [stdout] test solver::search::ruin::worst_jobs_removal::worst_jobs_removal_test::can_ruin_solution_with_matrix_routes::case_01 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::selections::can_use_stochastic_selection_mode::case_01 ... ok [INFO] [stdout] test construction::heuristics::selectors::selectors_test::selections::can_use_stochastic_selection_mode::case_02 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 604 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s [INFO] [stdout] [INFO] [stderr] Doc-tests vrp_core [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/clustering/vicinity/estimations.rs:99:17 [INFO] [stderr] | [INFO] [stderr] 99 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 99 - transport: &(dyn TransportCost), [INFO] [stderr] 99 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/clustering/vicinity/estimations.rs:124:17 [INFO] [stderr] | [INFO] [stderr] 124 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 124 - transport: &(dyn TransportCost), [INFO] [stderr] 124 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/clustering/vicinity/mod.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync); [INFO] [stderr] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/conditional_job.rs:67:26 [INFO] [stderr] | [INFO] [stderr] 67 | context_transition: &(dyn JobContextTransition), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 67 - context_transition: &(dyn JobContextTransition), [INFO] [stderr] 67 + context_transition: &dyn JobContextTransition, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 14 - activity: &(dyn ActivityCost), [INFO] [stderr] 14 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 15 - transport: &(dyn TransportCost), [INFO] [stderr] 15 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 26 - activity: &(dyn ActivityCost), [INFO] [stderr] 26 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:27:17 [INFO] [stderr] | [INFO] [stderr] 27 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 27 - transport: &(dyn TransportCost), [INFO] [stderr] 27 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/departure_time.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 36 - transport: &(dyn TransportCost), [INFO] [stderr] 36 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/multi_trip.rs:20:34 [INFO] [stderr] | [INFO] [stderr] 20 | fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 20 - fn get_constraint(&self) -> &(dyn FeatureConstraint); [INFO] [stderr] 20 + fn get_constraint(&self) -> &dyn FeatureConstraint; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 16 - activity: &(dyn ActivityCost), [INFO] [stderr] 16 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 17 - transport: &(dyn TransportCost), [INFO] [stderr] 17 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | activity: &(dyn ActivityCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 27 - activity: &(dyn ActivityCost), [INFO] [stderr] 27 + activity: &dyn ActivityCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 28 - transport: &(dyn TransportCost), [INFO] [stderr] 28 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:37:62 [INFO] [stderr] | [INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:37:94 [INFO] [stderr] | [INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:59:59 [INFO] [stderr] | [INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost, transport: &(dyn TransportCost)) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:59:91 [INFO] [stderr] | [INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) { [INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/schedule_update.rs:113:64 [INFO] [stderr] | [INFO] [stderr] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) { [INFO] [stderr] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/travel_info.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 10 - transport: &(dyn TransportCost), [INFO] [stderr] 10 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/travel_info.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 36 - transport: &(dyn TransportCost), [INFO] [stderr] 36 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/enablers/travel_info.rs:68:17 [INFO] [stderr] | [INFO] [stderr] 68 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 68 - transport: &(dyn TransportCost), [INFO] [stderr] 68 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/features/capacity.rs:138:34 [INFO] [stderr] | [INFO] [stderr] 138 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 138 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] 138 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/features/recharge.rs:184:34 [INFO] [stderr] | [INFO] [stderr] 184 | fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 184 - fn get_constraint(&self) -> &(dyn FeatureConstraint) { [INFO] [stderr] 184 + fn get_constraint(&self) -> &dyn FeatureConstraint { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/features/tour_order.rs:160:19 [INFO] [stderr] | [INFO] [stderr] 160 | check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 160 - check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option), [INFO] [stderr] 160 + check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/evaluators.rs:25:30 [INFO] [stderr] | [INFO] [stderr] 25 | pub result_selector: &'a (dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 25 - pub result_selector: &'a (dyn ResultSelector), [INFO] [stderr] 25 + pub result_selector: &'a dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/insertions.rs:264:24 [INFO] [stderr] | [INFO] [stderr] 264 | job_selector: &(dyn JobSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 264 - job_selector: &(dyn JobSelector), [INFO] [stderr] 264 + job_selector: &dyn JobSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/insertions.rs:265:26 [INFO] [stderr] | [INFO] [stderr] 265 | route_selector: &(dyn RouteSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 265 - route_selector: &(dyn RouteSelector), [INFO] [stderr] 265 + route_selector: &dyn RouteSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/insertions.rs:267:27 [INFO] [stderr] | [INFO] [stderr] 267 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 267 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 267 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:77:27 [INFO] [stderr] | [INFO] [stderr] 77 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 77 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 77 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:105:27 [INFO] [stderr] | [INFO] [stderr] 105 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 105 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 105 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:137:27 [INFO] [stderr] | [INFO] [stderr] 137 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 137 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 137 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/heuristics/selectors.rs:355:28 [INFO] [stderr] | [INFO] [stderr] 355 | pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 355 - pub fn pick(&self) -> &(dyn ResultSelector) { [INFO] [stderr] 355 + pub fn pick(&self) -> &dyn ResultSelector { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/construction/probing/repair_solution.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | factory: &(dyn Fn() -> InsertionContext), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 19 - factory: &(dyn Fn() -> InsertionContext), [INFO] [stderr] 19 + factory: &dyn Fn() -> InsertionContext, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/goal.rs:450:37 [INFO] [stderr] | [INFO] [stderr] 450 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 450 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] 450 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/goal.rs:474:37 [INFO] [stderr] | [INFO] [stderr] 474 | fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 474 - fn get_shuffled(&self, random: &(dyn Random)) -> Self { [INFO] [stderr] 474 + fn get_shuffled(&self, random: &dyn Random) -> Self { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:245:21 [INFO] [stderr] | [INFO] [stderr] 245 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 245 - transport: &(dyn TransportCost), [INFO] [stderr] 245 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:332:17 [INFO] [stderr] | [INFO] [stderr] 332 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 332 - transport: &(dyn TransportCost), [INFO] [stderr] 332 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:385:17 [INFO] [stderr] | [INFO] [stderr] 385 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 385 - transport: &(dyn TransportCost), [INFO] [stderr] 385 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:404:17 [INFO] [stderr] | [INFO] [stderr] 404 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 404 - transport: &(dyn TransportCost), [INFO] [stderr] 404 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/models/problem/jobs.rs:419:17 [INFO] [stderr] | [INFO] [stderr] 419 | transport: &(dyn TransportCost), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 419 - transport: &(dyn TransportCost), [INFO] [stderr] 419 + transport: &dyn TransportCost, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_inter_route.rs:180:23 [INFO] [stderr] | [INFO] [stderr] 180 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 180 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 180 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_swap_star.rs:79:71 [INFO] [stderr] | [INFO] [stderr] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector)); [INFO] [stderr] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_swap_star.rs:291:23 [INFO] [stderr] | [INFO] [stderr] 291 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 291 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 291 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/local/exchange_swap_star.rs:372:23 [INFO] [stderr] | [INFO] [stderr] 372 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 372 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 372 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/recreate/recreate_with_regret.rs:61:27 [INFO] [stderr] | [INFO] [stderr] 61 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 61 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 61 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | result_selector: &(dyn ResultSelector), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 59 - result_selector: &(dyn ResultSelector), [INFO] [stderr] 59 + result_selector: &dyn ResultSelector, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/ruin/route_removal.rs:140:14 [INFO] [stderr] | [INFO] [stderr] 140 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 140 - random: &(dyn Random), [INFO] [stderr] 140 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/removal.rs:82:18 [INFO] [stderr] | [INFO] [stderr] 82 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 82 - random: &(dyn Random), [INFO] [stderr] 82 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/removal.rs:97:92 [INFO] [stderr] | [INFO] [stderr] 97 | fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 97 - fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool { [INFO] [stderr] 97 + fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/removal.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 142 - random: &(dyn Random), [INFO] [stderr] 142 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:47:14 [INFO] [stderr] | [INFO] [stderr] 47 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 47 - random: &(dyn Random), [INFO] [stderr] 47 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:48:20 [INFO] [stderr] | [INFO] [stderr] 48 | route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 48 - route_filter: &(dyn Fn(&RouteContext) -> bool), [INFO] [stderr] 48 + route_filter: &dyn Fn(&RouteContext) -> bool, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:49:18 [INFO] [stderr] | [INFO] [stderr] 49 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 49 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] 49 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:79:14 [INFO] [stderr] | [INFO] [stderr] 79 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 79 - random: &(dyn Random), [INFO] [stderr] 79 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/selection.rs:80:18 [INFO] [stderr] | [INFO] [stderr] 80 | job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 80 - job_filter: &(dyn Fn(&Job) -> bool), [INFO] [stderr] 80 + job_filter: &dyn Fn(&Job) -> bool, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around type [INFO] [stderr] --> src/solver/search/utils/tabu_list.rs:80:14 [INFO] [stderr] | [INFO] [stderr] 80 | random: &(dyn Random), [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 80 - random: &(dyn Random), [INFO] [stderr] 80 + random: &dyn Random, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: 57 warnings emitted [INFO] [stderr] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/lib.rs - (line 78) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.23s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "b9cd1ba88d39ebb23696bbeebb7970191de897748fd9c9ec91ba95abdbb5aacb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b9cd1ba88d39ebb23696bbeebb7970191de897748fd9c9ec91ba95abdbb5aacb", kill_on_drop: false }` [INFO] [stdout] b9cd1ba88d39ebb23696bbeebb7970191de897748fd9c9ec91ba95abdbb5aacb