google_cloud_websecurityscanner_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::CrawledUrl {
21    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22        let mut debug_struct = f.debug_struct("CrawledUrl");
23        debug_struct.field("http_method", &self.http_method);
24        debug_struct.field("url", &self.url);
25        debug_struct.field("body", &self.body);
26        if !self._unknown_fields.is_empty() {
27            debug_struct.field("_unknown_fields", &self._unknown_fields);
28        }
29        debug_struct.finish()
30    }
31}
32
33impl std::fmt::Debug for super::Finding {
34    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
35        let mut debug_struct = f.debug_struct("Finding");
36        debug_struct.field("name", &self.name);
37        debug_struct.field("finding_type", &self.finding_type);
38        debug_struct.field("severity", &self.severity);
39        debug_struct.field("http_method", &self.http_method);
40        debug_struct.field("fuzzed_url", &self.fuzzed_url);
41        debug_struct.field("body", &self.body);
42        debug_struct.field("description", &self.description);
43        debug_struct.field("reproduction_url", &self.reproduction_url);
44        debug_struct.field("frame_url", &self.frame_url);
45        debug_struct.field("final_url", &self.final_url);
46        debug_struct.field("tracking_id", &self.tracking_id);
47        debug_struct.field("form", &self.form);
48        debug_struct.field("outdated_library", &self.outdated_library);
49        debug_struct.field("violating_resource", &self.violating_resource);
50        debug_struct.field("vulnerable_headers", &self.vulnerable_headers);
51        debug_struct.field("vulnerable_parameters", &self.vulnerable_parameters);
52        debug_struct.field("xss", &self.xss);
53        debug_struct.field("xxe", &self.xxe);
54        if !self._unknown_fields.is_empty() {
55            debug_struct.field("_unknown_fields", &self._unknown_fields);
56        }
57        debug_struct.finish()
58    }
59}
60
61impl std::fmt::Debug for super::Form {
62    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
63        let mut debug_struct = f.debug_struct("Form");
64        debug_struct.field("action_uri", &self.action_uri);
65        debug_struct.field("fields", &self.fields);
66        if !self._unknown_fields.is_empty() {
67            debug_struct.field("_unknown_fields", &self._unknown_fields);
68        }
69        debug_struct.finish()
70    }
71}
72
73impl std::fmt::Debug for super::OutdatedLibrary {
74    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
75        let mut debug_struct = f.debug_struct("OutdatedLibrary");
76        debug_struct.field("library_name", &self.library_name);
77        debug_struct.field("version", &self.version);
78        debug_struct.field("learn_more_urls", &self.learn_more_urls);
79        if !self._unknown_fields.is_empty() {
80            debug_struct.field("_unknown_fields", &self._unknown_fields);
81        }
82        debug_struct.finish()
83    }
84}
85
86impl std::fmt::Debug for super::ViolatingResource {
87    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
88        let mut debug_struct = f.debug_struct("ViolatingResource");
89        debug_struct.field("content_type", &self.content_type);
90        debug_struct.field("resource_url", &self.resource_url);
91        if !self._unknown_fields.is_empty() {
92            debug_struct.field("_unknown_fields", &self._unknown_fields);
93        }
94        debug_struct.finish()
95    }
96}
97
98impl std::fmt::Debug for super::VulnerableParameters {
99    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
100        let mut debug_struct = f.debug_struct("VulnerableParameters");
101        debug_struct.field("parameter_names", &self.parameter_names);
102        if !self._unknown_fields.is_empty() {
103            debug_struct.field("_unknown_fields", &self._unknown_fields);
104        }
105        debug_struct.finish()
106    }
107}
108
109impl std::fmt::Debug for super::VulnerableHeaders {
110    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
111        let mut debug_struct = f.debug_struct("VulnerableHeaders");
112        debug_struct.field("headers", &self.headers);
113        debug_struct.field("missing_headers", &self.missing_headers);
114        if !self._unknown_fields.is_empty() {
115            debug_struct.field("_unknown_fields", &self._unknown_fields);
116        }
117        debug_struct.finish()
118    }
119}
120
121impl std::fmt::Debug for super::vulnerable_headers::Header {
122    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
123        let mut debug_struct = f.debug_struct("Header");
124        debug_struct.field("name", &self.name);
125        debug_struct.field("value", &self.value);
126        if !self._unknown_fields.is_empty() {
127            debug_struct.field("_unknown_fields", &self._unknown_fields);
128        }
129        debug_struct.finish()
130    }
131}
132
133impl std::fmt::Debug for super::Xss {
134    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
135        let mut debug_struct = f.debug_struct("Xss");
136        debug_struct.field("stack_traces", &self.stack_traces);
137        debug_struct.field("error_message", &self.error_message);
138        debug_struct.field("attack_vector", &self.attack_vector);
139        debug_struct.field("stored_xss_seeding_url", &self.stored_xss_seeding_url);
140        if !self._unknown_fields.is_empty() {
141            debug_struct.field("_unknown_fields", &self._unknown_fields);
142        }
143        debug_struct.finish()
144    }
145}
146
147impl std::fmt::Debug for super::Xxe {
148    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
149        let mut debug_struct = f.debug_struct("Xxe");
150        debug_struct.field("payload_value", &self.payload_value);
151        debug_struct.field("payload_location", &self.payload_location);
152        if !self._unknown_fields.is_empty() {
153            debug_struct.field("_unknown_fields", &self._unknown_fields);
154        }
155        debug_struct.finish()
156    }
157}
158
159impl std::fmt::Debug for super::FindingTypeStats {
160    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
161        let mut debug_struct = f.debug_struct("FindingTypeStats");
162        debug_struct.field("finding_type", &self.finding_type);
163        debug_struct.field("finding_count", &self.finding_count);
164        if !self._unknown_fields.is_empty() {
165            debug_struct.field("_unknown_fields", &self._unknown_fields);
166        }
167        debug_struct.finish()
168    }
169}
170
171impl std::fmt::Debug for super::ScanConfig {
172    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
173        let mut debug_struct = f.debug_struct("ScanConfig");
174        debug_struct.field("name", &self.name);
175        debug_struct.field("display_name", &self.display_name);
176        debug_struct.field("max_qps", &self.max_qps);
177        debug_struct.field("starting_urls", &self.starting_urls);
178        debug_struct.field("authentication", &self.authentication);
179        debug_struct.field("user_agent", &self.user_agent);
180        debug_struct.field("blacklist_patterns", &self.blacklist_patterns);
181        debug_struct.field("schedule", &self.schedule);
182        debug_struct.field(
183            "export_to_security_command_center",
184            &self.export_to_security_command_center,
185        );
186        debug_struct.field("risk_level", &self.risk_level);
187        debug_struct.field("managed_scan", &self.managed_scan);
188        debug_struct.field("static_ip_scan", &self.static_ip_scan);
189        debug_struct.field("ignore_http_status_errors", &self.ignore_http_status_errors);
190        if !self._unknown_fields.is_empty() {
191            debug_struct.field("_unknown_fields", &self._unknown_fields);
192        }
193        debug_struct.finish()
194    }
195}
196
197impl std::fmt::Debug for super::scan_config::Authentication {
198    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
199        let mut debug_struct = f.debug_struct("Authentication");
200        debug_struct.field("authentication", &self.authentication);
201        if !self._unknown_fields.is_empty() {
202            debug_struct.field("_unknown_fields", &self._unknown_fields);
203        }
204        debug_struct.finish()
205    }
206}
207
208impl std::fmt::Debug for super::scan_config::authentication::GoogleAccount {
209    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
210        let mut debug_struct = f.debug_struct("GoogleAccount");
211        debug_struct.field("username", &self.username);
212        debug_struct.field("password", &self.password);
213        if !self._unknown_fields.is_empty() {
214            debug_struct.field("_unknown_fields", &self._unknown_fields);
215        }
216        debug_struct.finish()
217    }
218}
219
220impl std::fmt::Debug for super::scan_config::authentication::CustomAccount {
221    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
222        let mut debug_struct = f.debug_struct("CustomAccount");
223        debug_struct.field("username", &self.username);
224        debug_struct.field("password", &self.password);
225        debug_struct.field("login_url", &self.login_url);
226        if !self._unknown_fields.is_empty() {
227            debug_struct.field("_unknown_fields", &self._unknown_fields);
228        }
229        debug_struct.finish()
230    }
231}
232
233impl std::fmt::Debug for super::scan_config::authentication::IapCredential {
234    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
235        let mut debug_struct = f.debug_struct("IapCredential");
236        debug_struct.field("iap_credentials", &self.iap_credentials);
237        if !self._unknown_fields.is_empty() {
238            debug_struct.field("_unknown_fields", &self._unknown_fields);
239        }
240        debug_struct.finish()
241    }
242}
243
244impl std::fmt::Debug
245    for super::scan_config::authentication::iap_credential::IapTestServiceAccountInfo
246{
247    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
248        let mut debug_struct = f.debug_struct("IapTestServiceAccountInfo");
249        debug_struct.field("target_audience_client_id", &self.target_audience_client_id);
250        if !self._unknown_fields.is_empty() {
251            debug_struct.field("_unknown_fields", &self._unknown_fields);
252        }
253        debug_struct.finish()
254    }
255}
256
257impl std::fmt::Debug for super::scan_config::Schedule {
258    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
259        let mut debug_struct = f.debug_struct("Schedule");
260        debug_struct.field("schedule_time", &self.schedule_time);
261        debug_struct.field("interval_duration_days", &self.interval_duration_days);
262        if !self._unknown_fields.is_empty() {
263            debug_struct.field("_unknown_fields", &self._unknown_fields);
264        }
265        debug_struct.finish()
266    }
267}
268
269impl std::fmt::Debug for super::ScanConfigError {
270    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
271        let mut debug_struct = f.debug_struct("ScanConfigError");
272        debug_struct.field("code", &self.code);
273        debug_struct.field("field_name", &self.field_name);
274        if !self._unknown_fields.is_empty() {
275            debug_struct.field("_unknown_fields", &self._unknown_fields);
276        }
277        debug_struct.finish()
278    }
279}
280
281impl std::fmt::Debug for super::ScanRun {
282    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
283        let mut debug_struct = f.debug_struct("ScanRun");
284        debug_struct.field("name", &self.name);
285        debug_struct.field("execution_state", &self.execution_state);
286        debug_struct.field("result_state", &self.result_state);
287        debug_struct.field("start_time", &self.start_time);
288        debug_struct.field("end_time", &self.end_time);
289        debug_struct.field("urls_crawled_count", &self.urls_crawled_count);
290        debug_struct.field("urls_tested_count", &self.urls_tested_count);
291        debug_struct.field("has_vulnerabilities", &self.has_vulnerabilities);
292        debug_struct.field("progress_percent", &self.progress_percent);
293        debug_struct.field("error_trace", &self.error_trace);
294        debug_struct.field("warning_traces", &self.warning_traces);
295        if !self._unknown_fields.is_empty() {
296            debug_struct.field("_unknown_fields", &self._unknown_fields);
297        }
298        debug_struct.finish()
299    }
300}
301
302impl std::fmt::Debug for super::ScanRunErrorTrace {
303    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
304        let mut debug_struct = f.debug_struct("ScanRunErrorTrace");
305        debug_struct.field("code", &self.code);
306        debug_struct.field("scan_config_error", &self.scan_config_error);
307        debug_struct.field(
308            "most_common_http_error_code",
309            &self.most_common_http_error_code,
310        );
311        if !self._unknown_fields.is_empty() {
312            debug_struct.field("_unknown_fields", &self._unknown_fields);
313        }
314        debug_struct.finish()
315    }
316}
317
318impl std::fmt::Debug for super::ScanRunLog {
319    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
320        let mut debug_struct = f.debug_struct("ScanRunLog");
321        debug_struct.field("summary", &self.summary);
322        debug_struct.field("name", &self.name);
323        debug_struct.field("execution_state", &self.execution_state);
324        debug_struct.field("result_state", &self.result_state);
325        debug_struct.field("urls_crawled_count", &self.urls_crawled_count);
326        debug_struct.field("urls_tested_count", &self.urls_tested_count);
327        debug_struct.field("has_findings", &self.has_findings);
328        debug_struct.field("error_trace", &self.error_trace);
329        if !self._unknown_fields.is_empty() {
330            debug_struct.field("_unknown_fields", &self._unknown_fields);
331        }
332        debug_struct.finish()
333    }
334}
335
336impl std::fmt::Debug for super::ScanRunWarningTrace {
337    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
338        let mut debug_struct = f.debug_struct("ScanRunWarningTrace");
339        debug_struct.field("code", &self.code);
340        if !self._unknown_fields.is_empty() {
341            debug_struct.field("_unknown_fields", &self._unknown_fields);
342        }
343        debug_struct.finish()
344    }
345}
346
347impl std::fmt::Debug for super::CreateScanConfigRequest {
348    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
349        let mut debug_struct = f.debug_struct("CreateScanConfigRequest");
350        debug_struct.field("parent", &self.parent);
351        debug_struct.field("scan_config", &self.scan_config);
352        if !self._unknown_fields.is_empty() {
353            debug_struct.field("_unknown_fields", &self._unknown_fields);
354        }
355        debug_struct.finish()
356    }
357}
358
359impl std::fmt::Debug for super::DeleteScanConfigRequest {
360    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
361        let mut debug_struct = f.debug_struct("DeleteScanConfigRequest");
362        debug_struct.field("name", &self.name);
363        if !self._unknown_fields.is_empty() {
364            debug_struct.field("_unknown_fields", &self._unknown_fields);
365        }
366        debug_struct.finish()
367    }
368}
369
370impl std::fmt::Debug for super::GetScanConfigRequest {
371    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
372        let mut debug_struct = f.debug_struct("GetScanConfigRequest");
373        debug_struct.field("name", &self.name);
374        if !self._unknown_fields.is_empty() {
375            debug_struct.field("_unknown_fields", &self._unknown_fields);
376        }
377        debug_struct.finish()
378    }
379}
380
381impl std::fmt::Debug for super::ListScanConfigsRequest {
382    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
383        let mut debug_struct = f.debug_struct("ListScanConfigsRequest");
384        debug_struct.field("parent", &self.parent);
385        debug_struct.field("page_token", &self.page_token);
386        debug_struct.field("page_size", &self.page_size);
387        if !self._unknown_fields.is_empty() {
388            debug_struct.field("_unknown_fields", &self._unknown_fields);
389        }
390        debug_struct.finish()
391    }
392}
393
394impl std::fmt::Debug for super::UpdateScanConfigRequest {
395    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
396        let mut debug_struct = f.debug_struct("UpdateScanConfigRequest");
397        debug_struct.field("scan_config", &self.scan_config);
398        debug_struct.field("update_mask", &self.update_mask);
399        if !self._unknown_fields.is_empty() {
400            debug_struct.field("_unknown_fields", &self._unknown_fields);
401        }
402        debug_struct.finish()
403    }
404}
405
406impl std::fmt::Debug for super::ListScanConfigsResponse {
407    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
408        let mut debug_struct = f.debug_struct("ListScanConfigsResponse");
409        debug_struct.field("scan_configs", &self.scan_configs);
410        debug_struct.field("next_page_token", &self.next_page_token);
411        if !self._unknown_fields.is_empty() {
412            debug_struct.field("_unknown_fields", &self._unknown_fields);
413        }
414        debug_struct.finish()
415    }
416}
417
418impl std::fmt::Debug for super::StartScanRunRequest {
419    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
420        let mut debug_struct = f.debug_struct("StartScanRunRequest");
421        debug_struct.field("name", &self.name);
422        if !self._unknown_fields.is_empty() {
423            debug_struct.field("_unknown_fields", &self._unknown_fields);
424        }
425        debug_struct.finish()
426    }
427}
428
429impl std::fmt::Debug for super::GetScanRunRequest {
430    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
431        let mut debug_struct = f.debug_struct("GetScanRunRequest");
432        debug_struct.field("name", &self.name);
433        if !self._unknown_fields.is_empty() {
434            debug_struct.field("_unknown_fields", &self._unknown_fields);
435        }
436        debug_struct.finish()
437    }
438}
439
440impl std::fmt::Debug for super::ListScanRunsRequest {
441    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
442        let mut debug_struct = f.debug_struct("ListScanRunsRequest");
443        debug_struct.field("parent", &self.parent);
444        debug_struct.field("page_token", &self.page_token);
445        debug_struct.field("page_size", &self.page_size);
446        if !self._unknown_fields.is_empty() {
447            debug_struct.field("_unknown_fields", &self._unknown_fields);
448        }
449        debug_struct.finish()
450    }
451}
452
453impl std::fmt::Debug for super::ListScanRunsResponse {
454    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
455        let mut debug_struct = f.debug_struct("ListScanRunsResponse");
456        debug_struct.field("scan_runs", &self.scan_runs);
457        debug_struct.field("next_page_token", &self.next_page_token);
458        if !self._unknown_fields.is_empty() {
459            debug_struct.field("_unknown_fields", &self._unknown_fields);
460        }
461        debug_struct.finish()
462    }
463}
464
465impl std::fmt::Debug for super::StopScanRunRequest {
466    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
467        let mut debug_struct = f.debug_struct("StopScanRunRequest");
468        debug_struct.field("name", &self.name);
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::ListCrawledUrlsRequest {
477    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
478        let mut debug_struct = f.debug_struct("ListCrawledUrlsRequest");
479        debug_struct.field("parent", &self.parent);
480        debug_struct.field("page_token", &self.page_token);
481        debug_struct.field("page_size", &self.page_size);
482        if !self._unknown_fields.is_empty() {
483            debug_struct.field("_unknown_fields", &self._unknown_fields);
484        }
485        debug_struct.finish()
486    }
487}
488
489impl std::fmt::Debug for super::ListCrawledUrlsResponse {
490    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
491        let mut debug_struct = f.debug_struct("ListCrawledUrlsResponse");
492        debug_struct.field("crawled_urls", &self.crawled_urls);
493        debug_struct.field("next_page_token", &self.next_page_token);
494        if !self._unknown_fields.is_empty() {
495            debug_struct.field("_unknown_fields", &self._unknown_fields);
496        }
497        debug_struct.finish()
498    }
499}
500
501impl std::fmt::Debug for super::GetFindingRequest {
502    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
503        let mut debug_struct = f.debug_struct("GetFindingRequest");
504        debug_struct.field("name", &self.name);
505        if !self._unknown_fields.is_empty() {
506            debug_struct.field("_unknown_fields", &self._unknown_fields);
507        }
508        debug_struct.finish()
509    }
510}
511
512impl std::fmt::Debug for super::ListFindingsRequest {
513    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
514        let mut debug_struct = f.debug_struct("ListFindingsRequest");
515        debug_struct.field("parent", &self.parent);
516        debug_struct.field("filter", &self.filter);
517        debug_struct.field("page_token", &self.page_token);
518        debug_struct.field("page_size", &self.page_size);
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::ListFindingsResponse {
527    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
528        let mut debug_struct = f.debug_struct("ListFindingsResponse");
529        debug_struct.field("findings", &self.findings);
530        debug_struct.field("next_page_token", &self.next_page_token);
531        if !self._unknown_fields.is_empty() {
532            debug_struct.field("_unknown_fields", &self._unknown_fields);
533        }
534        debug_struct.finish()
535    }
536}
537
538impl std::fmt::Debug for super::ListFindingTypeStatsRequest {
539    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
540        let mut debug_struct = f.debug_struct("ListFindingTypeStatsRequest");
541        debug_struct.field("parent", &self.parent);
542        if !self._unknown_fields.is_empty() {
543            debug_struct.field("_unknown_fields", &self._unknown_fields);
544        }
545        debug_struct.finish()
546    }
547}
548
549impl std::fmt::Debug for super::ListFindingTypeStatsResponse {
550    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
551        let mut debug_struct = f.debug_struct("ListFindingTypeStatsResponse");
552        debug_struct.field("finding_type_stats", &self.finding_type_stats);
553        if !self._unknown_fields.is_empty() {
554            debug_struct.field("_unknown_fields", &self._unknown_fields);
555        }
556        debug_struct.finish()
557    }
558}