Skip to main content

google_maps_routeoptimization_v1/model/
debug.rs

1// Copyright 2026 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     https://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Code generated by sidekick. DO NOT EDIT.
16
17#[allow(unused_imports)]
18use super::*;
19
20impl std::fmt::Debug for super::Uri {
21    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22        let mut debug_struct = f.debug_struct("Uri");
23        debug_struct.field("uri", &self.uri);
24        if !self._unknown_fields.is_empty() {
25            debug_struct.field("_unknown_fields", &self._unknown_fields);
26        }
27        debug_struct.finish()
28    }
29}
30
31impl std::fmt::Debug for super::OptimizeToursUriRequest {
32    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
33        let mut debug_struct = f.debug_struct("OptimizeToursUriRequest");
34        debug_struct.field("parent", &self.parent);
35        debug_struct.field("input", &self.input);
36        debug_struct.field("output", &self.output);
37        if !self._unknown_fields.is_empty() {
38            debug_struct.field("_unknown_fields", &self._unknown_fields);
39        }
40        debug_struct.finish()
41    }
42}
43
44impl std::fmt::Debug for super::OptimizeToursUriResponse {
45    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
46        let mut debug_struct = f.debug_struct("OptimizeToursUriResponse");
47        debug_struct.field("output", &self.output);
48        if !self._unknown_fields.is_empty() {
49            debug_struct.field("_unknown_fields", &self._unknown_fields);
50        }
51        debug_struct.finish()
52    }
53}
54
55impl std::fmt::Debug for super::OptimizeToursUriMetadata {
56    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
57        let mut debug_struct = f.debug_struct("OptimizeToursUriMetadata");
58        if !self._unknown_fields.is_empty() {
59            debug_struct.field("_unknown_fields", &self._unknown_fields);
60        }
61        debug_struct.finish()
62    }
63}
64
65impl std::fmt::Debug for super::BatchOptimizeToursRequest {
66    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
67        let mut debug_struct = f.debug_struct("BatchOptimizeToursRequest");
68        debug_struct.field("parent", &self.parent);
69        debug_struct.field("model_configs", &self.model_configs);
70        if !self._unknown_fields.is_empty() {
71            debug_struct.field("_unknown_fields", &self._unknown_fields);
72        }
73        debug_struct.finish()
74    }
75}
76
77impl std::fmt::Debug for super::batch_optimize_tours_request::AsyncModelConfig {
78    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
79        let mut debug_struct = f.debug_struct("AsyncModelConfig");
80        debug_struct.field("display_name", &self.display_name);
81        debug_struct.field("input_config", &self.input_config);
82        debug_struct.field("output_config", &self.output_config);
83        if !self._unknown_fields.is_empty() {
84            debug_struct.field("_unknown_fields", &self._unknown_fields);
85        }
86        debug_struct.finish()
87    }
88}
89
90impl std::fmt::Debug for super::BatchOptimizeToursResponse {
91    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
92        let mut debug_struct = f.debug_struct("BatchOptimizeToursResponse");
93        if !self._unknown_fields.is_empty() {
94            debug_struct.field("_unknown_fields", &self._unknown_fields);
95        }
96        debug_struct.finish()
97    }
98}
99
100impl std::fmt::Debug for super::BatchOptimizeToursMetadata {
101    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
102        let mut debug_struct = f.debug_struct("BatchOptimizeToursMetadata");
103        if !self._unknown_fields.is_empty() {
104            debug_struct.field("_unknown_fields", &self._unknown_fields);
105        }
106        debug_struct.finish()
107    }
108}
109
110impl std::fmt::Debug for super::OptimizeToursLongRunningMetadata {
111    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
112        let mut debug_struct = f.debug_struct("OptimizeToursLongRunningMetadata");
113        if !self._unknown_fields.is_empty() {
114            debug_struct.field("_unknown_fields", &self._unknown_fields);
115        }
116        debug_struct.finish()
117    }
118}
119
120impl std::fmt::Debug for super::OptimizeToursRequest {
121    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
122        let mut debug_struct = f.debug_struct("OptimizeToursRequest");
123        debug_struct.field("parent", &self.parent);
124        debug_struct.field("timeout", &self.timeout);
125        debug_struct.field("model", &self.model);
126        debug_struct.field("solving_mode", &self.solving_mode);
127        debug_struct.field("search_mode", &self.search_mode);
128        debug_struct.field(
129            "injected_first_solution_routes",
130            &self.injected_first_solution_routes,
131        );
132        debug_struct.field(
133            "injected_solution_constraint",
134            &self.injected_solution_constraint,
135        );
136        debug_struct.field("refresh_details_routes", &self.refresh_details_routes);
137        debug_struct.field(
138            "interpret_injected_solutions_using_labels",
139            &self.interpret_injected_solutions_using_labels,
140        );
141        debug_struct.field("consider_road_traffic", &self.consider_road_traffic);
142        debug_struct.field("populate_polylines", &self.populate_polylines);
143        debug_struct.field(
144            "populate_transition_polylines",
145            &self.populate_transition_polylines,
146        );
147        debug_struct.field(
148            "allow_large_deadline_despite_interruption_risk",
149            &self.allow_large_deadline_despite_interruption_risk,
150        );
151        debug_struct.field("use_geodesic_distances", &self.use_geodesic_distances);
152        debug_struct.field(
153            "geodesic_meters_per_second",
154            &self.geodesic_meters_per_second,
155        );
156        debug_struct.field("max_validation_errors", &self.max_validation_errors);
157        debug_struct.field("label", &self.label);
158        if !self._unknown_fields.is_empty() {
159            debug_struct.field("_unknown_fields", &self._unknown_fields);
160        }
161        debug_struct.finish()
162    }
163}
164
165impl std::fmt::Debug for super::OptimizeToursResponse {
166    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
167        let mut debug_struct = f.debug_struct("OptimizeToursResponse");
168        debug_struct.field("routes", &self.routes);
169        debug_struct.field("request_label", &self.request_label);
170        debug_struct.field("skipped_shipments", &self.skipped_shipments);
171        debug_struct.field("validation_errors", &self.validation_errors);
172        debug_struct.field("processed_request", &self.processed_request);
173        debug_struct.field("metrics", &self.metrics);
174        if !self._unknown_fields.is_empty() {
175            debug_struct.field("_unknown_fields", &self._unknown_fields);
176        }
177        debug_struct.finish()
178    }
179}
180
181impl std::fmt::Debug for super::optimize_tours_response::Metrics {
182    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
183        let mut debug_struct = f.debug_struct("Metrics");
184        debug_struct.field("aggregated_route_metrics", &self.aggregated_route_metrics);
185        debug_struct.field(
186            "skipped_mandatory_shipment_count",
187            &self.skipped_mandatory_shipment_count,
188        );
189        debug_struct.field("used_vehicle_count", &self.used_vehicle_count);
190        debug_struct.field(
191            "earliest_vehicle_start_time",
192            &self.earliest_vehicle_start_time,
193        );
194        debug_struct.field("latest_vehicle_end_time", &self.latest_vehicle_end_time);
195        debug_struct.field("costs", &self.costs);
196        debug_struct.field("total_cost", &self.total_cost);
197        if !self._unknown_fields.is_empty() {
198            debug_struct.field("_unknown_fields", &self._unknown_fields);
199        }
200        debug_struct.finish()
201    }
202}
203
204impl std::fmt::Debug for super::ShipmentModel {
205    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
206        let mut debug_struct = f.debug_struct("ShipmentModel");
207        debug_struct.field("shipments", &self.shipments);
208        debug_struct.field("vehicles", &self.vehicles);
209        debug_struct.field("objectives", &self.objectives);
210        debug_struct.field("max_active_vehicles", &self.max_active_vehicles);
211        debug_struct.field("global_start_time", &self.global_start_time);
212        debug_struct.field("global_end_time", &self.global_end_time);
213        debug_struct.field(
214            "global_duration_cost_per_hour",
215            &self.global_duration_cost_per_hour,
216        );
217        debug_struct.field(
218            "duration_distance_matrices",
219            &self.duration_distance_matrices,
220        );
221        debug_struct.field(
222            "duration_distance_matrix_src_tags",
223            &self.duration_distance_matrix_src_tags,
224        );
225        debug_struct.field(
226            "duration_distance_matrix_dst_tags",
227            &self.duration_distance_matrix_dst_tags,
228        );
229        debug_struct.field("transition_attributes", &self.transition_attributes);
230        debug_struct.field(
231            "shipment_type_incompatibilities",
232            &self.shipment_type_incompatibilities,
233        );
234        debug_struct.field(
235            "shipment_type_requirements",
236            &self.shipment_type_requirements,
237        );
238        debug_struct.field("precedence_rules", &self.precedence_rules);
239        if !self._unknown_fields.is_empty() {
240            debug_struct.field("_unknown_fields", &self._unknown_fields);
241        }
242        debug_struct.finish()
243    }
244}
245
246impl std::fmt::Debug for super::shipment_model::Objective {
247    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
248        let mut debug_struct = f.debug_struct("Objective");
249        debug_struct.field("r#type", &self.r#type);
250        debug_struct.field("weight", &self.weight);
251        if !self._unknown_fields.is_empty() {
252            debug_struct.field("_unknown_fields", &self._unknown_fields);
253        }
254        debug_struct.finish()
255    }
256}
257
258impl std::fmt::Debug for super::shipment_model::DurationDistanceMatrix {
259    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
260        let mut debug_struct = f.debug_struct("DurationDistanceMatrix");
261        debug_struct.field("rows", &self.rows);
262        debug_struct.field("vehicle_start_tag", &self.vehicle_start_tag);
263        if !self._unknown_fields.is_empty() {
264            debug_struct.field("_unknown_fields", &self._unknown_fields);
265        }
266        debug_struct.finish()
267    }
268}
269
270impl std::fmt::Debug for super::shipment_model::duration_distance_matrix::Row {
271    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
272        let mut debug_struct = f.debug_struct("Row");
273        debug_struct.field("durations", &self.durations);
274        debug_struct.field("meters", &self.meters);
275        if !self._unknown_fields.is_empty() {
276            debug_struct.field("_unknown_fields", &self._unknown_fields);
277        }
278        debug_struct.finish()
279    }
280}
281
282impl std::fmt::Debug for super::shipment_model::PrecedenceRule {
283    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
284        let mut debug_struct = f.debug_struct("PrecedenceRule");
285        debug_struct.field("first_index", &self.first_index);
286        debug_struct.field("first_is_delivery", &self.first_is_delivery);
287        debug_struct.field("second_index", &self.second_index);
288        debug_struct.field("second_is_delivery", &self.second_is_delivery);
289        debug_struct.field("offset_duration", &self.offset_duration);
290        if !self._unknown_fields.is_empty() {
291            debug_struct.field("_unknown_fields", &self._unknown_fields);
292        }
293        debug_struct.finish()
294    }
295}
296
297impl std::fmt::Debug for super::Shipment {
298    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
299        let mut debug_struct = f.debug_struct("Shipment");
300        debug_struct.field("display_name", &self.display_name);
301        debug_struct.field("pickups", &self.pickups);
302        debug_struct.field("deliveries", &self.deliveries);
303        debug_struct.field("load_demands", &self.load_demands);
304        debug_struct.field("penalty_cost", &self.penalty_cost);
305        debug_struct.field("allowed_vehicle_indices", &self.allowed_vehicle_indices);
306        debug_struct.field("costs_per_vehicle", &self.costs_per_vehicle);
307        debug_struct.field("costs_per_vehicle_indices", &self.costs_per_vehicle_indices);
308        debug_struct.field(
309            "pickup_to_delivery_relative_detour_limit",
310            &self.pickup_to_delivery_relative_detour_limit,
311        );
312        debug_struct.field(
313            "pickup_to_delivery_absolute_detour_limit",
314            &self.pickup_to_delivery_absolute_detour_limit,
315        );
316        debug_struct.field(
317            "pickup_to_delivery_time_limit",
318            &self.pickup_to_delivery_time_limit,
319        );
320        debug_struct.field("shipment_type", &self.shipment_type);
321        debug_struct.field("label", &self.label);
322        debug_struct.field("ignore", &self.ignore);
323        if !self._unknown_fields.is_empty() {
324            debug_struct.field("_unknown_fields", &self._unknown_fields);
325        }
326        debug_struct.finish()
327    }
328}
329
330impl std::fmt::Debug for super::shipment::VisitRequest {
331    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
332        let mut debug_struct = f.debug_struct("VisitRequest");
333        debug_struct.field("arrival_location", &self.arrival_location);
334        debug_struct.field("arrival_waypoint", &self.arrival_waypoint);
335        debug_struct.field("departure_location", &self.departure_location);
336        debug_struct.field("departure_waypoint", &self.departure_waypoint);
337        debug_struct.field("tags", &self.tags);
338        debug_struct.field("time_windows", &self.time_windows);
339        debug_struct.field("duration", &self.duration);
340        debug_struct.field("cost", &self.cost);
341        debug_struct.field("load_demands", &self.load_demands);
342        debug_struct.field("visit_types", &self.visit_types);
343        debug_struct.field("label", &self.label);
344        debug_struct.field("avoid_u_turns", &self.avoid_u_turns);
345        if !self._unknown_fields.is_empty() {
346            debug_struct.field("_unknown_fields", &self._unknown_fields);
347        }
348        debug_struct.finish()
349    }
350}
351
352impl std::fmt::Debug for super::shipment::Load {
353    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
354        let mut debug_struct = f.debug_struct("Load");
355        debug_struct.field("amount", &self.amount);
356        if !self._unknown_fields.is_empty() {
357            debug_struct.field("_unknown_fields", &self._unknown_fields);
358        }
359        debug_struct.finish()
360    }
361}
362
363impl std::fmt::Debug for super::ShipmentTypeIncompatibility {
364    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
365        let mut debug_struct = f.debug_struct("ShipmentTypeIncompatibility");
366        debug_struct.field("types", &self.types);
367        debug_struct.field("incompatibility_mode", &self.incompatibility_mode);
368        if !self._unknown_fields.is_empty() {
369            debug_struct.field("_unknown_fields", &self._unknown_fields);
370        }
371        debug_struct.finish()
372    }
373}
374
375impl std::fmt::Debug for super::ShipmentTypeRequirement {
376    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
377        let mut debug_struct = f.debug_struct("ShipmentTypeRequirement");
378        debug_struct.field(
379            "required_shipment_type_alternatives",
380            &self.required_shipment_type_alternatives,
381        );
382        debug_struct.field("dependent_shipment_types", &self.dependent_shipment_types);
383        debug_struct.field("requirement_mode", &self.requirement_mode);
384        if !self._unknown_fields.is_empty() {
385            debug_struct.field("_unknown_fields", &self._unknown_fields);
386        }
387        debug_struct.finish()
388    }
389}
390
391impl std::fmt::Debug for super::RouteModifiers {
392    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
393        let mut debug_struct = f.debug_struct("RouteModifiers");
394        debug_struct.field("avoid_tolls", &self.avoid_tolls);
395        debug_struct.field("avoid_highways", &self.avoid_highways);
396        debug_struct.field("avoid_ferries", &self.avoid_ferries);
397        debug_struct.field("avoid_indoor", &self.avoid_indoor);
398        if !self._unknown_fields.is_empty() {
399            debug_struct.field("_unknown_fields", &self._unknown_fields);
400        }
401        debug_struct.finish()
402    }
403}
404
405impl std::fmt::Debug for super::Vehicle {
406    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
407        let mut debug_struct = f.debug_struct("Vehicle");
408        debug_struct.field("display_name", &self.display_name);
409        debug_struct.field("travel_mode", &self.travel_mode);
410        debug_struct.field("route_modifiers", &self.route_modifiers);
411        debug_struct.field("start_location", &self.start_location);
412        debug_struct.field("start_waypoint", &self.start_waypoint);
413        debug_struct.field("end_location", &self.end_location);
414        debug_struct.field("end_waypoint", &self.end_waypoint);
415        debug_struct.field("start_tags", &self.start_tags);
416        debug_struct.field("end_tags", &self.end_tags);
417        debug_struct.field("start_time_windows", &self.start_time_windows);
418        debug_struct.field("end_time_windows", &self.end_time_windows);
419        debug_struct.field("travel_duration_multiple", &self.travel_duration_multiple);
420        debug_struct.field("unloading_policy", &self.unloading_policy);
421        debug_struct.field("load_limits", &self.load_limits);
422        debug_struct.field("cost_per_hour", &self.cost_per_hour);
423        debug_struct.field("cost_per_traveled_hour", &self.cost_per_traveled_hour);
424        debug_struct.field("cost_per_kilometer", &self.cost_per_kilometer);
425        debug_struct.field("fixed_cost", &self.fixed_cost);
426        debug_struct.field("used_if_route_is_empty", &self.used_if_route_is_empty);
427        debug_struct.field("route_duration_limit", &self.route_duration_limit);
428        debug_struct.field("travel_duration_limit", &self.travel_duration_limit);
429        debug_struct.field("route_distance_limit", &self.route_distance_limit);
430        debug_struct.field(
431            "extra_visit_duration_for_visit_type",
432            &self.extra_visit_duration_for_visit_type,
433        );
434        debug_struct.field("break_rule", &self.break_rule);
435        debug_struct.field("label", &self.label);
436        debug_struct.field("ignore", &self.ignore);
437        if !self._unknown_fields.is_empty() {
438            debug_struct.field("_unknown_fields", &self._unknown_fields);
439        }
440        debug_struct.finish()
441    }
442}
443
444impl std::fmt::Debug for super::vehicle::LoadLimit {
445    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
446        let mut debug_struct = f.debug_struct("LoadLimit");
447        debug_struct.field("max_load", &self.max_load);
448        debug_struct.field("soft_max_load", &self.soft_max_load);
449        debug_struct.field(
450            "cost_per_unit_above_soft_max",
451            &self.cost_per_unit_above_soft_max,
452        );
453        debug_struct.field("start_load_interval", &self.start_load_interval);
454        debug_struct.field("end_load_interval", &self.end_load_interval);
455        debug_struct.field("cost_per_kilometer", &self.cost_per_kilometer);
456        debug_struct.field("cost_per_traveled_hour", &self.cost_per_traveled_hour);
457        if !self._unknown_fields.is_empty() {
458            debug_struct.field("_unknown_fields", &self._unknown_fields);
459        }
460        debug_struct.finish()
461    }
462}
463
464impl std::fmt::Debug for super::vehicle::load_limit::Interval {
465    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
466        let mut debug_struct = f.debug_struct("Interval");
467        debug_struct.field("min", &self.min);
468        debug_struct.field("max", &self.max);
469        if !self._unknown_fields.is_empty() {
470            debug_struct.field("_unknown_fields", &self._unknown_fields);
471        }
472        debug_struct.finish()
473    }
474}
475
476impl std::fmt::Debug for super::vehicle::load_limit::LoadCost {
477    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
478        let mut debug_struct = f.debug_struct("LoadCost");
479        debug_struct.field("load_threshold", &self.load_threshold);
480        debug_struct.field(
481            "cost_per_unit_below_threshold",
482            &self.cost_per_unit_below_threshold,
483        );
484        debug_struct.field(
485            "cost_per_unit_above_threshold",
486            &self.cost_per_unit_above_threshold,
487        );
488        if !self._unknown_fields.is_empty() {
489            debug_struct.field("_unknown_fields", &self._unknown_fields);
490        }
491        debug_struct.finish()
492    }
493}
494
495impl std::fmt::Debug for super::vehicle::DurationLimit {
496    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
497        let mut debug_struct = f.debug_struct("DurationLimit");
498        debug_struct.field("max_duration", &self.max_duration);
499        debug_struct.field("soft_max_duration", &self.soft_max_duration);
500        debug_struct.field(
501            "cost_per_hour_after_soft_max",
502            &self.cost_per_hour_after_soft_max,
503        );
504        debug_struct.field(
505            "quadratic_soft_max_duration",
506            &self.quadratic_soft_max_duration,
507        );
508        debug_struct.field(
509            "cost_per_square_hour_after_quadratic_soft_max",
510            &self.cost_per_square_hour_after_quadratic_soft_max,
511        );
512        if !self._unknown_fields.is_empty() {
513            debug_struct.field("_unknown_fields", &self._unknown_fields);
514        }
515        debug_struct.finish()
516    }
517}
518
519impl std::fmt::Debug for super::TimeWindow {
520    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
521        let mut debug_struct = f.debug_struct("TimeWindow");
522        debug_struct.field("start_time", &self.start_time);
523        debug_struct.field("end_time", &self.end_time);
524        debug_struct.field("soft_start_time", &self.soft_start_time);
525        debug_struct.field("soft_end_time", &self.soft_end_time);
526        debug_struct.field(
527            "cost_per_hour_before_soft_start_time",
528            &self.cost_per_hour_before_soft_start_time,
529        );
530        debug_struct.field(
531            "cost_per_hour_after_soft_end_time",
532            &self.cost_per_hour_after_soft_end_time,
533        );
534        if !self._unknown_fields.is_empty() {
535            debug_struct.field("_unknown_fields", &self._unknown_fields);
536        }
537        debug_struct.finish()
538    }
539}
540
541impl std::fmt::Debug for super::DistanceLimit {
542    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
543        let mut debug_struct = f.debug_struct("DistanceLimit");
544        debug_struct.field("max_meters", &self.max_meters);
545        debug_struct.field("soft_max_meters", &self.soft_max_meters);
546        debug_struct.field(
547            "cost_per_kilometer_below_soft_max",
548            &self.cost_per_kilometer_below_soft_max,
549        );
550        debug_struct.field(
551            "cost_per_kilometer_above_soft_max",
552            &self.cost_per_kilometer_above_soft_max,
553        );
554        if !self._unknown_fields.is_empty() {
555            debug_struct.field("_unknown_fields", &self._unknown_fields);
556        }
557        debug_struct.finish()
558    }
559}
560
561impl std::fmt::Debug for super::TransitionAttributes {
562    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
563        let mut debug_struct = f.debug_struct("TransitionAttributes");
564        debug_struct.field("src_tag", &self.src_tag);
565        debug_struct.field("excluded_src_tag", &self.excluded_src_tag);
566        debug_struct.field("dst_tag", &self.dst_tag);
567        debug_struct.field("excluded_dst_tag", &self.excluded_dst_tag);
568        debug_struct.field("cost", &self.cost);
569        debug_struct.field("cost_per_kilometer", &self.cost_per_kilometer);
570        debug_struct.field("distance_limit", &self.distance_limit);
571        debug_struct.field("delay", &self.delay);
572        if !self._unknown_fields.is_empty() {
573            debug_struct.field("_unknown_fields", &self._unknown_fields);
574        }
575        debug_struct.finish()
576    }
577}
578
579impl std::fmt::Debug for super::Waypoint {
580    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
581        let mut debug_struct = f.debug_struct("Waypoint");
582        debug_struct.field("side_of_road", &self.side_of_road);
583        debug_struct.field("vehicle_stopover", &self.vehicle_stopover);
584        debug_struct.field("location_type", &self.location_type);
585        if !self._unknown_fields.is_empty() {
586            debug_struct.field("_unknown_fields", &self._unknown_fields);
587        }
588        debug_struct.finish()
589    }
590}
591
592impl std::fmt::Debug for super::Location {
593    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
594        let mut debug_struct = f.debug_struct("Location");
595        debug_struct.field("lat_lng", &self.lat_lng);
596        debug_struct.field("heading", &self.heading);
597        if !self._unknown_fields.is_empty() {
598            debug_struct.field("_unknown_fields", &self._unknown_fields);
599        }
600        debug_struct.finish()
601    }
602}
603
604impl std::fmt::Debug for super::BreakRule {
605    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
606        let mut debug_struct = f.debug_struct("BreakRule");
607        debug_struct.field("break_requests", &self.break_requests);
608        debug_struct.field("frequency_constraints", &self.frequency_constraints);
609        if !self._unknown_fields.is_empty() {
610            debug_struct.field("_unknown_fields", &self._unknown_fields);
611        }
612        debug_struct.finish()
613    }
614}
615
616impl std::fmt::Debug for super::break_rule::BreakRequest {
617    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
618        let mut debug_struct = f.debug_struct("BreakRequest");
619        debug_struct.field("earliest_start_time", &self.earliest_start_time);
620        debug_struct.field("latest_start_time", &self.latest_start_time);
621        debug_struct.field("min_duration", &self.min_duration);
622        if !self._unknown_fields.is_empty() {
623            debug_struct.field("_unknown_fields", &self._unknown_fields);
624        }
625        debug_struct.finish()
626    }
627}
628
629impl std::fmt::Debug for super::break_rule::FrequencyConstraint {
630    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
631        let mut debug_struct = f.debug_struct("FrequencyConstraint");
632        debug_struct.field("min_break_duration", &self.min_break_duration);
633        debug_struct.field("max_inter_break_duration", &self.max_inter_break_duration);
634        if !self._unknown_fields.is_empty() {
635            debug_struct.field("_unknown_fields", &self._unknown_fields);
636        }
637        debug_struct.finish()
638    }
639}
640
641impl std::fmt::Debug for super::ShipmentRoute {
642    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
643        let mut debug_struct = f.debug_struct("ShipmentRoute");
644        debug_struct.field("vehicle_index", &self.vehicle_index);
645        debug_struct.field("vehicle_label", &self.vehicle_label);
646        debug_struct.field("vehicle_start_time", &self.vehicle_start_time);
647        debug_struct.field("vehicle_end_time", &self.vehicle_end_time);
648        debug_struct.field("visits", &self.visits);
649        debug_struct.field("transitions", &self.transitions);
650        debug_struct.field(
651            "has_traffic_infeasibilities",
652            &self.has_traffic_infeasibilities,
653        );
654        debug_struct.field("route_polyline", &self.route_polyline);
655        debug_struct.field("breaks", &self.breaks);
656        debug_struct.field("metrics", &self.metrics);
657        debug_struct.field("vehicle_fullness", &self.vehicle_fullness);
658        debug_struct.field("route_costs", &self.route_costs);
659        debug_struct.field("route_total_cost", &self.route_total_cost);
660        if !self._unknown_fields.is_empty() {
661            debug_struct.field("_unknown_fields", &self._unknown_fields);
662        }
663        debug_struct.finish()
664    }
665}
666
667impl std::fmt::Debug for super::shipment_route::Visit {
668    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
669        let mut debug_struct = f.debug_struct("Visit");
670        debug_struct.field("shipment_index", &self.shipment_index);
671        debug_struct.field("is_pickup", &self.is_pickup);
672        debug_struct.field("visit_request_index", &self.visit_request_index);
673        debug_struct.field("start_time", &self.start_time);
674        debug_struct.field("load_demands", &self.load_demands);
675        debug_struct.field("detour", &self.detour);
676        debug_struct.field("shipment_label", &self.shipment_label);
677        debug_struct.field("visit_label", &self.visit_label);
678        debug_struct.field(
679            "injected_solution_location_token",
680            &self.injected_solution_location_token,
681        );
682        if !self._unknown_fields.is_empty() {
683            debug_struct.field("_unknown_fields", &self._unknown_fields);
684        }
685        debug_struct.finish()
686    }
687}
688
689impl std::fmt::Debug for super::shipment_route::Transition {
690    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
691        let mut debug_struct = f.debug_struct("Transition");
692        debug_struct.field("travel_duration", &self.travel_duration);
693        debug_struct.field("travel_distance_meters", &self.travel_distance_meters);
694        debug_struct.field("traffic_info_unavailable", &self.traffic_info_unavailable);
695        debug_struct.field("delay_duration", &self.delay_duration);
696        debug_struct.field("break_duration", &self.break_duration);
697        debug_struct.field("wait_duration", &self.wait_duration);
698        debug_struct.field("total_duration", &self.total_duration);
699        debug_struct.field("start_time", &self.start_time);
700        debug_struct.field("route_polyline", &self.route_polyline);
701        debug_struct.field("route_token", &self.route_token);
702        debug_struct.field("vehicle_loads", &self.vehicle_loads);
703        if !self._unknown_fields.is_empty() {
704            debug_struct.field("_unknown_fields", &self._unknown_fields);
705        }
706        debug_struct.finish()
707    }
708}
709
710impl std::fmt::Debug for super::shipment_route::VehicleLoad {
711    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
712        let mut debug_struct = f.debug_struct("VehicleLoad");
713        debug_struct.field("amount", &self.amount);
714        if !self._unknown_fields.is_empty() {
715            debug_struct.field("_unknown_fields", &self._unknown_fields);
716        }
717        debug_struct.finish()
718    }
719}
720
721impl std::fmt::Debug for super::shipment_route::EncodedPolyline {
722    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
723        let mut debug_struct = f.debug_struct("EncodedPolyline");
724        debug_struct.field("points", &self.points);
725        if !self._unknown_fields.is_empty() {
726            debug_struct.field("_unknown_fields", &self._unknown_fields);
727        }
728        debug_struct.finish()
729    }
730}
731
732impl std::fmt::Debug for super::shipment_route::Break {
733    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
734        let mut debug_struct = f.debug_struct("Break");
735        debug_struct.field("start_time", &self.start_time);
736        debug_struct.field("duration", &self.duration);
737        if !self._unknown_fields.is_empty() {
738            debug_struct.field("_unknown_fields", &self._unknown_fields);
739        }
740        debug_struct.finish()
741    }
742}
743
744impl std::fmt::Debug for super::SkippedShipment {
745    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
746        let mut debug_struct = f.debug_struct("SkippedShipment");
747        debug_struct.field("index", &self.index);
748        debug_struct.field("label", &self.label);
749        debug_struct.field("penalty_cost", &self.penalty_cost);
750        debug_struct.field(
751            "estimated_incompatible_vehicle_ratio",
752            &self.estimated_incompatible_vehicle_ratio,
753        );
754        debug_struct.field("reasons", &self.reasons);
755        if !self._unknown_fields.is_empty() {
756            debug_struct.field("_unknown_fields", &self._unknown_fields);
757        }
758        debug_struct.finish()
759    }
760}
761
762impl std::fmt::Debug for super::skipped_shipment::Reason {
763    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
764        let mut debug_struct = f.debug_struct("Reason");
765        debug_struct.field("code", &self.code);
766        debug_struct.field("example_vehicle_index", &self.example_vehicle_index);
767        debug_struct.field("example_vehicle_indices", &self.example_vehicle_indices);
768        debug_struct.field(
769            "example_exceeded_capacity_type",
770            &self.example_exceeded_capacity_type,
771        );
772        if !self._unknown_fields.is_empty() {
773            debug_struct.field("_unknown_fields", &self._unknown_fields);
774        }
775        debug_struct.finish()
776    }
777}
778
779impl std::fmt::Debug for super::AggregatedMetrics {
780    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
781        let mut debug_struct = f.debug_struct("AggregatedMetrics");
782        debug_struct.field("performed_shipment_count", &self.performed_shipment_count);
783        debug_struct.field(
784            "performed_mandatory_shipment_count",
785            &self.performed_mandatory_shipment_count,
786        );
787        debug_struct.field(
788            "performed_shipment_penalty_cost_sum",
789            &self.performed_shipment_penalty_cost_sum,
790        );
791        debug_struct.field("travel_duration", &self.travel_duration);
792        debug_struct.field("wait_duration", &self.wait_duration);
793        debug_struct.field("delay_duration", &self.delay_duration);
794        debug_struct.field("break_duration", &self.break_duration);
795        debug_struct.field("visit_duration", &self.visit_duration);
796        debug_struct.field("total_duration", &self.total_duration);
797        debug_struct.field("travel_distance_meters", &self.travel_distance_meters);
798        debug_struct.field("max_loads", &self.max_loads);
799        if !self._unknown_fields.is_empty() {
800            debug_struct.field("_unknown_fields", &self._unknown_fields);
801        }
802        debug_struct.finish()
803    }
804}
805
806impl std::fmt::Debug for super::VehicleFullness {
807    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
808        let mut debug_struct = f.debug_struct("VehicleFullness");
809        debug_struct.field("max_fullness", &self.max_fullness);
810        debug_struct.field("distance", &self.distance);
811        debug_struct.field("travel_duration", &self.travel_duration);
812        debug_struct.field("active_duration", &self.active_duration);
813        debug_struct.field("max_load", &self.max_load);
814        debug_struct.field("active_span", &self.active_span);
815        if !self._unknown_fields.is_empty() {
816            debug_struct.field("_unknown_fields", &self._unknown_fields);
817        }
818        debug_struct.finish()
819    }
820}
821
822impl std::fmt::Debug for super::InjectedSolutionConstraint {
823    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
824        let mut debug_struct = f.debug_struct("InjectedSolutionConstraint");
825        debug_struct.field("routes", &self.routes);
826        debug_struct.field("skipped_shipments", &self.skipped_shipments);
827        debug_struct.field("constraint_relaxations", &self.constraint_relaxations);
828        if !self._unknown_fields.is_empty() {
829            debug_struct.field("_unknown_fields", &self._unknown_fields);
830        }
831        debug_struct.finish()
832    }
833}
834
835impl std::fmt::Debug for super::injected_solution_constraint::ConstraintRelaxation {
836    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
837        let mut debug_struct = f.debug_struct("ConstraintRelaxation");
838        debug_struct.field("relaxations", &self.relaxations);
839        debug_struct.field("vehicle_indices", &self.vehicle_indices);
840        if !self._unknown_fields.is_empty() {
841            debug_struct.field("_unknown_fields", &self._unknown_fields);
842        }
843        debug_struct.finish()
844    }
845}
846
847impl std::fmt::Debug for super::injected_solution_constraint::constraint_relaxation::Relaxation {
848    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
849        let mut debug_struct = f.debug_struct("Relaxation");
850        debug_struct.field("level", &self.level);
851        debug_struct.field("threshold_time", &self.threshold_time);
852        debug_struct.field("threshold_visit_count", &self.threshold_visit_count);
853        if !self._unknown_fields.is_empty() {
854            debug_struct.field("_unknown_fields", &self._unknown_fields);
855        }
856        debug_struct.finish()
857    }
858}
859
860impl std::fmt::Debug for super::OptimizeToursValidationError {
861    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
862        let mut debug_struct = f.debug_struct("OptimizeToursValidationError");
863        debug_struct.field("code", &self.code);
864        debug_struct.field("display_name", &self.display_name);
865        debug_struct.field("fields", &self.fields);
866        debug_struct.field("error_message", &self.error_message);
867        debug_struct.field("offending_values", &self.offending_values);
868        if !self._unknown_fields.is_empty() {
869            debug_struct.field("_unknown_fields", &self._unknown_fields);
870        }
871        debug_struct.finish()
872    }
873}
874
875impl std::fmt::Debug for super::optimize_tours_validation_error::FieldReference {
876    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
877        let mut debug_struct = f.debug_struct("FieldReference");
878        debug_struct.field("name", &self.name);
879        debug_struct.field("sub_field", &self.sub_field);
880        debug_struct.field("index_or_key", &self.index_or_key);
881        if !self._unknown_fields.is_empty() {
882            debug_struct.field("_unknown_fields", &self._unknown_fields);
883        }
884        debug_struct.finish()
885    }
886}
887
888impl std::fmt::Debug for super::InputConfig {
889    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
890        let mut debug_struct = f.debug_struct("InputConfig");
891        debug_struct.field("data_format", &self.data_format);
892        debug_struct.field("source", &self.source);
893        if !self._unknown_fields.is_empty() {
894            debug_struct.field("_unknown_fields", &self._unknown_fields);
895        }
896        debug_struct.finish()
897    }
898}
899
900impl std::fmt::Debug for super::OutputConfig {
901    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
902        let mut debug_struct = f.debug_struct("OutputConfig");
903        debug_struct.field("data_format", &self.data_format);
904        debug_struct.field("destination", &self.destination);
905        if !self._unknown_fields.is_empty() {
906            debug_struct.field("_unknown_fields", &self._unknown_fields);
907        }
908        debug_struct.finish()
909    }
910}
911
912impl std::fmt::Debug for super::GcsSource {
913    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
914        let mut debug_struct = f.debug_struct("GcsSource");
915        debug_struct.field("uri", &self.uri);
916        if !self._unknown_fields.is_empty() {
917            debug_struct.field("_unknown_fields", &self._unknown_fields);
918        }
919        debug_struct.finish()
920    }
921}
922
923impl std::fmt::Debug for super::GcsDestination {
924    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
925        let mut debug_struct = f.debug_struct("GcsDestination");
926        debug_struct.field("uri", &self.uri);
927        if !self._unknown_fields.is_empty() {
928            debug_struct.field("_unknown_fields", &self._unknown_fields);
929        }
930        debug_struct.finish()
931    }
932}