1use crate::event::{
9 self, api,
10 metrics::aggregate::{
11 info::{self, Str},
12 AsVariant, BoolRecorder, Info, Metric, NominalRecorder, Recorder, Registry, Units,
13 },
14};
15use alloc::{boxed::Box, vec::Vec};
16static INFO: &[Info; 169usize] = &[
17 info::Builder {
18 id: 0usize,
19 name: Str::new("application_protocol_information\0"),
20 units: Units::None,
21 }
22 .build(),
23 info::Builder {
24 id: 1usize,
25 name: Str::new("server_name_information\0"),
26 units: Units::None,
27 }
28 .build(),
29 info::Builder {
30 id: 2usize,
31 name: Str::new("key_exchange_group\0"),
32 units: Units::None,
33 }
34 .build(),
35 info::Builder {
36 id: 3usize,
37 name: Str::new("packet_skipped\0"),
38 units: Units::None,
39 }
40 .build(),
41 info::Builder {
42 id: 4usize,
43 name: Str::new("packet_sent\0"),
44 units: Units::None,
45 }
46 .build(),
47 info::Builder {
48 id: 5usize,
49 name: Str::new("packet_sent.kind\0"),
50 units: Units::None,
51 }
52 .build(),
53 info::Builder {
54 id: 6usize,
55 name: Str::new("packet_sent.bytes.total\0"),
56 units: Units::Bytes,
57 }
58 .build(),
59 info::Builder {
60 id: 7usize,
61 name: Str::new("packet_sent.bytes\0"),
62 units: Units::Bytes,
63 }
64 .build(),
65 info::Builder {
66 id: 8usize,
67 name: Str::new("packet_received\0"),
68 units: Units::None,
69 }
70 .build(),
71 info::Builder {
72 id: 9usize,
73 name: Str::new("packet_received.kind\0"),
74 units: Units::None,
75 }
76 .build(),
77 info::Builder {
78 id: 10usize,
79 name: Str::new("active_path_updated\0"),
80 units: Units::None,
81 }
82 .build(),
83 info::Builder {
84 id: 11usize,
85 name: Str::new("path_created\0"),
86 units: Units::None,
87 }
88 .build(),
89 info::Builder {
90 id: 12usize,
91 name: Str::new("frame_sent\0"),
92 units: Units::None,
93 }
94 .build(),
95 info::Builder {
96 id: 13usize,
97 name: Str::new("frame_sent.packet\0"),
98 units: Units::None,
99 }
100 .build(),
101 info::Builder {
102 id: 14usize,
103 name: Str::new("frame_sent.frame\0"),
104 units: Units::None,
105 }
106 .build(),
107 info::Builder {
108 id: 15usize,
109 name: Str::new("frame_received\0"),
110 units: Units::None,
111 }
112 .build(),
113 info::Builder {
114 id: 16usize,
115 name: Str::new("frame_received.packet\0"),
116 units: Units::None,
117 }
118 .build(),
119 info::Builder {
120 id: 17usize,
121 name: Str::new("frame_received.frame\0"),
122 units: Units::None,
123 }
124 .build(),
125 info::Builder {
126 id: 18usize,
127 name: Str::new("connection_close_frame_received\0"),
128 units: Units::None,
129 }
130 .build(),
131 info::Builder {
132 id: 19usize,
133 name: Str::new("connection_close_frame_received.packet\0"),
134 units: Units::None,
135 }
136 .build(),
137 info::Builder {
138 id: 20usize,
139 name: Str::new("packet_lost\0"),
140 units: Units::None,
141 }
142 .build(),
143 info::Builder {
144 id: 21usize,
145 name: Str::new("packet_lost.kind\0"),
146 units: Units::None,
147 }
148 .build(),
149 info::Builder {
150 id: 22usize,
151 name: Str::new("packet_lost.bytes.total\0"),
152 units: Units::Bytes,
153 }
154 .build(),
155 info::Builder {
156 id: 23usize,
157 name: Str::new("packet_lost.bytes\0"),
158 units: Units::Bytes,
159 }
160 .build(),
161 info::Builder {
162 id: 24usize,
163 name: Str::new("packet_lost.is_mtu_probe\0"),
164 units: Units::None,
165 }
166 .build(),
167 info::Builder {
168 id: 25usize,
169 name: Str::new("recovery_metrics\0"),
170 units: Units::None,
171 }
172 .build(),
173 info::Builder {
174 id: 26usize,
175 name: Str::new("recovery_metrics.min_rtt\0"),
176 units: Units::Duration,
177 }
178 .build(),
179 info::Builder {
180 id: 27usize,
181 name: Str::new("recovery_metrics.smoothed_rtt\0"),
182 units: Units::Duration,
183 }
184 .build(),
185 info::Builder {
186 id: 28usize,
187 name: Str::new("recovery_metrics.latest_rtt\0"),
188 units: Units::Duration,
189 }
190 .build(),
191 info::Builder {
192 id: 29usize,
193 name: Str::new("recovery_metrics.rtt_variance\0"),
194 units: Units::Duration,
195 }
196 .build(),
197 info::Builder {
198 id: 30usize,
199 name: Str::new("recovery_metrics.max_ack_delay\0"),
200 units: Units::Duration,
201 }
202 .build(),
203 info::Builder {
204 id: 31usize,
205 name: Str::new("recovery_metrics.pto_count\0"),
206 units: Units::None,
207 }
208 .build(),
209 info::Builder {
210 id: 32usize,
211 name: Str::new("recovery_metrics.congestion_window\0"),
212 units: Units::Duration,
213 }
214 .build(),
215 info::Builder {
216 id: 33usize,
217 name: Str::new("recovery_metrics.bytes_in_flight\0"),
218 units: Units::Duration,
219 }
220 .build(),
221 info::Builder {
222 id: 34usize,
223 name: Str::new("recovery_metrics.congestion_limited\0"),
224 units: Units::None,
225 }
226 .build(),
227 info::Builder {
228 id: 35usize,
229 name: Str::new("congestion\0"),
230 units: Units::None,
231 }
232 .build(),
233 info::Builder {
234 id: 36usize,
235 name: Str::new("congestion.source\0"),
236 units: Units::None,
237 }
238 .build(),
239 info::Builder {
240 id: 37usize,
241 name: Str::new("rx_ack_range_dropped\0"),
242 units: Units::None,
243 }
244 .build(),
245 info::Builder {
246 id: 38usize,
247 name: Str::new("ack_range_received\0"),
248 units: Units::None,
249 }
250 .build(),
251 info::Builder {
252 id: 39usize,
253 name: Str::new("ack_range_received.packet\0"),
254 units: Units::None,
255 }
256 .build(),
257 info::Builder {
258 id: 40usize,
259 name: Str::new("ack_range_sent\0"),
260 units: Units::None,
261 }
262 .build(),
263 info::Builder {
264 id: 41usize,
265 name: Str::new("ack_range_sent.packet\0"),
266 units: Units::None,
267 }
268 .build(),
269 info::Builder {
270 id: 42usize,
271 name: Str::new("packet_dropped\0"),
272 units: Units::None,
273 }
274 .build(),
275 info::Builder {
276 id: 43usize,
277 name: Str::new("packet_dropped.reason\0"),
278 units: Units::None,
279 }
280 .build(),
281 info::Builder {
282 id: 44usize,
283 name: Str::new("key_update\0"),
284 units: Units::None,
285 }
286 .build(),
287 info::Builder {
288 id: 45usize,
289 name: Str::new("key_update.key_type\0"),
290 units: Units::None,
291 }
292 .build(),
293 info::Builder {
294 id: 46usize,
295 name: Str::new("key_update.cipher_suite\0"),
296 units: Units::None,
297 }
298 .build(),
299 info::Builder {
300 id: 47usize,
301 name: Str::new("key_space_discarded\0"),
302 units: Units::None,
303 }
304 .build(),
305 info::Builder {
306 id: 48usize,
307 name: Str::new("key_space_discarded.initial.latency\0"),
308 units: Units::Duration,
309 }
310 .build(),
311 info::Builder {
312 id: 49usize,
313 name: Str::new("key_space_discarded.handshake.latency\0"),
314 units: Units::Duration,
315 }
316 .build(),
317 info::Builder {
318 id: 50usize,
319 name: Str::new("key_space_discarded.one_rtt.latency\0"),
320 units: Units::Duration,
321 }
322 .build(),
323 info::Builder {
324 id: 51usize,
325 name: Str::new("key_space_discarded.space\0"),
326 units: Units::None,
327 }
328 .build(),
329 info::Builder {
330 id: 52usize,
331 name: Str::new("connection_started\0"),
332 units: Units::None,
333 }
334 .build(),
335 info::Builder {
336 id: 53usize,
337 name: Str::new("duplicate_packet\0"),
338 units: Units::None,
339 }
340 .build(),
341 info::Builder {
342 id: 54usize,
343 name: Str::new("duplicate_packet.kind\0"),
344 units: Units::None,
345 }
346 .build(),
347 info::Builder {
348 id: 55usize,
349 name: Str::new("duplicate_packet.error\0"),
350 units: Units::None,
351 }
352 .build(),
353 info::Builder {
354 id: 56usize,
355 name: Str::new("transport_parameters_received\0"),
356 units: Units::None,
357 }
358 .build(),
359 info::Builder {
360 id: 57usize,
361 name: Str::new("transport_parameters_received.latency\0"),
362 units: Units::Duration,
363 }
364 .build(),
365 info::Builder {
366 id: 58usize,
367 name: Str::new("datagram_sent\0"),
368 units: Units::None,
369 }
370 .build(),
371 info::Builder {
372 id: 59usize,
373 name: Str::new("datagram_sent.bytes.total\0"),
374 units: Units::Bytes,
375 }
376 .build(),
377 info::Builder {
378 id: 60usize,
379 name: Str::new("datagram_sent.bytes\0"),
380 units: Units::Bytes,
381 }
382 .build(),
383 info::Builder {
384 id: 61usize,
385 name: Str::new("datagram_sent.gso_offset\0"),
386 units: Units::None,
387 }
388 .build(),
389 info::Builder {
390 id: 62usize,
391 name: Str::new("datagram_received\0"),
392 units: Units::None,
393 }
394 .build(),
395 info::Builder {
396 id: 63usize,
397 name: Str::new("datagram_received.bytes.total\0"),
398 units: Units::Bytes,
399 }
400 .build(),
401 info::Builder {
402 id: 64usize,
403 name: Str::new("datagram_received.bytes\0"),
404 units: Units::Bytes,
405 }
406 .build(),
407 info::Builder {
408 id: 65usize,
409 name: Str::new("datagram_dropped\0"),
410 units: Units::None,
411 }
412 .build(),
413 info::Builder {
414 id: 66usize,
415 name: Str::new("datagram_dropped.bytes.total\0"),
416 units: Units::Bytes,
417 }
418 .build(),
419 info::Builder {
420 id: 67usize,
421 name: Str::new("datagram_dropped.bytes\0"),
422 units: Units::Bytes,
423 }
424 .build(),
425 info::Builder {
426 id: 68usize,
427 name: Str::new("datagram_dropped.reason\0"),
428 units: Units::None,
429 }
430 .build(),
431 info::Builder {
432 id: 69usize,
433 name: Str::new("handshake_remote_address_change_observed\0"),
434 units: Units::None,
435 }
436 .build(),
437 info::Builder {
438 id: 70usize,
439 name: Str::new("connection_id_updated\0"),
440 units: Units::None,
441 }
442 .build(),
443 info::Builder {
444 id: 71usize,
445 name: Str::new("ecn_state_changed\0"),
446 units: Units::None,
447 }
448 .build(),
449 info::Builder {
450 id: 72usize,
451 name: Str::new("ecn_state_changed.state\0"),
452 units: Units::None,
453 }
454 .build(),
455 info::Builder {
456 id: 73usize,
457 name: Str::new("connection_migration_denied\0"),
458 units: Units::None,
459 }
460 .build(),
461 info::Builder {
462 id: 74usize,
463 name: Str::new("connection_migration_denied.reason\0"),
464 units: Units::None,
465 }
466 .build(),
467 info::Builder {
468 id: 75usize,
469 name: Str::new("handshake_status_updated\0"),
470 units: Units::None,
471 }
472 .build(),
473 info::Builder {
474 id: 76usize,
475 name: Str::new("handshake_status_updated.complete.latency\0"),
476 units: Units::Duration,
477 }
478 .build(),
479 info::Builder {
480 id: 77usize,
481 name: Str::new("handshake_status_updated.confirmed.latency\0"),
482 units: Units::Duration,
483 }
484 .build(),
485 info::Builder {
486 id: 78usize,
487 name: Str::new("handshake_status_updated.handshake_done_acked.latency\0"),
488 units: Units::Duration,
489 }
490 .build(),
491 info::Builder {
492 id: 79usize,
493 name: Str::new("handshake_status_updated.status\0"),
494 units: Units::None,
495 }
496 .build(),
497 info::Builder {
498 id: 80usize,
499 name: Str::new("tls_exporter_ready\0"),
500 units: Units::None,
501 }
502 .build(),
503 info::Builder {
504 id: 81usize,
505 name: Str::new("tls_handshake_failed\0"),
506 units: Units::None,
507 }
508 .build(),
509 info::Builder {
510 id: 82usize,
511 name: Str::new("path_challenge_updated\0"),
512 units: Units::None,
513 }
514 .build(),
515 info::Builder {
516 id: 83usize,
517 name: Str::new("path_challenge_updated.status\0"),
518 units: Units::None,
519 }
520 .build(),
521 info::Builder {
522 id: 84usize,
523 name: Str::new("tls_client_hello\0"),
524 units: Units::None,
525 }
526 .build(),
527 info::Builder {
528 id: 85usize,
529 name: Str::new("tls_client_hello.latency\0"),
530 units: Units::Duration,
531 }
532 .build(),
533 info::Builder {
534 id: 86usize,
535 name: Str::new("tls_server_hello\0"),
536 units: Units::None,
537 }
538 .build(),
539 info::Builder {
540 id: 87usize,
541 name: Str::new("tls_server_hello.latency\0"),
542 units: Units::Duration,
543 }
544 .build(),
545 info::Builder {
546 id: 88usize,
547 name: Str::new("rx_stream_progress\0"),
548 units: Units::None,
549 }
550 .build(),
551 info::Builder {
552 id: 89usize,
553 name: Str::new("rx_stream_progress.bytes.total\0"),
554 units: Units::Bytes,
555 }
556 .build(),
557 info::Builder {
558 id: 90usize,
559 name: Str::new("rx_stream_progress.bytes\0"),
560 units: Units::Bytes,
561 }
562 .build(),
563 info::Builder {
564 id: 91usize,
565 name: Str::new("tx_stream_progress\0"),
566 units: Units::None,
567 }
568 .build(),
569 info::Builder {
570 id: 92usize,
571 name: Str::new("tx_stream_progress.bytes.total\0"),
572 units: Units::Bytes,
573 }
574 .build(),
575 info::Builder {
576 id: 93usize,
577 name: Str::new("tx_stream_progress.bytes\0"),
578 units: Units::Bytes,
579 }
580 .build(),
581 info::Builder {
582 id: 94usize,
583 name: Str::new("keep_alive_timer_expired\0"),
584 units: Units::None,
585 }
586 .build(),
587 info::Builder {
588 id: 95usize,
589 name: Str::new("mtu_updated\0"),
590 units: Units::None,
591 }
592 .build(),
593 info::Builder {
594 id: 96usize,
595 name: Str::new("mtu_updated.mtu\0"),
596 units: Units::Bytes,
597 }
598 .build(),
599 info::Builder {
600 id: 97usize,
601 name: Str::new("mtu_updated.cause\0"),
602 units: Units::None,
603 }
604 .build(),
605 info::Builder {
606 id: 98usize,
607 name: Str::new("mtu_updated.search_complete\0"),
608 units: Units::None,
609 }
610 .build(),
611 info::Builder {
612 id: 99usize,
613 name: Str::new("mtu_probing_complete_received\0"),
614 units: Units::None,
615 }
616 .build(),
617 info::Builder {
618 id: 100usize,
619 name: Str::new("mtu_probing_complete_received.packet\0"),
620 units: Units::None,
621 }
622 .build(),
623 info::Builder {
624 id: 101usize,
625 name: Str::new("mtu_probing_complete_received.mtu\0"),
626 units: Units::Bytes,
627 }
628 .build(),
629 info::Builder {
630 id: 102usize,
631 name: Str::new("slow_start_exited\0"),
632 units: Units::None,
633 }
634 .build(),
635 info::Builder {
636 id: 103usize,
637 name: Str::new("slow_start_exited.cause\0"),
638 units: Units::None,
639 }
640 .build(),
641 info::Builder {
642 id: 104usize,
643 name: Str::new("slow_start_exited.latency\0"),
644 units: Units::Duration,
645 }
646 .build(),
647 info::Builder {
648 id: 105usize,
649 name: Str::new("slow_start_exited.congestion_window\0"),
650 units: Units::Bytes,
651 }
652 .build(),
653 info::Builder {
654 id: 106usize,
655 name: Str::new("delivery_rate_sampled\0"),
656 units: Units::None,
657 }
658 .build(),
659 info::Builder {
660 id: 107usize,
661 name: Str::new("pacing_rate_updated\0"),
662 units: Units::None,
663 }
664 .build(),
665 info::Builder {
666 id: 108usize,
667 name: Str::new("pacing_rate_updated.bytes_per_second\0"),
668 units: Units::Bytes,
669 }
670 .build(),
671 info::Builder {
672 id: 109usize,
673 name: Str::new("pacing_rate_updated.burst_size\0"),
674 units: Units::Bytes,
675 }
676 .build(),
677 info::Builder {
678 id: 110usize,
679 name: Str::new("pacing_rate_updated.pacing_gain\0"),
680 units: Units::None,
681 }
682 .build(),
683 info::Builder {
684 id: 111usize,
685 name: Str::new("bbr_state_changed\0"),
686 units: Units::None,
687 }
688 .build(),
689 info::Builder {
690 id: 112usize,
691 name: Str::new("bbr_state_changed.state\0"),
692 units: Units::None,
693 }
694 .build(),
695 info::Builder {
696 id: 113usize,
697 name: Str::new("dc_state_changed\0"),
698 units: Units::None,
699 }
700 .build(),
701 info::Builder {
702 id: 114usize,
703 name: Str::new("dc_state_changed.version_negotiated.latency\0"),
704 units: Units::Duration,
705 }
706 .build(),
707 info::Builder {
708 id: 115usize,
709 name: Str::new("dc_state_changed.no_version_negotiated.latency\0"),
710 units: Units::Duration,
711 }
712 .build(),
713 info::Builder {
714 id: 116usize,
715 name: Str::new("dc_state_changed.path_secrets.latency\0"),
716 units: Units::Duration,
717 }
718 .build(),
719 info::Builder {
720 id: 117usize,
721 name: Str::new("dc_state_changed.complete.latency\0"),
722 units: Units::Duration,
723 }
724 .build(),
725 info::Builder {
726 id: 118usize,
727 name: Str::new("dc_state_changed.state\0"),
728 units: Units::None,
729 }
730 .build(),
731 info::Builder {
732 id: 119usize,
733 name: Str::new("dc_path_created\0"),
734 units: Units::None,
735 }
736 .build(),
737 info::Builder {
738 id: 120usize,
739 name: Str::new("connection_closed\0"),
740 units: Units::None,
741 }
742 .build(),
743 info::Builder {
744 id: 121usize,
745 name: Str::new("connection_closed.latency\0"),
746 units: Units::Duration,
747 }
748 .build(),
749 info::Builder {
750 id: 122usize,
751 name: Str::new("connection_closed.error\0"),
752 units: Units::None,
753 }
754 .build(),
755 info::Builder {
756 id: 123usize,
757 name: Str::new("version_information\0"),
758 units: Units::None,
759 }
760 .build(),
761 info::Builder {
762 id: 124usize,
763 name: Str::new("endpoint_packet_sent\0"),
764 units: Units::None,
765 }
766 .build(),
767 info::Builder {
768 id: 125usize,
769 name: Str::new("endpoint_packet_received\0"),
770 units: Units::None,
771 }
772 .build(),
773 info::Builder {
774 id: 126usize,
775 name: Str::new("endpoint_datagram_sent\0"),
776 units: Units::None,
777 }
778 .build(),
779 info::Builder {
780 id: 127usize,
781 name: Str::new("endpoint_datagram_sent.bytes\0"),
782 units: Units::Bytes,
783 }
784 .build(),
785 info::Builder {
786 id: 128usize,
787 name: Str::new("endpoint_datagram_sent.bytes.total\0"),
788 units: Units::Bytes,
789 }
790 .build(),
791 info::Builder {
792 id: 129usize,
793 name: Str::new("endpoint_datagram_sent.gso_offset\0"),
794 units: Units::None,
795 }
796 .build(),
797 info::Builder {
798 id: 130usize,
799 name: Str::new("endpoint_datagram_received\0"),
800 units: Units::None,
801 }
802 .build(),
803 info::Builder {
804 id: 131usize,
805 name: Str::new("endpoint_datagram_received.bytes\0"),
806 units: Units::Bytes,
807 }
808 .build(),
809 info::Builder {
810 id: 132usize,
811 name: Str::new("endpoint_datagram_received.bytes.total\0"),
812 units: Units::Bytes,
813 }
814 .build(),
815 info::Builder {
816 id: 133usize,
817 name: Str::new("endpoint_datagram_dropped\0"),
818 units: Units::None,
819 }
820 .build(),
821 info::Builder {
822 id: 134usize,
823 name: Str::new("endpoint_datagram_dropped.bytes\0"),
824 units: Units::Bytes,
825 }
826 .build(),
827 info::Builder {
828 id: 135usize,
829 name: Str::new("endpoint_datagram_dropped.bytes.total\0"),
830 units: Units::Bytes,
831 }
832 .build(),
833 info::Builder {
834 id: 136usize,
835 name: Str::new("endpoint_datagram_dropped.reason\0"),
836 units: Units::None,
837 }
838 .build(),
839 info::Builder {
840 id: 137usize,
841 name: Str::new("endpoint_connection_attempt_failed\0"),
842 units: Units::None,
843 }
844 .build(),
845 info::Builder {
846 id: 138usize,
847 name: Str::new("endpoint_connection_attempt_failed.error\0"),
848 units: Units::None,
849 }
850 .build(),
851 info::Builder {
852 id: 139usize,
853 name: Str::new("endpoint_connection_attempt_deduplicated\0"),
854 units: Units::None,
855 }
856 .build(),
857 info::Builder {
858 id: 140usize,
859 name: Str::new("platform_tx\0"),
860 units: Units::None,
861 }
862 .build(),
863 info::Builder {
864 id: 141usize,
865 name: Str::new("platform_tx.packets.total\0"),
866 units: Units::None,
867 }
868 .build(),
869 info::Builder {
870 id: 142usize,
871 name: Str::new("platform_tx.packets\0"),
872 units: Units::None,
873 }
874 .build(),
875 info::Builder {
876 id: 143usize,
877 name: Str::new("platform_tx.syscalls.total\0"),
878 units: Units::None,
879 }
880 .build(),
881 info::Builder {
882 id: 144usize,
883 name: Str::new("platform_tx.syscalls\0"),
884 units: Units::None,
885 }
886 .build(),
887 info::Builder {
888 id: 145usize,
889 name: Str::new("platform_tx.syscalls.blocked.total\0"),
890 units: Units::None,
891 }
892 .build(),
893 info::Builder {
894 id: 146usize,
895 name: Str::new("platform_tx.syscalls.blocked\0"),
896 units: Units::None,
897 }
898 .build(),
899 info::Builder {
900 id: 147usize,
901 name: Str::new("platform_tx.errors.total\0"),
902 units: Units::None,
903 }
904 .build(),
905 info::Builder {
906 id: 148usize,
907 name: Str::new("platform_tx.errors\0"),
908 units: Units::None,
909 }
910 .build(),
911 info::Builder {
912 id: 149usize,
913 name: Str::new("platform_tx.errors.dropped.total\0"),
914 units: Units::None,
915 }
916 .build(),
917 info::Builder {
918 id: 150usize,
919 name: Str::new("platform_tx.errors.dropped\0"),
920 units: Units::None,
921 }
922 .build(),
923 info::Builder {
924 id: 151usize,
925 name: Str::new("platform_tx_error\0"),
926 units: Units::None,
927 }
928 .build(),
929 info::Builder {
930 id: 152usize,
931 name: Str::new("platform_rx\0"),
932 units: Units::None,
933 }
934 .build(),
935 info::Builder {
936 id: 153usize,
937 name: Str::new("platform_rx.packets.total\0"),
938 units: Units::None,
939 }
940 .build(),
941 info::Builder {
942 id: 154usize,
943 name: Str::new("platform_rx.packets\0"),
944 units: Units::None,
945 }
946 .build(),
947 info::Builder {
948 id: 155usize,
949 name: Str::new("platform_rx.syscalls.total\0"),
950 units: Units::None,
951 }
952 .build(),
953 info::Builder {
954 id: 156usize,
955 name: Str::new("platform_rx.syscalls\0"),
956 units: Units::None,
957 }
958 .build(),
959 info::Builder {
960 id: 157usize,
961 name: Str::new("platform_rx.syscalls.blocked.total\0"),
962 units: Units::None,
963 }
964 .build(),
965 info::Builder {
966 id: 158usize,
967 name: Str::new("platform_rx.syscalls.blocked\0"),
968 units: Units::None,
969 }
970 .build(),
971 info::Builder {
972 id: 159usize,
973 name: Str::new("platform_rx.errors.total\0"),
974 units: Units::None,
975 }
976 .build(),
977 info::Builder {
978 id: 160usize,
979 name: Str::new("platform_rx.errors\0"),
980 units: Units::None,
981 }
982 .build(),
983 info::Builder {
984 id: 161usize,
985 name: Str::new("platform_rx.errors.dropped.total\0"),
986 units: Units::None,
987 }
988 .build(),
989 info::Builder {
990 id: 162usize,
991 name: Str::new("platform_rx.errors.dropped\0"),
992 units: Units::None,
993 }
994 .build(),
995 info::Builder {
996 id: 163usize,
997 name: Str::new("platform_rx_error\0"),
998 units: Units::None,
999 }
1000 .build(),
1001 info::Builder {
1002 id: 164usize,
1003 name: Str::new("platform_feature_configured\0"),
1004 units: Units::None,
1005 }
1006 .build(),
1007 info::Builder {
1008 id: 165usize,
1009 name: Str::new("platform_event_loop_wakeup\0"),
1010 units: Units::None,
1011 }
1012 .build(),
1013 info::Builder {
1014 id: 166usize,
1015 name: Str::new("platform_event_loop_sleep\0"),
1016 units: Units::None,
1017 }
1018 .build(),
1019 info::Builder {
1020 id: 167usize,
1021 name: Str::new("platform_event_loop_sleep.processing_duration\0"),
1022 units: Units::Duration,
1023 }
1024 .build(),
1025 info::Builder {
1026 id: 168usize,
1027 name: Str::new("platform_event_loop_started\0"),
1028 units: Units::None,
1029 }
1030 .build(),
1031];
1032#[derive(Debug)]
1033#[allow(dead_code)]
1034pub struct ConnectionContext {
1035 start_time: crate::event::Timestamp,
1036}
1037pub struct Subscriber<R: Registry> {
1038 #[allow(dead_code)]
1039 counters: Box<[R::Counter; 81usize]>,
1040 #[allow(dead_code)]
1041 bool_counters: Box<[R::BoolCounter; 3usize]>,
1042 #[allow(dead_code)]
1043 nominal_counters: Box<[R::NominalCounter]>,
1044 #[allow(dead_code)]
1045 nominal_counter_offsets: Box<[usize; 30usize]>,
1046 #[allow(dead_code)]
1047 measures: Box<[R::Measure; 39usize]>,
1048 #[allow(dead_code)]
1049 gauges: Box<[R::Gauge; 0usize]>,
1050 #[allow(dead_code)]
1051 timers: Box<[R::Timer; 15usize]>,
1052 #[allow(dead_code)]
1053 nominal_timers: Box<[R::NominalTimer]>,
1054 #[allow(dead_code)]
1055 nominal_timer_offsets: Box<[usize; 1usize]>,
1056 #[allow(dead_code)]
1057 registry: R,
1058}
1059impl<R: Registry + Default> Default for Subscriber<R> {
1060 fn default() -> Self {
1061 Self::new(R::default())
1062 }
1063}
1064impl<R: Registry> Subscriber<R> {
1065 #[doc = r" Creates a new subscriber with the given registry"]
1066 #[doc = r""]
1067 #[doc = r" # Note"]
1068 #[doc = r""]
1069 #[doc = r" All of the recorders are registered on initialization and cached for the lifetime"]
1070 #[doc = r" of the subscriber."]
1071 #[allow(unused_mut)]
1072 #[inline]
1073 pub fn new(registry: R) -> Self {
1074 let mut counters = Vec::with_capacity(81usize);
1075 let mut bool_counters = Vec::with_capacity(3usize);
1076 let mut nominal_counters = Vec::with_capacity(30usize);
1077 let mut nominal_counter_offsets = Vec::with_capacity(30usize);
1078 let mut measures = Vec::with_capacity(39usize);
1079 let mut gauges = Vec::with_capacity(0usize);
1080 let mut timers = Vec::with_capacity(15usize);
1081 let mut nominal_timers = Vec::with_capacity(1usize);
1082 let mut nominal_timer_offsets = Vec::with_capacity(1usize);
1083 counters.push(registry.register_counter(&INFO[0usize]));
1084 counters.push(registry.register_counter(&INFO[1usize]));
1085 counters.push(registry.register_counter(&INFO[2usize]));
1086 counters.push(registry.register_counter(&INFO[3usize]));
1087 counters.push(registry.register_counter(&INFO[4usize]));
1088 counters.push(registry.register_counter(&INFO[6usize]));
1089 counters.push(registry.register_counter(&INFO[8usize]));
1090 counters.push(registry.register_counter(&INFO[10usize]));
1091 counters.push(registry.register_counter(&INFO[11usize]));
1092 counters.push(registry.register_counter(&INFO[12usize]));
1093 counters.push(registry.register_counter(&INFO[15usize]));
1094 counters.push(registry.register_counter(&INFO[18usize]));
1095 counters.push(registry.register_counter(&INFO[20usize]));
1096 counters.push(registry.register_counter(&INFO[22usize]));
1097 counters.push(registry.register_counter(&INFO[25usize]));
1098 counters.push(registry.register_counter(&INFO[35usize]));
1099 counters.push(registry.register_counter(&INFO[37usize]));
1100 counters.push(registry.register_counter(&INFO[38usize]));
1101 counters.push(registry.register_counter(&INFO[40usize]));
1102 counters.push(registry.register_counter(&INFO[42usize]));
1103 counters.push(registry.register_counter(&INFO[44usize]));
1104 counters.push(registry.register_counter(&INFO[47usize]));
1105 counters.push(registry.register_counter(&INFO[52usize]));
1106 counters.push(registry.register_counter(&INFO[53usize]));
1107 counters.push(registry.register_counter(&INFO[56usize]));
1108 counters.push(registry.register_counter(&INFO[58usize]));
1109 counters.push(registry.register_counter(&INFO[59usize]));
1110 counters.push(registry.register_counter(&INFO[62usize]));
1111 counters.push(registry.register_counter(&INFO[63usize]));
1112 counters.push(registry.register_counter(&INFO[65usize]));
1113 counters.push(registry.register_counter(&INFO[66usize]));
1114 counters.push(registry.register_counter(&INFO[69usize]));
1115 counters.push(registry.register_counter(&INFO[70usize]));
1116 counters.push(registry.register_counter(&INFO[71usize]));
1117 counters.push(registry.register_counter(&INFO[73usize]));
1118 counters.push(registry.register_counter(&INFO[75usize]));
1119 counters.push(registry.register_counter(&INFO[80usize]));
1120 counters.push(registry.register_counter(&INFO[81usize]));
1121 counters.push(registry.register_counter(&INFO[82usize]));
1122 counters.push(registry.register_counter(&INFO[84usize]));
1123 counters.push(registry.register_counter(&INFO[86usize]));
1124 counters.push(registry.register_counter(&INFO[88usize]));
1125 counters.push(registry.register_counter(&INFO[89usize]));
1126 counters.push(registry.register_counter(&INFO[91usize]));
1127 counters.push(registry.register_counter(&INFO[92usize]));
1128 counters.push(registry.register_counter(&INFO[94usize]));
1129 counters.push(registry.register_counter(&INFO[95usize]));
1130 counters.push(registry.register_counter(&INFO[99usize]));
1131 counters.push(registry.register_counter(&INFO[102usize]));
1132 counters.push(registry.register_counter(&INFO[106usize]));
1133 counters.push(registry.register_counter(&INFO[107usize]));
1134 counters.push(registry.register_counter(&INFO[111usize]));
1135 counters.push(registry.register_counter(&INFO[113usize]));
1136 counters.push(registry.register_counter(&INFO[119usize]));
1137 counters.push(registry.register_counter(&INFO[120usize]));
1138 counters.push(registry.register_counter(&INFO[123usize]));
1139 counters.push(registry.register_counter(&INFO[124usize]));
1140 counters.push(registry.register_counter(&INFO[125usize]));
1141 counters.push(registry.register_counter(&INFO[126usize]));
1142 counters.push(registry.register_counter(&INFO[130usize]));
1143 counters.push(registry.register_counter(&INFO[133usize]));
1144 counters.push(registry.register_counter(&INFO[137usize]));
1145 counters.push(registry.register_counter(&INFO[139usize]));
1146 counters.push(registry.register_counter(&INFO[140usize]));
1147 counters.push(registry.register_counter(&INFO[141usize]));
1148 counters.push(registry.register_counter(&INFO[143usize]));
1149 counters.push(registry.register_counter(&INFO[145usize]));
1150 counters.push(registry.register_counter(&INFO[147usize]));
1151 counters.push(registry.register_counter(&INFO[149usize]));
1152 counters.push(registry.register_counter(&INFO[151usize]));
1153 counters.push(registry.register_counter(&INFO[152usize]));
1154 counters.push(registry.register_counter(&INFO[153usize]));
1155 counters.push(registry.register_counter(&INFO[155usize]));
1156 counters.push(registry.register_counter(&INFO[157usize]));
1157 counters.push(registry.register_counter(&INFO[159usize]));
1158 counters.push(registry.register_counter(&INFO[161usize]));
1159 counters.push(registry.register_counter(&INFO[163usize]));
1160 counters.push(registry.register_counter(&INFO[164usize]));
1161 counters.push(registry.register_counter(&INFO[165usize]));
1162 counters.push(registry.register_counter(&INFO[166usize]));
1163 counters.push(registry.register_counter(&INFO[168usize]));
1164 bool_counters.push(registry.register_bool_counter(&INFO[24usize]));
1165 bool_counters.push(registry.register_bool_counter(&INFO[34usize]));
1166 bool_counters.push(registry.register_bool_counter(&INFO[98usize]));
1167 {
1168 #[allow(unused_imports)]
1169 use api::*;
1170 {
1171 let offset = nominal_counters.len();
1172 let mut count = 0;
1173 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1174 nominal_counters
1175 .push(registry.register_nominal_counter(&INFO[5usize], variant));
1176 count += 1;
1177 }
1178 debug_assert_ne!(count, 0, "field type needs at least one variant");
1179 nominal_counter_offsets.push(offset);
1180 }
1181 {
1182 let offset = nominal_counters.len();
1183 let mut count = 0;
1184 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1185 nominal_counters
1186 .push(registry.register_nominal_counter(&INFO[9usize], variant));
1187 count += 1;
1188 }
1189 debug_assert_ne!(count, 0, "field type needs at least one variant");
1190 nominal_counter_offsets.push(offset);
1191 }
1192 {
1193 let offset = nominal_counters.len();
1194 let mut count = 0;
1195 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1196 nominal_counters
1197 .push(registry.register_nominal_counter(&INFO[13usize], variant));
1198 count += 1;
1199 }
1200 debug_assert_ne!(count, 0, "field type needs at least one variant");
1201 nominal_counter_offsets.push(offset);
1202 }
1203 {
1204 let offset = nominal_counters.len();
1205 let mut count = 0;
1206 for variant in <Frame as AsVariant>::VARIANTS.iter() {
1207 nominal_counters
1208 .push(registry.register_nominal_counter(&INFO[14usize], variant));
1209 count += 1;
1210 }
1211 debug_assert_ne!(count, 0, "field type needs at least one variant");
1212 nominal_counter_offsets.push(offset);
1213 }
1214 {
1215 let offset = nominal_counters.len();
1216 let mut count = 0;
1217 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1218 nominal_counters
1219 .push(registry.register_nominal_counter(&INFO[16usize], variant));
1220 count += 1;
1221 }
1222 debug_assert_ne!(count, 0, "field type needs at least one variant");
1223 nominal_counter_offsets.push(offset);
1224 }
1225 {
1226 let offset = nominal_counters.len();
1227 let mut count = 0;
1228 for variant in <Frame as AsVariant>::VARIANTS.iter() {
1229 nominal_counters
1230 .push(registry.register_nominal_counter(&INFO[17usize], variant));
1231 count += 1;
1232 }
1233 debug_assert_ne!(count, 0, "field type needs at least one variant");
1234 nominal_counter_offsets.push(offset);
1235 }
1236 {
1237 let offset = nominal_counters.len();
1238 let mut count = 0;
1239 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1240 nominal_counters
1241 .push(registry.register_nominal_counter(&INFO[19usize], variant));
1242 count += 1;
1243 }
1244 debug_assert_ne!(count, 0, "field type needs at least one variant");
1245 nominal_counter_offsets.push(offset);
1246 }
1247 {
1248 let offset = nominal_counters.len();
1249 let mut count = 0;
1250 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1251 nominal_counters
1252 .push(registry.register_nominal_counter(&INFO[21usize], variant));
1253 count += 1;
1254 }
1255 debug_assert_ne!(count, 0, "field type needs at least one variant");
1256 nominal_counter_offsets.push(offset);
1257 }
1258 {
1259 let offset = nominal_counters.len();
1260 let mut count = 0;
1261 for variant in <CongestionSource as AsVariant>::VARIANTS.iter() {
1262 nominal_counters
1263 .push(registry.register_nominal_counter(&INFO[36usize], variant));
1264 count += 1;
1265 }
1266 debug_assert_ne!(count, 0, "field type needs at least one variant");
1267 nominal_counter_offsets.push(offset);
1268 }
1269 {
1270 let offset = nominal_counters.len();
1271 let mut count = 0;
1272 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1273 nominal_counters
1274 .push(registry.register_nominal_counter(&INFO[39usize], variant));
1275 count += 1;
1276 }
1277 debug_assert_ne!(count, 0, "field type needs at least one variant");
1278 nominal_counter_offsets.push(offset);
1279 }
1280 {
1281 let offset = nominal_counters.len();
1282 let mut count = 0;
1283 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1284 nominal_counters
1285 .push(registry.register_nominal_counter(&INFO[41usize], variant));
1286 count += 1;
1287 }
1288 debug_assert_ne!(count, 0, "field type needs at least one variant");
1289 nominal_counter_offsets.push(offset);
1290 }
1291 {
1292 let offset = nominal_counters.len();
1293 let mut count = 0;
1294 for variant in <PacketDropReason as AsVariant>::VARIANTS.iter() {
1295 nominal_counters
1296 .push(registry.register_nominal_counter(&INFO[43usize], variant));
1297 count += 1;
1298 }
1299 debug_assert_ne!(count, 0, "field type needs at least one variant");
1300 nominal_counter_offsets.push(offset);
1301 }
1302 {
1303 let offset = nominal_counters.len();
1304 let mut count = 0;
1305 for variant in <KeyType as AsVariant>::VARIANTS.iter() {
1306 nominal_counters
1307 .push(registry.register_nominal_counter(&INFO[45usize], variant));
1308 count += 1;
1309 }
1310 debug_assert_ne!(count, 0, "field type needs at least one variant");
1311 nominal_counter_offsets.push(offset);
1312 }
1313 {
1314 let offset = nominal_counters.len();
1315 let mut count = 0;
1316 for variant in <CipherSuite as AsVariant>::VARIANTS.iter() {
1317 nominal_counters
1318 .push(registry.register_nominal_counter(&INFO[46usize], variant));
1319 count += 1;
1320 }
1321 debug_assert_ne!(count, 0, "field type needs at least one variant");
1322 nominal_counter_offsets.push(offset);
1323 }
1324 {
1325 let offset = nominal_counters.len();
1326 let mut count = 0;
1327 for variant in <KeySpace as AsVariant>::VARIANTS.iter() {
1328 nominal_counters
1329 .push(registry.register_nominal_counter(&INFO[51usize], variant));
1330 count += 1;
1331 }
1332 debug_assert_ne!(count, 0, "field type needs at least one variant");
1333 nominal_counter_offsets.push(offset);
1334 }
1335 {
1336 let offset = nominal_counters.len();
1337 let mut count = 0;
1338 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1339 nominal_counters
1340 .push(registry.register_nominal_counter(&INFO[54usize], variant));
1341 count += 1;
1342 }
1343 debug_assert_ne!(count, 0, "field type needs at least one variant");
1344 nominal_counter_offsets.push(offset);
1345 }
1346 {
1347 let offset = nominal_counters.len();
1348 let mut count = 0;
1349 for variant in <DuplicatePacketError as AsVariant>::VARIANTS.iter() {
1350 nominal_counters
1351 .push(registry.register_nominal_counter(&INFO[55usize], variant));
1352 count += 1;
1353 }
1354 debug_assert_ne!(count, 0, "field type needs at least one variant");
1355 nominal_counter_offsets.push(offset);
1356 }
1357 {
1358 let offset = nominal_counters.len();
1359 let mut count = 0;
1360 for variant in <DatagramDropReason as AsVariant>::VARIANTS.iter() {
1361 nominal_counters
1362 .push(registry.register_nominal_counter(&INFO[68usize], variant));
1363 count += 1;
1364 }
1365 debug_assert_ne!(count, 0, "field type needs at least one variant");
1366 nominal_counter_offsets.push(offset);
1367 }
1368 {
1369 let offset = nominal_counters.len();
1370 let mut count = 0;
1371 for variant in <EcnState as AsVariant>::VARIANTS.iter() {
1372 nominal_counters
1373 .push(registry.register_nominal_counter(&INFO[72usize], variant));
1374 count += 1;
1375 }
1376 debug_assert_ne!(count, 0, "field type needs at least one variant");
1377 nominal_counter_offsets.push(offset);
1378 }
1379 {
1380 let offset = nominal_counters.len();
1381 let mut count = 0;
1382 for variant in <MigrationDenyReason as AsVariant>::VARIANTS.iter() {
1383 nominal_counters
1384 .push(registry.register_nominal_counter(&INFO[74usize], variant));
1385 count += 1;
1386 }
1387 debug_assert_ne!(count, 0, "field type needs at least one variant");
1388 nominal_counter_offsets.push(offset);
1389 }
1390 {
1391 let offset = nominal_counters.len();
1392 let mut count = 0;
1393 for variant in <HandshakeStatus as AsVariant>::VARIANTS.iter() {
1394 nominal_counters
1395 .push(registry.register_nominal_counter(&INFO[79usize], variant));
1396 count += 1;
1397 }
1398 debug_assert_ne!(count, 0, "field type needs at least one variant");
1399 nominal_counter_offsets.push(offset);
1400 }
1401 {
1402 let offset = nominal_counters.len();
1403 let mut count = 0;
1404 for variant in <PathChallengeStatus as AsVariant>::VARIANTS.iter() {
1405 nominal_counters
1406 .push(registry.register_nominal_counter(&INFO[83usize], variant));
1407 count += 1;
1408 }
1409 debug_assert_ne!(count, 0, "field type needs at least one variant");
1410 nominal_counter_offsets.push(offset);
1411 }
1412 {
1413 let offset = nominal_counters.len();
1414 let mut count = 0;
1415 for variant in <MtuUpdatedCause as AsVariant>::VARIANTS.iter() {
1416 nominal_counters
1417 .push(registry.register_nominal_counter(&INFO[97usize], variant));
1418 count += 1;
1419 }
1420 debug_assert_ne!(count, 0, "field type needs at least one variant");
1421 nominal_counter_offsets.push(offset);
1422 }
1423 {
1424 let offset = nominal_counters.len();
1425 let mut count = 0;
1426 for variant in <PacketHeader as AsVariant>::VARIANTS.iter() {
1427 nominal_counters
1428 .push(registry.register_nominal_counter(&INFO[100usize], variant));
1429 count += 1;
1430 }
1431 debug_assert_ne!(count, 0, "field type needs at least one variant");
1432 nominal_counter_offsets.push(offset);
1433 }
1434 {
1435 let offset = nominal_counters.len();
1436 let mut count = 0;
1437 for variant in <SlowStartExitCause as AsVariant>::VARIANTS.iter() {
1438 nominal_counters
1439 .push(registry.register_nominal_counter(&INFO[103usize], variant));
1440 count += 1;
1441 }
1442 debug_assert_ne!(count, 0, "field type needs at least one variant");
1443 nominal_counter_offsets.push(offset);
1444 }
1445 {
1446 let offset = nominal_counters.len();
1447 let mut count = 0;
1448 for variant in <BbrState as AsVariant>::VARIANTS.iter() {
1449 nominal_counters
1450 .push(registry.register_nominal_counter(&INFO[112usize], variant));
1451 count += 1;
1452 }
1453 debug_assert_ne!(count, 0, "field type needs at least one variant");
1454 nominal_counter_offsets.push(offset);
1455 }
1456 {
1457 let offset = nominal_counters.len();
1458 let mut count = 0;
1459 for variant in <DcState as AsVariant>::VARIANTS.iter() {
1460 nominal_counters
1461 .push(registry.register_nominal_counter(&INFO[118usize], variant));
1462 count += 1;
1463 }
1464 debug_assert_ne!(count, 0, "field type needs at least one variant");
1465 nominal_counter_offsets.push(offset);
1466 }
1467 {
1468 let offset = nominal_counters.len();
1469 let mut count = 0;
1470 for variant in <crate::connection::Error as AsVariant>::VARIANTS.iter() {
1471 nominal_counters
1472 .push(registry.register_nominal_counter(&INFO[122usize], variant));
1473 count += 1;
1474 }
1475 debug_assert_ne!(count, 0, "field type needs at least one variant");
1476 nominal_counter_offsets.push(offset);
1477 }
1478 {
1479 let offset = nominal_counters.len();
1480 let mut count = 0;
1481 for variant in <DatagramDropReason as AsVariant>::VARIANTS.iter() {
1482 nominal_counters
1483 .push(registry.register_nominal_counter(&INFO[136usize], variant));
1484 count += 1;
1485 }
1486 debug_assert_ne!(count, 0, "field type needs at least one variant");
1487 nominal_counter_offsets.push(offset);
1488 }
1489 {
1490 let offset = nominal_counters.len();
1491 let mut count = 0;
1492 for variant in <crate::connection::Error as AsVariant>::VARIANTS.iter() {
1493 nominal_counters
1494 .push(registry.register_nominal_counter(&INFO[138usize], variant));
1495 count += 1;
1496 }
1497 debug_assert_ne!(count, 0, "field type needs at least one variant");
1498 nominal_counter_offsets.push(offset);
1499 }
1500 }
1501 measures.push(registry.register_measure(&INFO[7usize]));
1502 measures.push(registry.register_measure(&INFO[23usize]));
1503 measures.push(registry.register_measure(&INFO[26usize]));
1504 measures.push(registry.register_measure(&INFO[27usize]));
1505 measures.push(registry.register_measure(&INFO[28usize]));
1506 measures.push(registry.register_measure(&INFO[29usize]));
1507 measures.push(registry.register_measure(&INFO[30usize]));
1508 measures.push(registry.register_measure(&INFO[31usize]));
1509 measures.push(registry.register_measure(&INFO[32usize]));
1510 measures.push(registry.register_measure(&INFO[33usize]));
1511 measures.push(registry.register_measure(&INFO[60usize]));
1512 measures.push(registry.register_measure(&INFO[61usize]));
1513 measures.push(registry.register_measure(&INFO[64usize]));
1514 measures.push(registry.register_measure(&INFO[67usize]));
1515 measures.push(registry.register_measure(&INFO[90usize]));
1516 measures.push(registry.register_measure(&INFO[93usize]));
1517 measures.push(registry.register_measure(&INFO[96usize]));
1518 measures.push(registry.register_measure(&INFO[101usize]));
1519 measures.push(registry.register_measure(&INFO[105usize]));
1520 measures.push(registry.register_measure(&INFO[108usize]));
1521 measures.push(registry.register_measure(&INFO[109usize]));
1522 measures.push(registry.register_measure(&INFO[110usize]));
1523 measures.push(registry.register_measure(&INFO[127usize]));
1524 measures.push(registry.register_measure(&INFO[128usize]));
1525 measures.push(registry.register_measure(&INFO[129usize]));
1526 measures.push(registry.register_measure(&INFO[131usize]));
1527 measures.push(registry.register_measure(&INFO[132usize]));
1528 measures.push(registry.register_measure(&INFO[134usize]));
1529 measures.push(registry.register_measure(&INFO[135usize]));
1530 measures.push(registry.register_measure(&INFO[142usize]));
1531 measures.push(registry.register_measure(&INFO[144usize]));
1532 measures.push(registry.register_measure(&INFO[146usize]));
1533 measures.push(registry.register_measure(&INFO[148usize]));
1534 measures.push(registry.register_measure(&INFO[150usize]));
1535 measures.push(registry.register_measure(&INFO[154usize]));
1536 measures.push(registry.register_measure(&INFO[156usize]));
1537 measures.push(registry.register_measure(&INFO[158usize]));
1538 measures.push(registry.register_measure(&INFO[160usize]));
1539 measures.push(registry.register_measure(&INFO[162usize]));
1540 timers.push(registry.register_timer(&INFO[48usize]));
1541 timers.push(registry.register_timer(&INFO[49usize]));
1542 timers.push(registry.register_timer(&INFO[50usize]));
1543 timers.push(registry.register_timer(&INFO[57usize]));
1544 timers.push(registry.register_timer(&INFO[76usize]));
1545 timers.push(registry.register_timer(&INFO[77usize]));
1546 timers.push(registry.register_timer(&INFO[78usize]));
1547 timers.push(registry.register_timer(&INFO[85usize]));
1548 timers.push(registry.register_timer(&INFO[87usize]));
1549 timers.push(registry.register_timer(&INFO[114usize]));
1550 timers.push(registry.register_timer(&INFO[115usize]));
1551 timers.push(registry.register_timer(&INFO[116usize]));
1552 timers.push(registry.register_timer(&INFO[117usize]));
1553 timers.push(registry.register_timer(&INFO[121usize]));
1554 timers.push(registry.register_timer(&INFO[167usize]));
1555 {
1556 #[allow(unused_imports)]
1557 use api::*;
1558 {
1559 let offset = nominal_timers.len();
1560 let mut count = 0;
1561 for variant in <SlowStartExitCause as AsVariant>::VARIANTS.iter() {
1562 nominal_timers.push(registry.register_nominal_timer(&INFO[104usize], variant));
1563 count += 1;
1564 }
1565 debug_assert_ne!(count, 0, "field type needs at least one variant");
1566 nominal_timer_offsets.push(offset);
1567 }
1568 }
1569 Self {
1570 counters: counters
1571 .try_into()
1572 .unwrap_or_else(|_| panic!("invalid len")),
1573 bool_counters: bool_counters
1574 .try_into()
1575 .unwrap_or_else(|_| panic!("invalid len")),
1576 nominal_counters: nominal_counters.into(),
1577 nominal_counter_offsets: nominal_counter_offsets
1578 .try_into()
1579 .unwrap_or_else(|_| panic!("invalid len")),
1580 measures: measures
1581 .try_into()
1582 .unwrap_or_else(|_| panic!("invalid len")),
1583 gauges: gauges.try_into().unwrap_or_else(|_| panic!("invalid len")),
1584 timers: timers.try_into().unwrap_or_else(|_| panic!("invalid len")),
1585 nominal_timers: nominal_timers.into(),
1586 nominal_timer_offsets: nominal_timer_offsets
1587 .try_into()
1588 .unwrap_or_else(|_| panic!("invalid len")),
1589 registry,
1590 }
1591 }
1592 #[doc = r" Returns all of the registered counters"]
1593 #[inline]
1594 pub fn counters(&self) -> impl Iterator<Item = (&'static Info, &R::Counter)> + '_ {
1595 self.counters
1596 .iter()
1597 .enumerate()
1598 .map(|(idx, entry)| match idx {
1599 0usize => (&INFO[0usize], entry),
1600 1usize => (&INFO[1usize], entry),
1601 2usize => (&INFO[2usize], entry),
1602 3usize => (&INFO[3usize], entry),
1603 4usize => (&INFO[4usize], entry),
1604 5usize => (&INFO[6usize], entry),
1605 6usize => (&INFO[8usize], entry),
1606 7usize => (&INFO[10usize], entry),
1607 8usize => (&INFO[11usize], entry),
1608 9usize => (&INFO[12usize], entry),
1609 10usize => (&INFO[15usize], entry),
1610 11usize => (&INFO[18usize], entry),
1611 12usize => (&INFO[20usize], entry),
1612 13usize => (&INFO[22usize], entry),
1613 14usize => (&INFO[25usize], entry),
1614 15usize => (&INFO[35usize], entry),
1615 16usize => (&INFO[37usize], entry),
1616 17usize => (&INFO[38usize], entry),
1617 18usize => (&INFO[40usize], entry),
1618 19usize => (&INFO[42usize], entry),
1619 20usize => (&INFO[44usize], entry),
1620 21usize => (&INFO[47usize], entry),
1621 22usize => (&INFO[52usize], entry),
1622 23usize => (&INFO[53usize], entry),
1623 24usize => (&INFO[56usize], entry),
1624 25usize => (&INFO[58usize], entry),
1625 26usize => (&INFO[59usize], entry),
1626 27usize => (&INFO[62usize], entry),
1627 28usize => (&INFO[63usize], entry),
1628 29usize => (&INFO[65usize], entry),
1629 30usize => (&INFO[66usize], entry),
1630 31usize => (&INFO[69usize], entry),
1631 32usize => (&INFO[70usize], entry),
1632 33usize => (&INFO[71usize], entry),
1633 34usize => (&INFO[73usize], entry),
1634 35usize => (&INFO[75usize], entry),
1635 36usize => (&INFO[80usize], entry),
1636 37usize => (&INFO[81usize], entry),
1637 38usize => (&INFO[82usize], entry),
1638 39usize => (&INFO[84usize], entry),
1639 40usize => (&INFO[86usize], entry),
1640 41usize => (&INFO[88usize], entry),
1641 42usize => (&INFO[89usize], entry),
1642 43usize => (&INFO[91usize], entry),
1643 44usize => (&INFO[92usize], entry),
1644 45usize => (&INFO[94usize], entry),
1645 46usize => (&INFO[95usize], entry),
1646 47usize => (&INFO[99usize], entry),
1647 48usize => (&INFO[102usize], entry),
1648 49usize => (&INFO[106usize], entry),
1649 50usize => (&INFO[107usize], entry),
1650 51usize => (&INFO[111usize], entry),
1651 52usize => (&INFO[113usize], entry),
1652 53usize => (&INFO[119usize], entry),
1653 54usize => (&INFO[120usize], entry),
1654 55usize => (&INFO[123usize], entry),
1655 56usize => (&INFO[124usize], entry),
1656 57usize => (&INFO[125usize], entry),
1657 58usize => (&INFO[126usize], entry),
1658 59usize => (&INFO[130usize], entry),
1659 60usize => (&INFO[133usize], entry),
1660 61usize => (&INFO[137usize], entry),
1661 62usize => (&INFO[139usize], entry),
1662 63usize => (&INFO[140usize], entry),
1663 64usize => (&INFO[141usize], entry),
1664 65usize => (&INFO[143usize], entry),
1665 66usize => (&INFO[145usize], entry),
1666 67usize => (&INFO[147usize], entry),
1667 68usize => (&INFO[149usize], entry),
1668 69usize => (&INFO[151usize], entry),
1669 70usize => (&INFO[152usize], entry),
1670 71usize => (&INFO[153usize], entry),
1671 72usize => (&INFO[155usize], entry),
1672 73usize => (&INFO[157usize], entry),
1673 74usize => (&INFO[159usize], entry),
1674 75usize => (&INFO[161usize], entry),
1675 76usize => (&INFO[163usize], entry),
1676 77usize => (&INFO[164usize], entry),
1677 78usize => (&INFO[165usize], entry),
1678 79usize => (&INFO[166usize], entry),
1679 80usize => (&INFO[168usize], entry),
1680 _ => unsafe { core::hint::unreachable_unchecked() },
1681 })
1682 }
1683 #[allow(dead_code)]
1684 #[inline(always)]
1685 fn count<T: Metric>(&self, info: usize, id: usize, value: T) {
1686 let info = &INFO[info];
1687 let counter = &self.counters[id];
1688 counter.record(info, value);
1689 }
1690 #[doc = r" Returns all of the registered bool counters"]
1691 #[inline]
1692 pub fn bool_counters(&self) -> impl Iterator<Item = (&'static Info, &R::BoolCounter)> + '_ {
1693 self.bool_counters
1694 .iter()
1695 .enumerate()
1696 .map(|(idx, entry)| match idx {
1697 0usize => (&INFO[24usize], entry),
1698 1usize => (&INFO[34usize], entry),
1699 2usize => (&INFO[98usize], entry),
1700 _ => unsafe { core::hint::unreachable_unchecked() },
1701 })
1702 }
1703 #[allow(dead_code)]
1704 #[inline(always)]
1705 fn count_bool(&self, info: usize, id: usize, value: bool) {
1706 let info = &INFO[info];
1707 let counter = &self.bool_counters[id];
1708 counter.record(info, value);
1709 }
1710 #[doc = r" Returns all of the registered nominal counters"]
1711 #[inline]
1712 pub fn nominal_counters(
1713 &self,
1714 ) -> impl Iterator<Item = (&'static Info, &[R::NominalCounter], &[info::Variant])> + '_ {
1715 #[allow(unused_imports)]
1716 use api::*;
1717 self.nominal_counter_offsets
1718 .iter()
1719 .enumerate()
1720 .map(|(idx, entry)| match idx {
1721 0usize => {
1722 let offset = *entry;
1723 let variants = <PacketHeader as AsVariant>::VARIANTS;
1724 let entries = &self.nominal_counters[offset..offset + variants.len()];
1725 (&INFO[5usize], entries, variants)
1726 }
1727 1usize => {
1728 let offset = *entry;
1729 let variants = <PacketHeader as AsVariant>::VARIANTS;
1730 let entries = &self.nominal_counters[offset..offset + variants.len()];
1731 (&INFO[9usize], entries, variants)
1732 }
1733 2usize => {
1734 let offset = *entry;
1735 let variants = <PacketHeader as AsVariant>::VARIANTS;
1736 let entries = &self.nominal_counters[offset..offset + variants.len()];
1737 (&INFO[13usize], entries, variants)
1738 }
1739 3usize => {
1740 let offset = *entry;
1741 let variants = <Frame as AsVariant>::VARIANTS;
1742 let entries = &self.nominal_counters[offset..offset + variants.len()];
1743 (&INFO[14usize], entries, variants)
1744 }
1745 4usize => {
1746 let offset = *entry;
1747 let variants = <PacketHeader as AsVariant>::VARIANTS;
1748 let entries = &self.nominal_counters[offset..offset + variants.len()];
1749 (&INFO[16usize], entries, variants)
1750 }
1751 5usize => {
1752 let offset = *entry;
1753 let variants = <Frame as AsVariant>::VARIANTS;
1754 let entries = &self.nominal_counters[offset..offset + variants.len()];
1755 (&INFO[17usize], entries, variants)
1756 }
1757 6usize => {
1758 let offset = *entry;
1759 let variants = <PacketHeader as AsVariant>::VARIANTS;
1760 let entries = &self.nominal_counters[offset..offset + variants.len()];
1761 (&INFO[19usize], entries, variants)
1762 }
1763 7usize => {
1764 let offset = *entry;
1765 let variants = <PacketHeader as AsVariant>::VARIANTS;
1766 let entries = &self.nominal_counters[offset..offset + variants.len()];
1767 (&INFO[21usize], entries, variants)
1768 }
1769 8usize => {
1770 let offset = *entry;
1771 let variants = <CongestionSource as AsVariant>::VARIANTS;
1772 let entries = &self.nominal_counters[offset..offset + variants.len()];
1773 (&INFO[36usize], entries, variants)
1774 }
1775 9usize => {
1776 let offset = *entry;
1777 let variants = <PacketHeader as AsVariant>::VARIANTS;
1778 let entries = &self.nominal_counters[offset..offset + variants.len()];
1779 (&INFO[39usize], entries, variants)
1780 }
1781 10usize => {
1782 let offset = *entry;
1783 let variants = <PacketHeader as AsVariant>::VARIANTS;
1784 let entries = &self.nominal_counters[offset..offset + variants.len()];
1785 (&INFO[41usize], entries, variants)
1786 }
1787 11usize => {
1788 let offset = *entry;
1789 let variants = <PacketDropReason as AsVariant>::VARIANTS;
1790 let entries = &self.nominal_counters[offset..offset + variants.len()];
1791 (&INFO[43usize], entries, variants)
1792 }
1793 12usize => {
1794 let offset = *entry;
1795 let variants = <KeyType as AsVariant>::VARIANTS;
1796 let entries = &self.nominal_counters[offset..offset + variants.len()];
1797 (&INFO[45usize], entries, variants)
1798 }
1799 13usize => {
1800 let offset = *entry;
1801 let variants = <CipherSuite as AsVariant>::VARIANTS;
1802 let entries = &self.nominal_counters[offset..offset + variants.len()];
1803 (&INFO[46usize], entries, variants)
1804 }
1805 14usize => {
1806 let offset = *entry;
1807 let variants = <KeySpace as AsVariant>::VARIANTS;
1808 let entries = &self.nominal_counters[offset..offset + variants.len()];
1809 (&INFO[51usize], entries, variants)
1810 }
1811 15usize => {
1812 let offset = *entry;
1813 let variants = <PacketHeader as AsVariant>::VARIANTS;
1814 let entries = &self.nominal_counters[offset..offset + variants.len()];
1815 (&INFO[54usize], entries, variants)
1816 }
1817 16usize => {
1818 let offset = *entry;
1819 let variants = <DuplicatePacketError as AsVariant>::VARIANTS;
1820 let entries = &self.nominal_counters[offset..offset + variants.len()];
1821 (&INFO[55usize], entries, variants)
1822 }
1823 17usize => {
1824 let offset = *entry;
1825 let variants = <DatagramDropReason as AsVariant>::VARIANTS;
1826 let entries = &self.nominal_counters[offset..offset + variants.len()];
1827 (&INFO[68usize], entries, variants)
1828 }
1829 18usize => {
1830 let offset = *entry;
1831 let variants = <EcnState as AsVariant>::VARIANTS;
1832 let entries = &self.nominal_counters[offset..offset + variants.len()];
1833 (&INFO[72usize], entries, variants)
1834 }
1835 19usize => {
1836 let offset = *entry;
1837 let variants = <MigrationDenyReason as AsVariant>::VARIANTS;
1838 let entries = &self.nominal_counters[offset..offset + variants.len()];
1839 (&INFO[74usize], entries, variants)
1840 }
1841 20usize => {
1842 let offset = *entry;
1843 let variants = <HandshakeStatus as AsVariant>::VARIANTS;
1844 let entries = &self.nominal_counters[offset..offset + variants.len()];
1845 (&INFO[79usize], entries, variants)
1846 }
1847 21usize => {
1848 let offset = *entry;
1849 let variants = <PathChallengeStatus as AsVariant>::VARIANTS;
1850 let entries = &self.nominal_counters[offset..offset + variants.len()];
1851 (&INFO[83usize], entries, variants)
1852 }
1853 22usize => {
1854 let offset = *entry;
1855 let variants = <MtuUpdatedCause as AsVariant>::VARIANTS;
1856 let entries = &self.nominal_counters[offset..offset + variants.len()];
1857 (&INFO[97usize], entries, variants)
1858 }
1859 23usize => {
1860 let offset = *entry;
1861 let variants = <PacketHeader as AsVariant>::VARIANTS;
1862 let entries = &self.nominal_counters[offset..offset + variants.len()];
1863 (&INFO[100usize], entries, variants)
1864 }
1865 24usize => {
1866 let offset = *entry;
1867 let variants = <SlowStartExitCause as AsVariant>::VARIANTS;
1868 let entries = &self.nominal_counters[offset..offset + variants.len()];
1869 (&INFO[103usize], entries, variants)
1870 }
1871 25usize => {
1872 let offset = *entry;
1873 let variants = <BbrState as AsVariant>::VARIANTS;
1874 let entries = &self.nominal_counters[offset..offset + variants.len()];
1875 (&INFO[112usize], entries, variants)
1876 }
1877 26usize => {
1878 let offset = *entry;
1879 let variants = <DcState as AsVariant>::VARIANTS;
1880 let entries = &self.nominal_counters[offset..offset + variants.len()];
1881 (&INFO[118usize], entries, variants)
1882 }
1883 27usize => {
1884 let offset = *entry;
1885 let variants = <crate::connection::Error as AsVariant>::VARIANTS;
1886 let entries = &self.nominal_counters[offset..offset + variants.len()];
1887 (&INFO[122usize], entries, variants)
1888 }
1889 28usize => {
1890 let offset = *entry;
1891 let variants = <DatagramDropReason as AsVariant>::VARIANTS;
1892 let entries = &self.nominal_counters[offset..offset + variants.len()];
1893 (&INFO[136usize], entries, variants)
1894 }
1895 29usize => {
1896 let offset = *entry;
1897 let variants = <crate::connection::Error as AsVariant>::VARIANTS;
1898 let entries = &self.nominal_counters[offset..offset + variants.len()];
1899 (&INFO[138usize], entries, variants)
1900 }
1901 _ => unsafe { core::hint::unreachable_unchecked() },
1902 })
1903 }
1904 #[allow(dead_code)]
1905 #[inline(always)]
1906 fn count_nominal<T: AsVariant>(&self, info: usize, id: usize, value: &T) {
1907 let info = &INFO[info];
1908 let idx = self.nominal_counter_offsets[id] + value.variant_idx();
1909 let counter = &self.nominal_counters[idx];
1910 counter.record(info, value.as_variant(), 1usize);
1911 }
1912 #[doc = r" Returns all of the registered measures"]
1913 #[inline]
1914 pub fn measures(&self) -> impl Iterator<Item = (&'static Info, &R::Measure)> + '_ {
1915 self.measures
1916 .iter()
1917 .enumerate()
1918 .map(|(idx, entry)| match idx {
1919 0usize => (&INFO[7usize], entry),
1920 1usize => (&INFO[23usize], entry),
1921 2usize => (&INFO[26usize], entry),
1922 3usize => (&INFO[27usize], entry),
1923 4usize => (&INFO[28usize], entry),
1924 5usize => (&INFO[29usize], entry),
1925 6usize => (&INFO[30usize], entry),
1926 7usize => (&INFO[31usize], entry),
1927 8usize => (&INFO[32usize], entry),
1928 9usize => (&INFO[33usize], entry),
1929 10usize => (&INFO[60usize], entry),
1930 11usize => (&INFO[61usize], entry),
1931 12usize => (&INFO[64usize], entry),
1932 13usize => (&INFO[67usize], entry),
1933 14usize => (&INFO[90usize], entry),
1934 15usize => (&INFO[93usize], entry),
1935 16usize => (&INFO[96usize], entry),
1936 17usize => (&INFO[101usize], entry),
1937 18usize => (&INFO[105usize], entry),
1938 19usize => (&INFO[108usize], entry),
1939 20usize => (&INFO[109usize], entry),
1940 21usize => (&INFO[110usize], entry),
1941 22usize => (&INFO[127usize], entry),
1942 23usize => (&INFO[128usize], entry),
1943 24usize => (&INFO[129usize], entry),
1944 25usize => (&INFO[131usize], entry),
1945 26usize => (&INFO[132usize], entry),
1946 27usize => (&INFO[134usize], entry),
1947 28usize => (&INFO[135usize], entry),
1948 29usize => (&INFO[142usize], entry),
1949 30usize => (&INFO[144usize], entry),
1950 31usize => (&INFO[146usize], entry),
1951 32usize => (&INFO[148usize], entry),
1952 33usize => (&INFO[150usize], entry),
1953 34usize => (&INFO[154usize], entry),
1954 35usize => (&INFO[156usize], entry),
1955 36usize => (&INFO[158usize], entry),
1956 37usize => (&INFO[160usize], entry),
1957 38usize => (&INFO[162usize], entry),
1958 _ => unsafe { core::hint::unreachable_unchecked() },
1959 })
1960 }
1961 #[allow(dead_code)]
1962 #[inline(always)]
1963 fn measure<T: Metric>(&self, info: usize, id: usize, value: T) {
1964 let info = &INFO[info];
1965 let measure = &self.measures[id];
1966 measure.record(info, value);
1967 }
1968 #[doc = r" Returns all of the registered gauges"]
1969 #[inline]
1970 pub fn gauges(&self) -> impl Iterator<Item = (&'static Info, &R::Gauge)> + '_ {
1971 core::iter::empty()
1972 }
1973 #[allow(dead_code)]
1974 #[inline(always)]
1975 fn gauge<T: Metric>(&self, info: usize, id: usize, value: T) {
1976 let info = &INFO[info];
1977 let gauge = &self.gauges[id];
1978 gauge.record(info, value);
1979 }
1980 #[doc = r" Returns all of the registered timers"]
1981 #[inline]
1982 pub fn timers(&self) -> impl Iterator<Item = (&'static Info, &R::Timer)> + '_ {
1983 self.timers
1984 .iter()
1985 .enumerate()
1986 .map(|(idx, entry)| match idx {
1987 0usize => (&INFO[48usize], entry),
1988 1usize => (&INFO[49usize], entry),
1989 2usize => (&INFO[50usize], entry),
1990 3usize => (&INFO[57usize], entry),
1991 4usize => (&INFO[76usize], entry),
1992 5usize => (&INFO[77usize], entry),
1993 6usize => (&INFO[78usize], entry),
1994 7usize => (&INFO[85usize], entry),
1995 8usize => (&INFO[87usize], entry),
1996 9usize => (&INFO[114usize], entry),
1997 10usize => (&INFO[115usize], entry),
1998 11usize => (&INFO[116usize], entry),
1999 12usize => (&INFO[117usize], entry),
2000 13usize => (&INFO[121usize], entry),
2001 14usize => (&INFO[167usize], entry),
2002 _ => unsafe { core::hint::unreachable_unchecked() },
2003 })
2004 }
2005 #[allow(dead_code)]
2006 #[inline(always)]
2007 fn time(&self, info: usize, id: usize, value: core::time::Duration) {
2008 let info = &INFO[info];
2009 let timer = &self.timers[id];
2010 timer.record(info, value);
2011 }
2012 #[allow(dead_code)]
2013 #[inline(always)]
2014 fn time_nominal<T: AsVariant>(
2015 &self,
2016 info: usize,
2017 id: usize,
2018 value: &T,
2019 duration: core::time::Duration,
2020 ) {
2021 let info = &INFO[info];
2022 let idx = self.nominal_timer_offsets[id] + value.variant_idx();
2023 let counter = &self.nominal_timers[idx];
2024 counter.record(info, value.as_variant(), duration);
2025 }
2026}
2027impl<R: Registry> event::Subscriber for Subscriber<R> {
2028 type ConnectionContext = ConnectionContext;
2029 fn create_connection_context(
2030 &mut self,
2031 meta: &api::ConnectionMeta,
2032 _info: &api::ConnectionInfo,
2033 ) -> Self::ConnectionContext {
2034 Self::ConnectionContext {
2035 start_time: meta.timestamp,
2036 }
2037 }
2038 #[inline]
2039 fn on_application_protocol_information(
2040 &mut self,
2041 context: &mut Self::ConnectionContext,
2042 meta: &api::ConnectionMeta,
2043 event: &api::ApplicationProtocolInformation,
2044 ) {
2045 #[allow(unused_imports)]
2046 use api::*;
2047 self.count(0usize, 0usize, 1usize);
2048 let _ = context;
2049 let _ = meta;
2050 let _ = event;
2051 }
2052 #[inline]
2053 fn on_server_name_information(
2054 &mut self,
2055 context: &mut Self::ConnectionContext,
2056 meta: &api::ConnectionMeta,
2057 event: &api::ServerNameInformation,
2058 ) {
2059 #[allow(unused_imports)]
2060 use api::*;
2061 self.count(1usize, 1usize, 1usize);
2062 let _ = context;
2063 let _ = meta;
2064 let _ = event;
2065 }
2066 #[inline]
2067 fn on_key_exchange_group(
2068 &mut self,
2069 context: &mut Self::ConnectionContext,
2070 meta: &api::ConnectionMeta,
2071 event: &api::KeyExchangeGroup,
2072 ) {
2073 #[allow(unused_imports)]
2074 use api::*;
2075 self.count(2usize, 2usize, 1usize);
2076 let _ = context;
2077 let _ = meta;
2078 let _ = event;
2079 }
2080 #[inline]
2081 fn on_packet_skipped(
2082 &mut self,
2083 context: &mut Self::ConnectionContext,
2084 meta: &api::ConnectionMeta,
2085 event: &api::PacketSkipped,
2086 ) {
2087 #[allow(unused_imports)]
2088 use api::*;
2089 self.count(3usize, 3usize, 1usize);
2090 let _ = context;
2091 let _ = meta;
2092 let _ = event;
2093 }
2094 #[inline]
2095 fn on_packet_sent(
2096 &mut self,
2097 context: &mut Self::ConnectionContext,
2098 meta: &api::ConnectionMeta,
2099 event: &api::PacketSent,
2100 ) {
2101 #[allow(unused_imports)]
2102 use api::*;
2103 self.count(4usize, 4usize, 1usize);
2104 self.count_nominal(5usize, 0usize, &event.packet_header);
2105 self.count(6usize, 5usize, event.packet_len);
2106 self.measure(7usize, 0usize, event.packet_len);
2107 let _ = context;
2108 let _ = meta;
2109 let _ = event;
2110 }
2111 #[inline]
2112 fn on_packet_received(
2113 &mut self,
2114 context: &mut Self::ConnectionContext,
2115 meta: &api::ConnectionMeta,
2116 event: &api::PacketReceived,
2117 ) {
2118 #[allow(unused_imports)]
2119 use api::*;
2120 self.count(8usize, 6usize, 1usize);
2121 self.count_nominal(9usize, 1usize, &event.packet_header);
2122 let _ = context;
2123 let _ = meta;
2124 let _ = event;
2125 }
2126 #[inline]
2127 fn on_active_path_updated(
2128 &mut self,
2129 context: &mut Self::ConnectionContext,
2130 meta: &api::ConnectionMeta,
2131 event: &api::ActivePathUpdated,
2132 ) {
2133 #[allow(unused_imports)]
2134 use api::*;
2135 self.count(10usize, 7usize, 1usize);
2136 let _ = context;
2137 let _ = meta;
2138 let _ = event;
2139 }
2140 #[inline]
2141 fn on_path_created(
2142 &mut self,
2143 context: &mut Self::ConnectionContext,
2144 meta: &api::ConnectionMeta,
2145 event: &api::PathCreated,
2146 ) {
2147 #[allow(unused_imports)]
2148 use api::*;
2149 self.count(11usize, 8usize, 1usize);
2150 let _ = context;
2151 let _ = meta;
2152 let _ = event;
2153 }
2154 #[inline]
2155 fn on_frame_sent(
2156 &mut self,
2157 context: &mut Self::ConnectionContext,
2158 meta: &api::ConnectionMeta,
2159 event: &api::FrameSent,
2160 ) {
2161 #[allow(unused_imports)]
2162 use api::*;
2163 self.count(12usize, 9usize, 1usize);
2164 self.count_nominal(13usize, 2usize, &event.packet_header);
2165 self.count_nominal(14usize, 3usize, &event.frame);
2166 let _ = context;
2167 let _ = meta;
2168 let _ = event;
2169 }
2170 #[inline]
2171 fn on_frame_received(
2172 &mut self,
2173 context: &mut Self::ConnectionContext,
2174 meta: &api::ConnectionMeta,
2175 event: &api::FrameReceived,
2176 ) {
2177 #[allow(unused_imports)]
2178 use api::*;
2179 self.count(15usize, 10usize, 1usize);
2180 self.count_nominal(16usize, 4usize, &event.packet_header);
2181 self.count_nominal(17usize, 5usize, &event.frame);
2182 let _ = context;
2183 let _ = meta;
2184 let _ = event;
2185 }
2186 #[inline]
2187 fn on_connection_close_frame_received(
2188 &mut self,
2189 context: &mut Self::ConnectionContext,
2190 meta: &api::ConnectionMeta,
2191 event: &api::ConnectionCloseFrameReceived,
2192 ) {
2193 #[allow(unused_imports)]
2194 use api::*;
2195 self.count(18usize, 11usize, 1usize);
2196 self.count_nominal(19usize, 6usize, &event.packet_header);
2197 let _ = context;
2198 let _ = meta;
2199 let _ = event;
2200 }
2201 #[inline]
2202 fn on_packet_lost(
2203 &mut self,
2204 context: &mut Self::ConnectionContext,
2205 meta: &api::ConnectionMeta,
2206 event: &api::PacketLost,
2207 ) {
2208 #[allow(unused_imports)]
2209 use api::*;
2210 self.count(20usize, 12usize, 1usize);
2211 self.count_nominal(21usize, 7usize, &event.packet_header);
2212 self.count(22usize, 13usize, event.bytes_lost);
2213 self.measure(23usize, 1usize, event.bytes_lost);
2214 self.count_bool(24usize, 0usize, event.is_mtu_probe);
2215 let _ = context;
2216 let _ = meta;
2217 let _ = event;
2218 }
2219 #[inline]
2220 fn on_recovery_metrics(
2221 &mut self,
2222 context: &mut Self::ConnectionContext,
2223 meta: &api::ConnectionMeta,
2224 event: &api::RecoveryMetrics,
2225 ) {
2226 #[allow(unused_imports)]
2227 use api::*;
2228 self.count(25usize, 14usize, 1usize);
2229 self.measure(26usize, 2usize, event.min_rtt);
2230 self.measure(27usize, 3usize, event.smoothed_rtt);
2231 self.measure(28usize, 4usize, event.latest_rtt);
2232 self.measure(29usize, 5usize, event.rtt_variance);
2233 self.measure(30usize, 6usize, event.max_ack_delay);
2234 self.measure(31usize, 7usize, event.pto_count);
2235 self.measure(32usize, 8usize, event.congestion_window);
2236 self.measure(33usize, 9usize, event.bytes_in_flight);
2237 self.count_bool(34usize, 1usize, event.congestion_limited);
2238 let _ = context;
2239 let _ = meta;
2240 let _ = event;
2241 }
2242 #[inline]
2243 fn on_congestion(
2244 &mut self,
2245 context: &mut Self::ConnectionContext,
2246 meta: &api::ConnectionMeta,
2247 event: &api::Congestion,
2248 ) {
2249 #[allow(unused_imports)]
2250 use api::*;
2251 self.count(35usize, 15usize, 1usize);
2252 self.count_nominal(36usize, 8usize, &event.source);
2253 let _ = context;
2254 let _ = meta;
2255 let _ = event;
2256 }
2257 #[inline]
2258 fn on_rx_ack_range_dropped(
2259 &mut self,
2260 context: &mut Self::ConnectionContext,
2261 meta: &api::ConnectionMeta,
2262 event: &api::RxAckRangeDropped,
2263 ) {
2264 #[allow(unused_imports)]
2265 use api::*;
2266 self.count(37usize, 16usize, 1usize);
2267 let _ = context;
2268 let _ = meta;
2269 let _ = event;
2270 }
2271 #[inline]
2272 fn on_ack_range_received(
2273 &mut self,
2274 context: &mut Self::ConnectionContext,
2275 meta: &api::ConnectionMeta,
2276 event: &api::AckRangeReceived,
2277 ) {
2278 #[allow(unused_imports)]
2279 use api::*;
2280 self.count(38usize, 17usize, 1usize);
2281 self.count_nominal(39usize, 9usize, &event.packet_header);
2282 let _ = context;
2283 let _ = meta;
2284 let _ = event;
2285 }
2286 #[inline]
2287 fn on_ack_range_sent(
2288 &mut self,
2289 context: &mut Self::ConnectionContext,
2290 meta: &api::ConnectionMeta,
2291 event: &api::AckRangeSent,
2292 ) {
2293 #[allow(unused_imports)]
2294 use api::*;
2295 self.count(40usize, 18usize, 1usize);
2296 self.count_nominal(41usize, 10usize, &event.packet_header);
2297 let _ = context;
2298 let _ = meta;
2299 let _ = event;
2300 }
2301 #[inline]
2302 fn on_packet_dropped(
2303 &mut self,
2304 context: &mut Self::ConnectionContext,
2305 meta: &api::ConnectionMeta,
2306 event: &api::PacketDropped,
2307 ) {
2308 #[allow(unused_imports)]
2309 use api::*;
2310 self.count(42usize, 19usize, 1usize);
2311 self.count_nominal(43usize, 11usize, &event.reason);
2312 let _ = context;
2313 let _ = meta;
2314 let _ = event;
2315 }
2316 #[inline]
2317 fn on_key_update(
2318 &mut self,
2319 context: &mut Self::ConnectionContext,
2320 meta: &api::ConnectionMeta,
2321 event: &api::KeyUpdate,
2322 ) {
2323 #[allow(unused_imports)]
2324 use api::*;
2325 self.count(44usize, 20usize, 1usize);
2326 self.count_nominal(45usize, 12usize, &event.key_type);
2327 self.count_nominal(46usize, 13usize, &event.cipher_suite);
2328 let _ = context;
2329 let _ = meta;
2330 let _ = event;
2331 }
2332 #[inline]
2333 fn on_key_space_discarded(
2334 &mut self,
2335 context: &mut Self::ConnectionContext,
2336 meta: &api::ConnectionMeta,
2337 event: &api::KeySpaceDiscarded,
2338 ) {
2339 #[allow(unused_imports)]
2340 use api::*;
2341 self.count(47usize, 21usize, 1usize);
2342 {
2343 fn check(evt: &api::KeySpaceDiscarded) -> bool {
2344 matches!(evt.space, KeySpace::Initial { .. })
2345 }
2346 if check(event) {
2347 self.time(
2348 48usize,
2349 0usize,
2350 meta.timestamp.saturating_duration_since(context.start_time),
2351 );
2352 }
2353 }
2354 {
2355 fn check(evt: &api::KeySpaceDiscarded) -> bool {
2356 matches!(evt.space, KeySpace::Handshake { .. })
2357 }
2358 if check(event) {
2359 self.time(
2360 49usize,
2361 1usize,
2362 meta.timestamp.saturating_duration_since(context.start_time),
2363 );
2364 }
2365 }
2366 {
2367 fn check(evt: &api::KeySpaceDiscarded) -> bool {
2368 matches!(evt.space, KeySpace::OneRtt { .. })
2369 }
2370 if check(event) {
2371 self.time(
2372 50usize,
2373 2usize,
2374 meta.timestamp.saturating_duration_since(context.start_time),
2375 );
2376 }
2377 }
2378 self.count_nominal(51usize, 14usize, &event.space);
2379 let _ = context;
2380 let _ = meta;
2381 let _ = event;
2382 }
2383 #[inline]
2384 fn on_connection_started(
2385 &mut self,
2386 context: &mut Self::ConnectionContext,
2387 meta: &api::ConnectionMeta,
2388 event: &api::ConnectionStarted,
2389 ) {
2390 #[allow(unused_imports)]
2391 use api::*;
2392 self.count(52usize, 22usize, 1usize);
2393 let _ = context;
2394 let _ = meta;
2395 let _ = event;
2396 }
2397 #[inline]
2398 fn on_duplicate_packet(
2399 &mut self,
2400 context: &mut Self::ConnectionContext,
2401 meta: &api::ConnectionMeta,
2402 event: &api::DuplicatePacket,
2403 ) {
2404 #[allow(unused_imports)]
2405 use api::*;
2406 self.count(53usize, 23usize, 1usize);
2407 self.count_nominal(54usize, 15usize, &event.packet_header);
2408 self.count_nominal(55usize, 16usize, &event.error);
2409 let _ = context;
2410 let _ = meta;
2411 let _ = event;
2412 }
2413 #[inline]
2414 fn on_transport_parameters_received(
2415 &mut self,
2416 context: &mut Self::ConnectionContext,
2417 meta: &api::ConnectionMeta,
2418 event: &api::TransportParametersReceived,
2419 ) {
2420 #[allow(unused_imports)]
2421 use api::*;
2422 self.count(56usize, 24usize, 1usize);
2423 self.time(
2424 57usize,
2425 3usize,
2426 meta.timestamp.saturating_duration_since(context.start_time),
2427 );
2428 let _ = context;
2429 let _ = meta;
2430 let _ = event;
2431 }
2432 #[inline]
2433 fn on_datagram_sent(
2434 &mut self,
2435 context: &mut Self::ConnectionContext,
2436 meta: &api::ConnectionMeta,
2437 event: &api::DatagramSent,
2438 ) {
2439 #[allow(unused_imports)]
2440 use api::*;
2441 self.count(58usize, 25usize, 1usize);
2442 self.count(59usize, 26usize, event.len);
2443 self.measure(60usize, 10usize, event.len);
2444 self.measure(61usize, 11usize, event.gso_offset);
2445 let _ = context;
2446 let _ = meta;
2447 let _ = event;
2448 }
2449 #[inline]
2450 fn on_datagram_received(
2451 &mut self,
2452 context: &mut Self::ConnectionContext,
2453 meta: &api::ConnectionMeta,
2454 event: &api::DatagramReceived,
2455 ) {
2456 #[allow(unused_imports)]
2457 use api::*;
2458 self.count(62usize, 27usize, 1usize);
2459 self.count(63usize, 28usize, event.len);
2460 self.measure(64usize, 12usize, event.len);
2461 let _ = context;
2462 let _ = meta;
2463 let _ = event;
2464 }
2465 #[inline]
2466 fn on_datagram_dropped(
2467 &mut self,
2468 context: &mut Self::ConnectionContext,
2469 meta: &api::ConnectionMeta,
2470 event: &api::DatagramDropped,
2471 ) {
2472 #[allow(unused_imports)]
2473 use api::*;
2474 self.count(65usize, 29usize, 1usize);
2475 self.count(66usize, 30usize, event.len);
2476 self.measure(67usize, 13usize, event.len);
2477 self.count_nominal(68usize, 17usize, &event.reason);
2478 let _ = context;
2479 let _ = meta;
2480 let _ = event;
2481 }
2482 #[inline]
2483 fn on_handshake_remote_address_change_observed(
2484 &mut self,
2485 context: &mut Self::ConnectionContext,
2486 meta: &api::ConnectionMeta,
2487 event: &api::HandshakeRemoteAddressChangeObserved,
2488 ) {
2489 #[allow(unused_imports)]
2490 use api::*;
2491 self.count(69usize, 31usize, 1usize);
2492 let _ = context;
2493 let _ = meta;
2494 let _ = event;
2495 }
2496 #[inline]
2497 fn on_connection_id_updated(
2498 &mut self,
2499 context: &mut Self::ConnectionContext,
2500 meta: &api::ConnectionMeta,
2501 event: &api::ConnectionIdUpdated,
2502 ) {
2503 #[allow(unused_imports)]
2504 use api::*;
2505 self.count(70usize, 32usize, 1usize);
2506 let _ = context;
2507 let _ = meta;
2508 let _ = event;
2509 }
2510 #[inline]
2511 fn on_ecn_state_changed(
2512 &mut self,
2513 context: &mut Self::ConnectionContext,
2514 meta: &api::ConnectionMeta,
2515 event: &api::EcnStateChanged,
2516 ) {
2517 #[allow(unused_imports)]
2518 use api::*;
2519 self.count(71usize, 33usize, 1usize);
2520 self.count_nominal(72usize, 18usize, &event.state);
2521 let _ = context;
2522 let _ = meta;
2523 let _ = event;
2524 }
2525 #[inline]
2526 fn on_connection_migration_denied(
2527 &mut self,
2528 context: &mut Self::ConnectionContext,
2529 meta: &api::ConnectionMeta,
2530 event: &api::ConnectionMigrationDenied,
2531 ) {
2532 #[allow(unused_imports)]
2533 use api::*;
2534 self.count(73usize, 34usize, 1usize);
2535 self.count_nominal(74usize, 19usize, &event.reason);
2536 let _ = context;
2537 let _ = meta;
2538 let _ = event;
2539 }
2540 #[inline]
2541 fn on_handshake_status_updated(
2542 &mut self,
2543 context: &mut Self::ConnectionContext,
2544 meta: &api::ConnectionMeta,
2545 event: &api::HandshakeStatusUpdated,
2546 ) {
2547 #[allow(unused_imports)]
2548 use api::*;
2549 self.count(75usize, 35usize, 1usize);
2550 {
2551 fn check(evt: &api::HandshakeStatusUpdated) -> bool {
2552 matches!(evt.status, HandshakeStatus::Complete { .. })
2553 }
2554 if check(event) {
2555 self.time(
2556 76usize,
2557 4usize,
2558 meta.timestamp.saturating_duration_since(context.start_time),
2559 );
2560 }
2561 }
2562 {
2563 fn check(evt: &api::HandshakeStatusUpdated) -> bool {
2564 matches!(evt.status, HandshakeStatus::Confirmed { .. })
2565 }
2566 if check(event) {
2567 self.time(
2568 77usize,
2569 5usize,
2570 meta.timestamp.saturating_duration_since(context.start_time),
2571 );
2572 }
2573 }
2574 {
2575 fn check(evt: &api::HandshakeStatusUpdated) -> bool {
2576 matches!(evt.status, HandshakeStatus::HandshakeDoneAcked { .. })
2577 }
2578 if check(event) {
2579 self.time(
2580 78usize,
2581 6usize,
2582 meta.timestamp.saturating_duration_since(context.start_time),
2583 );
2584 }
2585 }
2586 self.count_nominal(79usize, 20usize, &event.status);
2587 let _ = context;
2588 let _ = meta;
2589 let _ = event;
2590 }
2591 #[inline]
2592 fn on_tls_exporter_ready(
2593 &mut self,
2594 context: &mut Self::ConnectionContext,
2595 meta: &api::ConnectionMeta,
2596 event: &api::TlsExporterReady,
2597 ) {
2598 #[allow(unused_imports)]
2599 use api::*;
2600 self.count(80usize, 36usize, 1usize);
2601 let _ = context;
2602 let _ = meta;
2603 let _ = event;
2604 }
2605 #[inline]
2606 fn on_tls_handshake_failed(
2607 &mut self,
2608 context: &mut Self::ConnectionContext,
2609 meta: &api::ConnectionMeta,
2610 event: &api::TlsHandshakeFailed,
2611 ) {
2612 #[allow(unused_imports)]
2613 use api::*;
2614 self.count(81usize, 37usize, 1usize);
2615 let _ = context;
2616 let _ = meta;
2617 let _ = event;
2618 }
2619 #[inline]
2620 fn on_path_challenge_updated(
2621 &mut self,
2622 context: &mut Self::ConnectionContext,
2623 meta: &api::ConnectionMeta,
2624 event: &api::PathChallengeUpdated,
2625 ) {
2626 #[allow(unused_imports)]
2627 use api::*;
2628 self.count(82usize, 38usize, 1usize);
2629 self.count_nominal(83usize, 21usize, &event.path_challenge_status);
2630 let _ = context;
2631 let _ = meta;
2632 let _ = event;
2633 }
2634 #[inline]
2635 fn on_tls_client_hello(
2636 &mut self,
2637 context: &mut Self::ConnectionContext,
2638 meta: &api::ConnectionMeta,
2639 event: &api::TlsClientHello,
2640 ) {
2641 #[allow(unused_imports)]
2642 use api::*;
2643 self.count(84usize, 39usize, 1usize);
2644 self.time(
2645 85usize,
2646 7usize,
2647 meta.timestamp.saturating_duration_since(context.start_time),
2648 );
2649 let _ = context;
2650 let _ = meta;
2651 let _ = event;
2652 }
2653 #[inline]
2654 fn on_tls_server_hello(
2655 &mut self,
2656 context: &mut Self::ConnectionContext,
2657 meta: &api::ConnectionMeta,
2658 event: &api::TlsServerHello,
2659 ) {
2660 #[allow(unused_imports)]
2661 use api::*;
2662 self.count(86usize, 40usize, 1usize);
2663 self.time(
2664 87usize,
2665 8usize,
2666 meta.timestamp.saturating_duration_since(context.start_time),
2667 );
2668 let _ = context;
2669 let _ = meta;
2670 let _ = event;
2671 }
2672 #[inline]
2673 fn on_rx_stream_progress(
2674 &mut self,
2675 context: &mut Self::ConnectionContext,
2676 meta: &api::ConnectionMeta,
2677 event: &api::RxStreamProgress,
2678 ) {
2679 #[allow(unused_imports)]
2680 use api::*;
2681 self.count(88usize, 41usize, 1usize);
2682 self.count(89usize, 42usize, event.bytes);
2683 self.measure(90usize, 14usize, event.bytes);
2684 let _ = context;
2685 let _ = meta;
2686 let _ = event;
2687 }
2688 #[inline]
2689 fn on_tx_stream_progress(
2690 &mut self,
2691 context: &mut Self::ConnectionContext,
2692 meta: &api::ConnectionMeta,
2693 event: &api::TxStreamProgress,
2694 ) {
2695 #[allow(unused_imports)]
2696 use api::*;
2697 self.count(91usize, 43usize, 1usize);
2698 self.count(92usize, 44usize, event.bytes);
2699 self.measure(93usize, 15usize, event.bytes);
2700 let _ = context;
2701 let _ = meta;
2702 let _ = event;
2703 }
2704 #[inline]
2705 fn on_keep_alive_timer_expired(
2706 &mut self,
2707 context: &mut Self::ConnectionContext,
2708 meta: &api::ConnectionMeta,
2709 event: &api::KeepAliveTimerExpired,
2710 ) {
2711 #[allow(unused_imports)]
2712 use api::*;
2713 self.count(94usize, 45usize, 1usize);
2714 let _ = context;
2715 let _ = meta;
2716 let _ = event;
2717 }
2718 #[inline]
2719 fn on_mtu_updated(
2720 &mut self,
2721 context: &mut Self::ConnectionContext,
2722 meta: &api::ConnectionMeta,
2723 event: &api::MtuUpdated,
2724 ) {
2725 #[allow(unused_imports)]
2726 use api::*;
2727 self.count(95usize, 46usize, 1usize);
2728 self.measure(96usize, 16usize, event.mtu);
2729 self.count_nominal(97usize, 22usize, &event.cause);
2730 self.count_bool(98usize, 2usize, event.search_complete);
2731 let _ = context;
2732 let _ = meta;
2733 let _ = event;
2734 }
2735 #[inline]
2736 fn on_mtu_probing_complete_received(
2737 &mut self,
2738 context: &mut Self::ConnectionContext,
2739 meta: &api::ConnectionMeta,
2740 event: &api::MtuProbingCompleteReceived,
2741 ) {
2742 #[allow(unused_imports)]
2743 use api::*;
2744 self.count(99usize, 47usize, 1usize);
2745 self.count_nominal(100usize, 23usize, &event.packet_header);
2746 self.measure(101usize, 17usize, event.mtu);
2747 let _ = context;
2748 let _ = meta;
2749 let _ = event;
2750 }
2751 #[inline]
2752 fn on_slow_start_exited(
2753 &mut self,
2754 context: &mut Self::ConnectionContext,
2755 meta: &api::ConnectionMeta,
2756 event: &api::SlowStartExited,
2757 ) {
2758 #[allow(unused_imports)]
2759 use api::*;
2760 self.count(102usize, 48usize, 1usize);
2761 self.count_nominal(103usize, 24usize, &event.cause);
2762 self.time_nominal(
2763 104usize,
2764 0usize,
2765 &event.cause,
2766 meta.timestamp.saturating_duration_since(context.start_time),
2767 );
2768 self.measure(105usize, 18usize, event.congestion_window);
2769 let _ = context;
2770 let _ = meta;
2771 let _ = event;
2772 }
2773 #[inline]
2774 fn on_delivery_rate_sampled(
2775 &mut self,
2776 context: &mut Self::ConnectionContext,
2777 meta: &api::ConnectionMeta,
2778 event: &api::DeliveryRateSampled,
2779 ) {
2780 #[allow(unused_imports)]
2781 use api::*;
2782 self.count(106usize, 49usize, 1usize);
2783 let _ = context;
2784 let _ = meta;
2785 let _ = event;
2786 }
2787 #[inline]
2788 fn on_pacing_rate_updated(
2789 &mut self,
2790 context: &mut Self::ConnectionContext,
2791 meta: &api::ConnectionMeta,
2792 event: &api::PacingRateUpdated,
2793 ) {
2794 #[allow(unused_imports)]
2795 use api::*;
2796 self.count(107usize, 50usize, 1usize);
2797 self.measure(108usize, 19usize, event.bytes_per_second);
2798 self.measure(109usize, 20usize, event.burst_size);
2799 self.measure(110usize, 21usize, event.pacing_gain);
2800 let _ = context;
2801 let _ = meta;
2802 let _ = event;
2803 }
2804 #[inline]
2805 fn on_bbr_state_changed(
2806 &mut self,
2807 context: &mut Self::ConnectionContext,
2808 meta: &api::ConnectionMeta,
2809 event: &api::BbrStateChanged,
2810 ) {
2811 #[allow(unused_imports)]
2812 use api::*;
2813 self.count(111usize, 51usize, 1usize);
2814 self.count_nominal(112usize, 25usize, &event.state);
2815 let _ = context;
2816 let _ = meta;
2817 let _ = event;
2818 }
2819 #[inline]
2820 fn on_dc_state_changed(
2821 &mut self,
2822 context: &mut Self::ConnectionContext,
2823 meta: &api::ConnectionMeta,
2824 event: &api::DcStateChanged,
2825 ) {
2826 #[allow(unused_imports)]
2827 use api::*;
2828 self.count(113usize, 52usize, 1usize);
2829 {
2830 fn check(evt: &api::DcStateChanged) -> bool {
2831 matches!(evt.state, DcState::VersionNegotiated { .. })
2832 }
2833 if check(event) {
2834 self.time(
2835 114usize,
2836 9usize,
2837 meta.timestamp.saturating_duration_since(context.start_time),
2838 );
2839 }
2840 }
2841 {
2842 fn check(evt: &api::DcStateChanged) -> bool {
2843 matches!(evt.state, DcState::VersionNegotiated { .. })
2844 }
2845 if check(event) {
2846 self.time(
2847 115usize,
2848 10usize,
2849 meta.timestamp.saturating_duration_since(context.start_time),
2850 );
2851 }
2852 }
2853 {
2854 fn check(evt: &api::DcStateChanged) -> bool {
2855 matches!(evt.state, DcState::PathSecretsReady { .. })
2856 }
2857 if check(event) {
2858 self.time(
2859 116usize,
2860 11usize,
2861 meta.timestamp.saturating_duration_since(context.start_time),
2862 );
2863 }
2864 }
2865 {
2866 fn check(evt: &api::DcStateChanged) -> bool {
2867 matches!(evt.state, DcState::Complete { .. })
2868 }
2869 if check(event) {
2870 self.time(
2871 117usize,
2872 12usize,
2873 meta.timestamp.saturating_duration_since(context.start_time),
2874 );
2875 }
2876 }
2877 self.count_nominal(118usize, 26usize, &event.state);
2878 let _ = context;
2879 let _ = meta;
2880 let _ = event;
2881 }
2882 #[inline]
2883 fn on_dc_path_created(
2884 &mut self,
2885 context: &mut Self::ConnectionContext,
2886 meta: &api::ConnectionMeta,
2887 event: &api::DcPathCreated,
2888 ) {
2889 #[allow(unused_imports)]
2890 use api::*;
2891 self.count(119usize, 53usize, 1usize);
2892 let _ = context;
2893 let _ = meta;
2894 let _ = event;
2895 }
2896 #[inline]
2897 fn on_connection_closed(
2898 &mut self,
2899 context: &mut Self::ConnectionContext,
2900 meta: &api::ConnectionMeta,
2901 event: &api::ConnectionClosed,
2902 ) {
2903 #[allow(unused_imports)]
2904 use api::*;
2905 self.count(120usize, 54usize, 1usize);
2906 self.time(
2907 121usize,
2908 13usize,
2909 meta.timestamp.saturating_duration_since(context.start_time),
2910 );
2911 self.count_nominal(122usize, 27usize, &event.error);
2912 let _ = context;
2913 let _ = meta;
2914 let _ = event;
2915 }
2916 #[inline]
2917 fn on_version_information(
2918 &mut self,
2919 meta: &api::EndpointMeta,
2920 event: &api::VersionInformation,
2921 ) {
2922 #[allow(unused_imports)]
2923 use api::*;
2924 self.count(123usize, 55usize, 1usize);
2925 let _ = event;
2926 let _ = meta;
2927 }
2928 #[inline]
2929 fn on_endpoint_packet_sent(
2930 &mut self,
2931 meta: &api::EndpointMeta,
2932 event: &api::EndpointPacketSent,
2933 ) {
2934 #[allow(unused_imports)]
2935 use api::*;
2936 self.count(124usize, 56usize, 1usize);
2937 let _ = event;
2938 let _ = meta;
2939 }
2940 #[inline]
2941 fn on_endpoint_packet_received(
2942 &mut self,
2943 meta: &api::EndpointMeta,
2944 event: &api::EndpointPacketReceived,
2945 ) {
2946 #[allow(unused_imports)]
2947 use api::*;
2948 self.count(125usize, 57usize, 1usize);
2949 let _ = event;
2950 let _ = meta;
2951 }
2952 #[inline]
2953 fn on_endpoint_datagram_sent(
2954 &mut self,
2955 meta: &api::EndpointMeta,
2956 event: &api::EndpointDatagramSent,
2957 ) {
2958 #[allow(unused_imports)]
2959 use api::*;
2960 self.count(126usize, 58usize, 1usize);
2961 self.measure(127usize, 22usize, event.len);
2962 self.measure(128usize, 23usize, event.len);
2963 self.measure(129usize, 24usize, event.gso_offset);
2964 let _ = event;
2965 let _ = meta;
2966 }
2967 #[inline]
2968 fn on_endpoint_datagram_received(
2969 &mut self,
2970 meta: &api::EndpointMeta,
2971 event: &api::EndpointDatagramReceived,
2972 ) {
2973 #[allow(unused_imports)]
2974 use api::*;
2975 self.count(130usize, 59usize, 1usize);
2976 self.measure(131usize, 25usize, event.len);
2977 self.measure(132usize, 26usize, event.len);
2978 let _ = event;
2979 let _ = meta;
2980 }
2981 #[inline]
2982 fn on_endpoint_datagram_dropped(
2983 &mut self,
2984 meta: &api::EndpointMeta,
2985 event: &api::EndpointDatagramDropped,
2986 ) {
2987 #[allow(unused_imports)]
2988 use api::*;
2989 self.count(133usize, 60usize, 1usize);
2990 self.measure(134usize, 27usize, event.len);
2991 self.measure(135usize, 28usize, event.len);
2992 self.count_nominal(136usize, 28usize, &event.reason);
2993 let _ = event;
2994 let _ = meta;
2995 }
2996 #[inline]
2997 fn on_endpoint_connection_attempt_failed(
2998 &mut self,
2999 meta: &api::EndpointMeta,
3000 event: &api::EndpointConnectionAttemptFailed,
3001 ) {
3002 #[allow(unused_imports)]
3003 use api::*;
3004 self.count(137usize, 61usize, 1usize);
3005 self.count_nominal(138usize, 29usize, &event.error);
3006 let _ = event;
3007 let _ = meta;
3008 }
3009 #[inline]
3010 fn on_endpoint_connection_attempt_deduplicated(
3011 &mut self,
3012 meta: &api::EndpointMeta,
3013 event: &api::EndpointConnectionAttemptDeduplicated,
3014 ) {
3015 #[allow(unused_imports)]
3016 use api::*;
3017 self.count(139usize, 62usize, 1usize);
3018 let _ = event;
3019 let _ = meta;
3020 }
3021 #[inline]
3022 fn on_platform_tx(&mut self, meta: &api::EndpointMeta, event: &api::PlatformTx) {
3023 #[allow(unused_imports)]
3024 use api::*;
3025 self.count(140usize, 63usize, 1usize);
3026 self.count(141usize, 64usize, event.count);
3027 self.measure(142usize, 29usize, event.count);
3028 self.count(143usize, 65usize, event.syscalls);
3029 self.measure(144usize, 30usize, event.syscalls);
3030 self.count(145usize, 66usize, event.blocked_syscalls);
3031 self.measure(146usize, 31usize, event.blocked_syscalls);
3032 self.count(147usize, 67usize, event.total_errors);
3033 self.measure(148usize, 32usize, event.total_errors);
3034 self.count(149usize, 68usize, event.dropped_errors);
3035 self.measure(150usize, 33usize, event.dropped_errors);
3036 let _ = event;
3037 let _ = meta;
3038 }
3039 #[inline]
3040 fn on_platform_tx_error(&mut self, meta: &api::EndpointMeta, event: &api::PlatformTxError) {
3041 #[allow(unused_imports)]
3042 use api::*;
3043 self.count(151usize, 69usize, 1usize);
3044 let _ = event;
3045 let _ = meta;
3046 }
3047 #[inline]
3048 fn on_platform_rx(&mut self, meta: &api::EndpointMeta, event: &api::PlatformRx) {
3049 #[allow(unused_imports)]
3050 use api::*;
3051 self.count(152usize, 70usize, 1usize);
3052 self.count(153usize, 71usize, event.count);
3053 self.measure(154usize, 34usize, event.count);
3054 self.count(155usize, 72usize, event.syscalls);
3055 self.measure(156usize, 35usize, event.syscalls);
3056 self.count(157usize, 73usize, event.blocked_syscalls);
3057 self.measure(158usize, 36usize, event.blocked_syscalls);
3058 self.count(159usize, 74usize, event.total_errors);
3059 self.measure(160usize, 37usize, event.total_errors);
3060 self.count(161usize, 75usize, event.dropped_errors);
3061 self.measure(162usize, 38usize, event.dropped_errors);
3062 let _ = event;
3063 let _ = meta;
3064 }
3065 #[inline]
3066 fn on_platform_rx_error(&mut self, meta: &api::EndpointMeta, event: &api::PlatformRxError) {
3067 #[allow(unused_imports)]
3068 use api::*;
3069 self.count(163usize, 76usize, 1usize);
3070 let _ = event;
3071 let _ = meta;
3072 }
3073 #[inline]
3074 fn on_platform_feature_configured(
3075 &mut self,
3076 meta: &api::EndpointMeta,
3077 event: &api::PlatformFeatureConfigured,
3078 ) {
3079 #[allow(unused_imports)]
3080 use api::*;
3081 self.count(164usize, 77usize, 1usize);
3082 let _ = event;
3083 let _ = meta;
3084 }
3085 #[inline]
3086 fn on_platform_event_loop_wakeup(
3087 &mut self,
3088 meta: &api::EndpointMeta,
3089 event: &api::PlatformEventLoopWakeup,
3090 ) {
3091 #[allow(unused_imports)]
3092 use api::*;
3093 self.count(165usize, 78usize, 1usize);
3094 let _ = event;
3095 let _ = meta;
3096 }
3097 #[inline]
3098 fn on_platform_event_loop_sleep(
3099 &mut self,
3100 meta: &api::EndpointMeta,
3101 event: &api::PlatformEventLoopSleep,
3102 ) {
3103 #[allow(unused_imports)]
3104 use api::*;
3105 self.count(166usize, 79usize, 1usize);
3106 self.time(167usize, 14usize, event.processing_duration);
3107 let _ = event;
3108 let _ = meta;
3109 }
3110 #[inline]
3111 fn on_platform_event_loop_started(
3112 &mut self,
3113 meta: &api::EndpointMeta,
3114 event: &api::PlatformEventLoopStarted,
3115 ) {
3116 #[allow(unused_imports)]
3117 use api::*;
3118 self.count(168usize, 80usize, 1usize);
3119 let _ = event;
3120 let _ = meta;
3121 }
3122}