1#[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}