google_cloud_optimization_v1/model/
debug.rs

1// Copyright 2025 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::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}