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