Coverage Report

Created: 2025-11-16 06:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/macros.rs
Line
Count
Source
1
/// Constructs a new span.
2
///
3
/// See [the top-level documentation][lib] for details on the syntax accepted by
4
/// this macro.
5
///
6
/// [lib]: crate#using-the-macros
7
///
8
/// # Examples
9
///
10
/// Creating a new span:
11
/// ```
12
/// # use tracing::{span, Level};
13
/// # fn main() {
14
/// let span = span!(Level::TRACE, "my span");
15
/// let _enter = span.enter();
16
/// // do work inside the span...
17
/// # }
18
/// ```
19
#[macro_export]
20
macro_rules! span {
21
    (target: $target:expr, parent: $parent:expr, $lvl:expr, $name:expr) => {
22
        $crate::span!(target: $target, parent: $parent, $lvl, $name,)
23
    };
24
    (target: $target:expr, parent: $parent:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
25
        {
26
            use $crate::__macro_support::Callsite as _;
27
            static __CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! {
28
                name: $name,
29
                kind: $crate::metadata::Kind::SPAN,
30
                target: $target,
31
                level: $lvl,
32
                fields: $($fields)*
33
            };
34
            let mut interest = $crate::subscriber::Interest::never();
35
            if $crate::level_enabled!($lvl)
36
                && { interest = __CALLSITE.interest(); !interest.is_never() }
37
                && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
38
            {
39
                let meta = __CALLSITE.metadata();
40
                // span with explicit parent
41
                $crate::Span::child_of(
42
                    $parent,
43
                    meta,
44
                    &$crate::valueset!(meta.fields(), $($fields)*),
45
                )
46
            } else {
47
                let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata());
48
                $crate::if_log_enabled! { $lvl, {
49
                    span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
50
                }};
51
                span
52
            }
53
        }
54
    };
55
    (target: $target:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
56
        {
57
            use $crate::__macro_support::Callsite as _;
58
            static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! {
59
                name: $name,
60
                kind: $crate::metadata::Kind::SPAN,
61
                target: $target,
62
                level: $lvl,
63
                fields: $($fields)*
64
            };
65
            let mut interest = $crate::subscriber::Interest::never();
66
            if $crate::level_enabled!($lvl)
67
                && { interest = __CALLSITE.interest(); !interest.is_never() }
68
                && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
69
            {
70
                let meta = __CALLSITE.metadata();
71
                // span with contextual parent
72
                $crate::Span::new(
73
                    meta,
74
                    &$crate::valueset!(meta.fields(), $($fields)*),
75
                )
76
            } else {
77
                let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata());
78
                $crate::if_log_enabled! { $lvl, {
79
                    span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
80
                }};
81
                span
82
            }
83
        }
84
    };
85
    (target: $target:expr, parent: $parent:expr, $lvl:expr, $name:expr) => {
86
        $crate::span!(target: $target, parent: $parent, $lvl, $name,)
87
    };
88
    (parent: $parent:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
89
        $crate::span!(
90
            target: module_path!(),
91
            parent: $parent,
92
            $lvl,
93
            $name,
94
            $($fields)*
95
        )
96
    };
97
    (parent: $parent:expr, $lvl:expr, $name:expr) => {
98
        $crate::span!(
99
            target: module_path!(),
100
            parent: $parent,
101
            $lvl,
102
            $name,
103
        )
104
    };
105
    (target: $target:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
106
        $crate::span!(
107
            target: $target,
108
            $lvl,
109
            $name,
110
            $($fields)*
111
        )
112
    };
113
    (target: $target:expr, $lvl:expr, $name:expr) => {
114
        $crate::span!(target: $target, $lvl, $name,)
115
    };
116
    ($lvl:expr, $name:expr, $($fields:tt)*) => {
117
        $crate::span!(
118
            target: module_path!(),
119
            $lvl,
120
            $name,
121
            $($fields)*
122
        )
123
    };
124
    ($lvl:expr, $name:expr) => {
125
        $crate::span!(
126
            target: module_path!(),
127
            $lvl,
128
            $name,
129
        )
130
    };
131
}
132
133
/// Constructs a span at the trace level.
134
///
135
/// [Fields] and [attributes] are set using the same syntax as the [`span!`]
136
/// macro.
137
///
138
/// See [the top-level documentation][lib] for details on the syntax accepted by
139
/// this macro.
140
///
141
/// [lib]: crate#using-the-macros
142
/// [attributes]: crate#configuring-attributes
143
/// [Fields]: crate#recording-fields
144
/// [`span!`]: crate::span!
145
///
146
/// # Examples
147
///
148
/// ```rust
149
/// # use tracing::{trace_span, span, Level};
150
/// # fn main() {
151
/// trace_span!("my_span");
152
/// // is equivalent to:
153
/// span!(Level::TRACE, "my_span");
154
/// # }
155
/// ```
156
///
157
/// ```rust
158
/// # use tracing::{trace_span, span, Level};
159
/// # fn main() {
160
/// let span = trace_span!("my span");
161
/// span.in_scope(|| {
162
///     // do work inside the span...
163
/// });
164
/// # }
165
/// ```
166
#[macro_export]
167
macro_rules! trace_span {
168
    (target: $target:expr, parent: $parent:expr, $name:expr, $($field:tt)*) => {
169
        $crate::span!(
170
            target: $target,
171
            parent: $parent,
172
            $crate::Level::TRACE,
173
            $name,
174
            $($field)*
175
        )
176
    };
177
    (target: $target:expr, parent: $parent:expr, $name:expr) => {
178
        $crate::trace_span!(target: $target, parent: $parent, $name,)
179
    };
180
    (parent: $parent:expr, $name:expr, $($field:tt)*) => {
181
        $crate::span!(
182
            target: module_path!(),
183
            parent: $parent,
184
            $crate::Level::TRACE,
185
            $name,
186
            $($field)*
187
        )
188
    };
189
    (parent: $parent:expr, $name:expr) => {
190
        $crate::trace_span!(parent: $parent, $name,)
191
    };
192
    (target: $target:expr, $name:expr, $($field:tt)*) => {
193
        $crate::span!(
194
            target: $target,
195
            $crate::Level::TRACE,
196
            $name,
197
            $($field)*
198
        )
199
    };
200
    (target: $target:expr, $name:expr) => {
201
        $crate::trace_span!(target: $target, $name,)
202
    };
203
    ($name:expr, $($field:tt)*) => {
204
        $crate::span!(
205
            target: module_path!(),
206
            $crate::Level::TRACE,
207
            $name,
208
            $($field)*
209
        )
210
    };
211
    ($name:expr) => { $crate::trace_span!($name,) };
212
}
213
214
/// Constructs a span at the debug level.
215
///
216
/// [Fields] and [attributes] are set using the same syntax as the [`span!`]
217
/// macro.
218
///
219
/// See [the top-level documentation][lib] for details on the syntax accepted by
220
/// this macro.
221
///
222
/// [lib]: crate#using-the-macros
223
/// [attributes]: crate#configuring-attributes
224
/// [Fields]: crate#recording-fields
225
/// [`span!`]: crate::span!
226
///
227
/// # Examples
228
///
229
/// ```rust
230
/// # use tracing::{debug_span, span, Level};
231
/// # fn main() {
232
/// debug_span!("my_span");
233
/// // is equivalent to:
234
/// span!(Level::DEBUG, "my_span");
235
/// # }
236
/// ```
237
///
238
/// ```rust
239
/// # use tracing::debug_span;
240
/// # fn main() {
241
/// let span = debug_span!("my span");
242
/// span.in_scope(|| {
243
///     // do work inside the span...
244
/// });
245
/// # }
246
/// ```
247
#[macro_export]
248
macro_rules! debug_span {
249
    (target: $target:expr, parent: $parent:expr, $name:expr, $($field:tt)*) => {
250
        $crate::span!(
251
            target: $target,
252
            parent: $parent,
253
            $crate::Level::DEBUG,
254
            $name,
255
            $($field)*
256
        )
257
    };
258
    (target: $target:expr, parent: $parent:expr, $name:expr) => {
259
        $crate::debug_span!(target: $target, parent: $parent, $name,)
260
    };
261
    (parent: $parent:expr, $name:expr, $($field:tt)*) => {
262
        $crate::span!(
263
            target: module_path!(),
264
            parent: $parent,
265
            $crate::Level::DEBUG,
266
            $name,
267
            $($field)*
268
        )
269
    };
270
    (parent: $parent:expr, $name:expr) => {
271
        $crate::debug_span!(parent: $parent, $name,)
272
    };
273
    (target: $target:expr, $name:expr, $($field:tt)*) => {
274
        $crate::span!(
275
            target: $target,
276
            $crate::Level::DEBUG,
277
            $name,
278
            $($field)*
279
        )
280
    };
281
    (target: $target:expr, $name:expr) => {
282
        $crate::debug_span!(target: $target, $name,)
283
    };
284
    ($name:expr, $($field:tt)*) => {
285
        $crate::span!(
286
            target: module_path!(),
287
            $crate::Level::DEBUG,
288
            $name,
289
            $($field)*
290
        )
291
    };
292
    ($name:expr) => {$crate::debug_span!($name,)};
293
}
294
295
/// Constructs a span at the info level.
296
///
297
/// [Fields] and [attributes] are set using the same syntax as the [`span!`]
298
/// macro.
299
///
300
/// See [the top-level documentation][lib] for details on the syntax accepted by
301
/// this macro.
302
///
303
/// [lib]: crate#using-the-macros
304
/// [attributes]: crate#configuring-attributes
305
/// [Fields]: crate#recording-fields
306
/// [`span!`]: crate::span!
307
///
308
/// # Examples
309
///
310
/// ```rust
311
/// # use tracing::{span, info_span, Level};
312
/// # fn main() {
313
/// info_span!("my_span");
314
/// // is equivalent to:
315
/// span!(Level::INFO, "my_span");
316
/// # }
317
/// ```
318
///
319
/// ```rust
320
/// # use tracing::info_span;
321
/// # fn main() {
322
/// let span = info_span!("my span");
323
/// span.in_scope(|| {
324
///     // do work inside the span...
325
/// });
326
/// # }
327
/// ```
328
#[macro_export]
329
macro_rules! info_span {
330
    (target: $target:expr, parent: $parent:expr, $name:expr, $($field:tt)*) => {
331
        $crate::span!(
332
            target: $target,
333
            parent: $parent,
334
            $crate::Level::INFO,
335
            $name,
336
            $($field)*
337
        )
338
    };
339
    (target: $target:expr, parent: $parent:expr, $name:expr) => {
340
        $crate::info_span!(target: $target, parent: $parent, $name,)
341
    };
342
    (parent: $parent:expr, $name:expr, $($field:tt)*) => {
343
        $crate::span!(
344
            target: module_path!(),
345
            parent: $parent,
346
            $crate::Level::INFO,
347
            $name,
348
            $($field)*
349
        )
350
    };
351
    (parent: $parent:expr, $name:expr) => {
352
        $crate::info_span!(parent: $parent, $name,)
353
    };
354
    (target: $target:expr, $name:expr, $($field:tt)*) => {
355
        $crate::span!(
356
            target: $target,
357
            $crate::Level::INFO,
358
            $name,
359
            $($field)*
360
        )
361
    };
362
    (target: $target:expr, $name:expr) => {
363
        $crate::info_span!(target: $target, $name,)
364
    };
365
    ($name:expr, $($field:tt)*) => {
366
        $crate::span!(
367
            target: module_path!(),
368
            $crate::Level::INFO,
369
            $name,
370
            $($field)*
371
        )
372
    };
373
    ($name:expr) => {$crate::info_span!($name,)};
374
}
375
376
/// Constructs a span at the warn level.
377
///
378
/// [Fields] and [attributes] are set using the same syntax as the [`span!`]
379
/// macro.
380
///
381
/// See [the top-level documentation][lib] for details on the syntax accepted by
382
/// this macro.
383
///
384
/// [lib]: crate#using-the-macros
385
/// [attributes]: crate#configuring-attributes
386
/// [Fields]: crate#recording-fields
387
/// [`span!`]: crate::span!
388
///
389
/// # Examples
390
///
391
/// ```rust
392
/// # use tracing::{warn_span, span, Level};
393
/// # fn main() {
394
/// warn_span!("my_span");
395
/// // is equivalent to:
396
/// span!(Level::WARN, "my_span");
397
/// # }
398
/// ```
399
///
400
/// ```rust
401
/// use tracing::warn_span;
402
/// # fn main() {
403
/// let span = warn_span!("my span");
404
/// span.in_scope(|| {
405
///     // do work inside the span...
406
/// });
407
/// # }
408
/// ```
409
#[macro_export]
410
macro_rules! warn_span {
411
    (target: $target:expr, parent: $parent:expr, $name:expr, $($field:tt)*) => {
412
        $crate::span!(
413
            target: $target,
414
            parent: $parent,
415
            $crate::Level::WARN,
416
            $name,
417
            $($field)*
418
        )
419
    };
420
    (target: $target:expr, parent: $parent:expr, $name:expr) => {
421
        $crate::warn_span!(target: $target, parent: $parent, $name,)
422
    };
423
    (parent: $parent:expr, $name:expr, $($field:tt)*) => {
424
        $crate::span!(
425
            target: module_path!(),
426
            parent: $parent,
427
            $crate::Level::WARN,
428
            $name,
429
            $($field)*
430
        )
431
    };
432
    (parent: $parent:expr, $name:expr) => {
433
        $crate::warn_span!(parent: $parent, $name,)
434
    };
435
    (target: $target:expr, $name:expr, $($field:tt)*) => {
436
        $crate::span!(
437
            target: $target,
438
            $crate::Level::WARN,
439
            $name,
440
            $($field)*
441
        )
442
    };
443
    (target: $target:expr, $name:expr) => {
444
        $crate::warn_span!(target: $target, $name,)
445
    };
446
    ($name:expr, $($field:tt)*) => {
447
        $crate::span!(
448
            target: module_path!(),
449
            $crate::Level::WARN,
450
            $name,
451
            $($field)*
452
        )
453
    };
454
    ($name:expr) => {$crate::warn_span!($name,)};
455
}
456
/// Constructs a span at the error level.
457
///
458
/// [Fields] and [attributes] are set using the same syntax as the [`span!`]
459
/// macro.
460
///
461
/// See [the top-level documentation][lib] for details on the syntax accepted by
462
/// this macro.
463
///
464
/// [lib]: crate#using-the-macros
465
/// [attributes]: crate#configuring-attributes
466
/// [Fields]: crate#recording-fields
467
/// [`span!`]: crate::span!
468
///
469
/// # Examples
470
///
471
/// ```rust
472
/// # use tracing::{span, error_span, Level};
473
/// # fn main() {
474
/// error_span!("my_span");
475
/// // is equivalent to:
476
/// span!(Level::ERROR, "my_span");
477
/// # }
478
/// ```
479
///
480
/// ```rust
481
/// # use tracing::error_span;
482
/// # fn main() {
483
/// let span = error_span!("my span");
484
/// span.in_scope(|| {
485
///     // do work inside the span...
486
/// });
487
/// # }
488
/// ```
489
#[macro_export]
490
macro_rules! error_span {
491
    (target: $target:expr, parent: $parent:expr, $name:expr, $($field:tt)*) => {
492
        $crate::span!(
493
            target: $target,
494
            parent: $parent,
495
            $crate::Level::ERROR,
496
            $name,
497
            $($field)*
498
        )
499
    };
500
    (target: $target:expr, parent: $parent:expr, $name:expr) => {
501
        $crate::error_span!(target: $target, parent: $parent, $name,)
502
    };
503
    (parent: $parent:expr, $name:expr, $($field:tt)*) => {
504
        $crate::span!(
505
            target: module_path!(),
506
            parent: $parent,
507
            $crate::Level::ERROR,
508
            $name,
509
            $($field)*
510
        )
511
    };
512
    (parent: $parent:expr, $name:expr) => {
513
        $crate::error_span!(parent: $parent, $name,)
514
    };
515
    (target: $target:expr, $name:expr, $($field:tt)*) => {
516
        $crate::span!(
517
            target: $target,
518
            $crate::Level::ERROR,
519
            $name,
520
            $($field)*
521
        )
522
    };
523
    (target: $target:expr, $name:expr) => {
524
        $crate::error_span!(target: $target, $name,)
525
    };
526
    ($name:expr, $($field:tt)*) => {
527
        $crate::span!(
528
            target: module_path!(),
529
            $crate::Level::ERROR,
530
            $name,
531
            $($field)*
532
        )
533
    };
534
    ($name:expr) => {$crate::error_span!($name,)};
535
}
536
537
/// Constructs a new `Event`.
538
///
539
/// The event macro is invoked with a `Level` and up to 32 key-value fields.
540
/// Optionally, a format string and arguments may follow the fields; this will
541
/// be used to construct an implicit field named "message".
542
///
543
/// See [the top-level documentation][lib] for details on the syntax accepted by
544
/// this macro.
545
///
546
/// [lib]: crate#using-the-macros
547
///
548
/// # Examples
549
///
550
/// ```rust
551
/// use tracing::{event, Level};
552
///
553
/// # fn main() {
554
/// let data = (42, "forty-two");
555
/// let private_data = "private";
556
/// let error = "a bad error";
557
///
558
/// event!(Level::ERROR, %error, "Received error");
559
/// event!(
560
///     target: "app_events",
561
///     Level::WARN,
562
///     private_data,
563
///     ?data,
564
///     "App warning: {}",
565
///     error
566
/// );
567
/// event!(name: "answer", Level::INFO, the_answer = data.0);
568
/// event!(Level::INFO, the_answer = data.0);
569
/// # }
570
/// ```
571
///
572
// /// Note that *unlike `span!`*, `event!` requires a value for all fields. As
573
// /// events are recorded immediately when the macro is invoked, there is no
574
// /// opportunity for fields to be recorded later. A trailing comma on the final
575
// /// field is valid.
576
// ///
577
// /// For example, the following does not compile:
578
// /// ```rust,compile_fail
579
// /// # use tracing::{Level, event};
580
// /// # fn main() {
581
// /// event!(Level::INFO, foo = 5, bad_field, bar = "hello")
582
// /// #}
583
// /// ```
584
#[macro_export]
585
macro_rules! event {
586
    // Name / target / parent.
587
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $lvl:expr, { $($fields:tt)* } )=> ({
588
        use $crate::__macro_support::Callsite as _;
589
        static __CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! {
590
            name: $name,
591
            kind: $crate::metadata::Kind::EVENT,
592
            target: $target,
593
            level: $lvl,
594
            fields: $($fields)*
595
        };
596
597
        let enabled = $crate::level_enabled!($lvl) && {
598
            let interest = __CALLSITE.interest();
599
            !interest.is_never() && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
600
        };
601
        if enabled {
602
            (|value_set: $crate::field::ValueSet| {
603
                $crate::__tracing_log!(
604
                    $lvl,
605
                    __CALLSITE,
606
                    &value_set
607
                );
608
                let meta = __CALLSITE.metadata();
609
                // event with explicit parent
610
                $crate::Event::child_of(
611
                    $parent,
612
                    meta,
613
                    &value_set
614
                );
615
            })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
616
        } else {
617
            $crate::__tracing_log!(
618
                $lvl,
619
                __CALLSITE,
620
                &$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)
621
            );
622
        }
623
    });
624
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
625
        $crate::event!(
626
            name: $name,
627
            target: $target,
628
            parent: $parent,
629
            $lvl,
630
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
631
        )
632
    );
633
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $lvl:expr, $($k:ident).+ = $($fields:tt)* ) => (
634
        $crate::event!(name: $name, target: $target, parent: $parent, $lvl, { $($k).+ = $($fields)* })
635
    );
636
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $lvl:expr, $($arg:tt)+) => (
637
        $crate::event!(name: $name, target: $target, parent: $parent, $lvl, { $($arg)+ })
638
    );
639
640
    // Name / target.
641
    (name: $name:expr, target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ({
642
        use $crate::__macro_support::Callsite as _;
643
        static __CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! {
644
            name: $name,
645
            kind: $crate::metadata::Kind::EVENT,
646
            target: $target,
647
            level: $lvl,
648
            fields: $($fields)*
649
        };
650
        let enabled = $crate::level_enabled!($lvl) && {
651
            let interest = __CALLSITE.interest();
652
            !interest.is_never() && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
653
        };
654
        if enabled {
655
            (|value_set: $crate::field::ValueSet| {
656
                let meta = __CALLSITE.metadata();
657
                // event with contextual parent
658
                $crate::Event::dispatch(
659
                    meta,
660
                    &value_set
661
                );
662
                $crate::__tracing_log!(
663
                    $lvl,
664
                    __CALLSITE,
665
                    &value_set
666
                );
667
            })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
668
        } else {
669
            $crate::__tracing_log!(
670
                $lvl,
671
                __CALLSITE,
672
                &$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)
673
            );
674
        }
675
    });
676
    (name: $name:expr, target: $target:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
677
        $crate::event!(
678
            name: $name,
679
            target: $target,
680
            $lvl,
681
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
682
        )
683
    );
684
    (name: $name:expr, target: $target:expr, $lvl:expr, $($k:ident).+ = $($fields:tt)* ) => (
685
        $crate::event!(name: $name, target: $target, $lvl, { $($k).+ = $($fields)* })
686
    );
687
    (name: $name:expr, target: $target:expr, $lvl:expr, $($arg:tt)+) => (
688
        $crate::event!(name: $name, target: $target, $lvl, { $($arg)+ })
689
    );
690
691
    // Target / parent.
692
    (target: $target:expr, parent: $parent:expr, $lvl:expr, { $($fields:tt)* } )=> ({
693
        use $crate::__macro_support::Callsite as _;
694
        static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! {
695
            name: $crate::__macro_support::concat!(
696
                "event ",
697
                $crate::__macro_support::file!(),
698
                ":",
699
                $crate::__macro_support::line!()
700
            ),
701
            kind: $crate::metadata::Kind::EVENT,
702
            target: $target,
703
            level: $lvl,
704
            fields: $($fields)*
705
        };
706
707
        let enabled = $crate::level_enabled!($lvl) && {
708
            let interest = __CALLSITE.interest();
709
            !interest.is_never() && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
710
        };
711
        if enabled {
712
0
            (|value_set: $crate::field::ValueSet| {
713
                $crate::__tracing_log!(
714
                    $lvl,
715
                    __CALLSITE,
716
                    &value_set
717
                );
718
0
                let meta = __CALLSITE.metadata();
719
                // event with explicit parent
720
0
                $crate::Event::child_of(
721
                    $parent,
722
0
                    meta,
723
0
                    &value_set
Unexecuted instantiation: ztunnel::dns::server::access_log::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::metrics::ConnectionResult>::record_internal::<ztunnel::proxy::Error>::{closure#4}
Unexecuted instantiation: <ztunnel::proxy::metrics::ConnectionResult>::record_internal::<ztunnel::proxy::Error>::{closure#1}
Unexecuted instantiation: ztunnel::proxy::metrics::log_early_deny::<ztunnel::proxy::Error>::{closure#0}
Unexecuted instantiation: ztunnel::proxy::metrics::log_early_deny::<ztunnel::tls::lib::TlsError>::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::metrics::ConnectionResult>::new::{closure#2}
724
                );
725
            })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
726
        } else {
727
            $crate::__tracing_log!(
728
                $lvl,
729
                __CALLSITE,
730
                &$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)
731
            );
732
        }
733
    });
734
    (target: $target:expr, parent: $parent:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
735
        $crate::event!(
736
            target: $target,
737
            parent: $parent,
738
            $lvl,
739
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
740
        )
741
    );
742
    (target: $target:expr, parent: $parent:expr, $lvl:expr, $($k:ident).+ = $($fields:tt)* ) => (
743
        $crate::event!(target: $target, parent: $parent, $lvl, { $($k).+ = $($fields)* })
744
    );
745
    (target: $target:expr, parent: $parent:expr, $lvl:expr, $($arg:tt)+) => (
746
        $crate::event!(target: $target, parent: $parent, $lvl, { $($arg)+ })
747
    );
748
749
    // Name / parent.
750
    (name: $name:expr, parent: $parent:expr, $lvl:expr, { $($fields:tt)* } )=> ({
751
        use $crate::__macro_support::Callsite as _;
752
        static __CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! {
753
            name: $name,
754
            kind: $crate::metadata::Kind::EVENT,
755
            target: module_path!(),
756
            level: $lvl,
757
            fields: $($fields)*
758
        };
759
760
        let enabled = $crate::level_enabled!($lvl) && {
761
            let interest = __CALLSITE.interest();
762
            !interest.is_never() && __CALLSITE.is_enabled(interest)
763
        };
764
        if enabled {
765
            (|value_set: $crate::field::ValueSet| {
766
                $crate::__tracing_log!(
767
                    $lvl,
768
                    __CALLSITE,
769
                    &value_set
770
                );
771
                let meta = __CALLSITE.metadata();
772
                // event with explicit parent
773
                $crate::Event::child_of(
774
                    $parent,
775
                    meta,
776
                    &value_set
777
                );
778
            })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
779
        } else {
780
            $crate::__tracing_log!(
781
                $lvl,
782
                __CALLSITE,
783
                &$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)
784
            );
785
        }
786
    });
787
    (name: $name:expr, parent: $parent:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
788
        $crate::event!(
789
            name: $name,
790
            parent: $parent,
791
            $lvl,
792
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
793
        )
794
    );
795
    (name: $name:expr, parent: $parent:expr, $lvl:expr, $($k:ident).+ = $($fields:tt)* ) => (
796
        $crate::event!(name: $name, parent: $parent, $lvl, { $($k).+ = $($fields)* })
797
    );
798
    (name: $name:expr, parent: $parent:expr, $lvl:expr, $($arg:tt)+) => (
799
        $crate::event!(name: $name, parent: $parent, $lvl, { $($arg)+ })
800
    );
801
802
    // Name.
803
    (name: $name:expr, $lvl:expr, { $($fields:tt)* } )=> ({
804
        use $crate::__macro_support::Callsite as _;
805
        static __CALLSITE: $crate::__macro_support::MacroCallsite = $crate::callsite2! {
806
            name: $name,
807
            kind: $crate::metadata::Kind::EVENT,
808
            target: module_path!(),
809
            level: $lvl,
810
            fields: $($fields)*
811
        };
812
        let enabled = $crate::level_enabled!($lvl) && {
813
            let interest = __CALLSITE.interest();
814
            !interest.is_never() && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
815
        };
816
        if enabled {
817
            (|value_set: $crate::field::ValueSet| {
818
                let meta = __CALLSITE.metadata();
819
                // event with contextual parent
820
                $crate::Event::dispatch(
821
                    meta,
822
                    &value_set
823
                );
824
                $crate::__tracing_log!(
825
                    $lvl,
826
                    __CALLSITE,
827
                    &value_set
828
                );
829
            })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
830
        } else {
831
            $crate::__tracing_log!(
832
                $lvl,
833
                __CALLSITE,
834
                &$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)
835
            );
836
        }
837
    });
838
    (name: $name:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
839
        $crate::event!(
840
            name: $name,
841
            $lvl,
842
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
843
        )
844
    );
845
    (name: $name:expr, $lvl:expr, $($k:ident).+ = $($fields:tt)* ) => (
846
        $crate::event!(name: $name, $lvl, { $($k).+ = $($fields)* })
847
    );
848
    (name: $name:expr, $lvl:expr, $($arg:tt)+ ) => (
849
        $crate::event!(name: $name, $lvl, { $($arg)+ })
850
    );
851
852
    // Target.
853
    (target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ({
854
        use $crate::__macro_support::Callsite as _;
855
        static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! {
856
            name: $crate::__macro_support::concat!(
857
                "event ",
858
                $crate::__macro_support::file!(),
859
                ":",
860
                $crate::__macro_support::line!()
861
            ),
862
            kind: $crate::metadata::Kind::EVENT,
863
            target: $target,
864
            level: $lvl,
865
            fields: $($fields)*
866
        };
867
        let enabled = $crate::level_enabled!($lvl) && {
868
            let interest = __CALLSITE.interest();
869
            !interest.is_never() && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
870
        };
871
        if enabled {
872
0
            (|value_set: $crate::field::ValueSet| {
873
0
                let meta = __CALLSITE.metadata();
874
                // event with contextual parent
875
0
                $crate::Event::dispatch(
876
0
                    meta,
877
0
                    &value_set
Unexecuted instantiation: ztunnel::copy::ignore_io_errors::<u64>::{closure#0}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::copy::TcpStreamSplitter, ztunnel::copy::TcpStreamSplitter>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::copy::TcpStreamSplitter, ztunnel::proxy::h2::H2Stream>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::proxy::h2::H2Stream, ztunnel::copy::TcpStreamSplitter>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::copy::TcpStreamSplitter, ztunnel::copy::TcpStreamSplitter>::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::copy::TcpStreamSplitter, ztunnel::copy::TcpStreamSplitter>::{closure#0}::{closure#1}::{closure#2}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::copy::TcpStreamSplitter, ztunnel::proxy::h2::H2Stream>::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::copy::TcpStreamSplitter, ztunnel::proxy::h2::H2Stream>::{closure#0}::{closure#1}::{closure#2}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::proxy::h2::H2Stream, ztunnel::copy::TcpStreamSplitter>::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::copy::copy_bidirectional::<ztunnel::proxy::h2::H2Stream, ztunnel::copy::TcpStreamSplitter>::{closure#0}::{closure#1}::{closure#2}
Unexecuted instantiation: ztunnel::copy::ignore_shutdown_errors::{closure#0}
Unexecuted instantiation: ztunnel::app::build_with_cert::{closure#0}::{closure#3}::{closure#1}
Unexecuted instantiation: ztunnel::app::new_data_plane_pool::{closure#0}::{closure#1}::{closure#0}
Unexecuted instantiation: ztunnel::app::new_data_plane_pool::{closure#0}::{closure#1}::{closure#1}
Unexecuted instantiation: ztunnel::app::build_with_cert::{closure#0}::{closure#7}
Unexecuted instantiation: ztunnel::app::build_with_cert::{closure#0}::{closure#8}
Unexecuted instantiation: ztunnel::app::build_with_cert::{closure#0}::{closure#9}
Unexecuted instantiation: ztunnel::app::build_with_cert::{closure#0}::{closure#10}
Unexecuted instantiation: ztunnel::app::init_inpod_proxy_mgr::{closure#1}::{closure#0}
Unexecuted instantiation: ztunnel::tls::certificate::identities::{closure#1}::{closure#0}
Unexecuted instantiation: ztunnel::tls::certificate::identity_from_connection::{closure#2}::{closure#0}
Unexecuted instantiation: ztunnel::tls::certificate::identity_from_connection::{closure#1}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::admin::WorkloadManagerAdminHandler>::proxy_down::{closure#0}
Unexecuted instantiation: <ztunnel::tls::certificate::WorkloadCertificate>::new::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::proxy_inbound_plaintext::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::proxy_inbound_plaintext::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound_passthrough::InboundPassthrough>::new::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::config::construct_config::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::config::construct_config::{closure#6}
Unexecuted instantiation: ztunnel::hyper_util::tls_server::<_>::{closure#1}::{closure#0}
Unexecuted instantiation: ztunnel::hyper_util::tls_server::<_>::{closure#1}::{closure#1}
Unexecuted instantiation: ztunnel::signal::imp::shutdown::{closure#0}::{closure#1}::{closure#0}
Unexecuted instantiation: ztunnel::signal::imp::watch_signal::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::signal::imp::shutdown::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_resolver::lookup::LookupEither<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>> as hickory_proto::xfer::dns_handle::DnsHandle>::lookup::{closure#0}
Unexecuted instantiation: <hickory_resolver::lookup::LookupEither<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>> as hickory_proto::xfer::dns_handle::DnsHandle>::lookup::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_reset::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_reset::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_reset::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_reset::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<bytes::bytes::Bytes>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<bytes::bytes::Bytes>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_eof::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_eof::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<bytes::bytes::Bytes>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Actions>::reset_on_recv_stream_err::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Actions>::reset_on_recv_stream_err::<bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<bytes::bytes::Bytes>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<bytes::bytes::Bytes>::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Streams<bytes::bytes::Bytes, h2::server::Peer>>::next_incoming::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Streams<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>, h2::client::Peer>>::poll_pending_open::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Streams<bytes::bytes::Bytes, h2::client::Peer>>::poll_pending_open::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::outbound::Outbound>::new::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::outbound::OutboundConnection>::build_request_through_gateway::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run_internal::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManager>::run::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManagerProcessor>::process::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManagerProcessor>::process::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManagerProcessor>::process::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManagerProcessor>::process::{closure#0}::{closure#8}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyNetworkHandler>::connect::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyNetworkHandler>::connect::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyReadinessHandler>::mark_ready::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyReadinessHandler>::not_ready::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::workloadmanager::WorkloadProxyManagerProcessor>::schedule_retry::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::UdpStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as core::future::future::Future>::poll::{closure#3}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as core::future::future::Future>::poll::{closure#4}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as core::future::future::Future>::poll::{closure#3}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as core::future::future::Future>::poll::{closure#4}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <h2::frame::ping::Ping>::encode::<bytes::bytes_mut::BytesMut>::{closure#0}
Unexecuted instantiation: <hickory_server::server::response_handler::ResponseHandle as hickory_server::server::response_handler::ResponseHandler>::send_response::<alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::response_handler::ResponseHandle as hickory_server::server::response_handler::ResponseHandler>::send_response::<alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_server::server::response_handler::ResponseHandle as hickory_server::server::response_handler::ResponseHandler>::send_response::<ztunnel::dns::resolver::RecordIter, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::response_handler::ResponseHandle as hickory_server::server::response_handler::ResponseHandler>::send_response::<ztunnel::dns::resolver::RecordIter, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::proxy::h2::server::serve_connection::<<ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#0}, tracing::instrument::Instrumented<<ztunnel::proxy::inbound::Inbound>::serve_connect::{closure#0}>>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::proxy::h2::server::serve_connection::<<ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#0}, tracing::instrument::Instrumented<<ztunnel::proxy::inbound::Inbound>::serve_connect::{closure#0}>>::{closure#0}::{closure#4}
Unexecuted instantiation: <hickory_proto::xfer::BufDnsRequestStreamHandle as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::BufDnsRequestStreamHandle as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#6}>::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#6}>::{closure#2}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#6}>::{closure#3}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#6}>::{closure#1}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#7}>::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#7}>::{closure#2}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#7}>::{closure#3}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::StringMatch, <ztunnel::rbac::Authorization>::matches::{closure#7}>::{closure#1}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::ServiceAccountMatch, <ztunnel::rbac::Authorization>::matches::{closure#5}>::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::ServiceAccountMatch, <ztunnel::rbac::Authorization>::matches::{closure#5}>::{closure#2}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::ServiceAccountMatch, <ztunnel::rbac::Authorization>::matches::{closure#5}>::{closure#3}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ztunnel::rbac::ServiceAccountMatch, <ztunnel::rbac::Authorization>::matches::{closure#5}>::{closure#1}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#2}>::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#2}>::{closure#2}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#2}>::{closure#3}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#2}>::{closure#1}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#3}>::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#3}>::{closure#2}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#3}>::{closure#3}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<ipnet::ipnet::IpNet, <ztunnel::rbac::Authorization>::matches::{closure#3}>::{closure#1}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<u16, <ztunnel::rbac::Authorization>::matches::{closure#4}>::{closure#0}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<u16, <ztunnel::rbac::Authorization>::matches::{closure#4}>::{closure#2}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<u16, <ztunnel::rbac::Authorization>::matches::{closure#4}>::{closure#3}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches_internal::<u16, <ztunnel::rbac::Authorization>::matches::{closure#4}>::{closure#1}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches::{closure#8}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches::{closure#9}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches::{closure#10}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches::{closure#11}
Unexecuted instantiation: <ztunnel::rbac::Authorization>::matches::{closure#12}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#1}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#1}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::flush::{closure#1}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::flush::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::flush::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::flush::{closure#1}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::buffer::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::buffer::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::buffer::{closure#3}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::buffer::{closure#4}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::buffer::{closure#5}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>>::buffer::{closure#1}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::buffer::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::buffer::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::buffer::{closure#3}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::buffer::{closure#4}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::buffer::{closure#5}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>>::buffer::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#2}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#4}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#5}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::connect_to::{closure#0}::{closure#1}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::one_connection_for::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::send_request::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::connection_for::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::try_send_request::{closure#0}::{closure#6}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<hyper_rustls::connector::HttpsConnector<hyper_util::client::legacy::connect::http::HttpConnector>, tonic::body::Body>>::request::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::clear_queue::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::clear_queue::<bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::reclaim_frame_inner::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::reclaim_frame_inner::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::reclaim_frame_inner::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::reclaim_frame_inner::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#4}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#5}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#6}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#7}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#8}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#9}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<bytes::bytes::Bytes>::{closure#4}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<bytes::bytes::Bytes>::{closure#5}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<bytes::bytes::Bytes>::{closure#6}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<bytes::bytes::Bytes>::{closure#7}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<bytes::bytes::Bytes>::{closure#8}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<bytes::bytes::Bytes>::{closure#9}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::send_data::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::send_data::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::send_data::<bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::send_data::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::get_existing_cert_info::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::get_existing_cert_info::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::get_existing_cert_info::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::run::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::run::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::run::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::identity::manager::Worker>::run::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::proxyfactory::ProxyFactory>::create_ztunnel_self_proxy_listener::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxyfactory::ProxyFactory>::new::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::socks5::Socks5>::new::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::proxy::socks5::send_error::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::proxy::socks5::handle_socks_connection::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::proxy::socks5::handle_socks_connection::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::telemetry::fmt_layer::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::telemetry::set_level::{closure#2}
Unexecuted instantiation: ztunnel::telemetry::set_level::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::pool::ConnSpawner>::new_pool_conn::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::pool::ConnSpawner>::new_pool_conn::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#8}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#9}
Unexecuted instantiation: <ztunnel::proxy::pool::WorkloadHBONEPool>::connect::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::maybe_checkin_conn::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::maybe_checkin_conn::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::start_conn_if_win_writelock::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::start_conn_if_win_writelock::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::start_conn_if_win_writelock::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::start_conn_if_win_writelock::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::start_conn_if_win_writelock::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::start_conn_if_win_writelock::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::checkout_conn_under_writelock::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState>::maybe_checkin_conn::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::pool::PoolState as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::Upstream>::service_sans::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::Upstream>::workload_and_services_san::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::ProxyState>::load_balance::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::ProxyState>::load_balance::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::state::ProxyState>::load_balance::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::assert_rbac::{closure#0}::{closure#8}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_address::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_hostname::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_upstream::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_on_demand::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_on_demand::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::finalize_upstream::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::wait_for_workload::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::wait_for_workload::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::wait_for_workload::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_workload_by_uid::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::resolve_on_demand_dns::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::resolve_on_demand_dns::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::resolve_on_demand_dns::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::fetch_workload_by_address::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::state::DemandProxyState>::pick_workload_destination_or_resolve::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::state::ProxyState>::load_balance::{closure#6}
Unexecuted instantiation: <ztunnel::state::ProxyState>::find_upstream_from_service::{closure#0}
Unexecuted instantiation: <ztunnel::state::ProxyState>::find_upstream_from_service::{closure#1}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::send_stream_window_updates::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::send_stream_window_updates::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::send_stream_window_updates::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::send_stream_window_updates::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::dns::server::Store as ztunnel::dns::resolver::Resolver>::lookup::{closure#0}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::dns::server::Server>::new::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::dns::server::Store as ztunnel::dns::resolver::Resolver>::lookup::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::dns::server::Store as ztunnel::dns::resolver::Resolver>::lookup::{closure#0}::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::dns::server::Store as ztunnel::dns::resolver::Resolver>::lookup::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::dns::server::Server>::new::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::dns::server::Server>::run::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::dns::server::Server>::run::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::dns::server::Server>::run::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::dns::server::Store>::get_addresses::{closure#1}::{closure#1}
Unexecuted instantiation: <ztunnel::dns::server::Store>::find_server::{closure#3}
Unexecuted instantiation: <ztunnel::dns::server::Store>::find_server::{closure#4}
Unexecuted instantiation: ztunnel::inpod::protocol::maybe_get_fd::<nix::sys::socket::CmsgIterator>::{closure#0}
Unexecuted instantiation: ztunnel::inpod::protocol::maybe_get_fd::<nix::sys::socket::CmsgIterator>::{closure#1}
Unexecuted instantiation: <ztunnel::inpod::protocol::WorkloadStreamProcessor>::read_message::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::inpod::protocol::validate_ns::{closure#0}
Unexecuted instantiation: ztunnel::inpod::protocol::validate_ns::{closure#1}
Unexecuted instantiation: <ztunnel::hyper_util::Server<std::sync::poison::mutex::Mutex<prometheus_client::registry::Registry>>>::spawn::<<ztunnel::metrics::server::Server>::spawn::{closure#0}, <ztunnel::metrics::server::Server>::spawn::{closure#0}::{closure#0}>::{closure#1}
Unexecuted instantiation: <ztunnel::hyper_util::Server<ztunnel::admin::State>>::spawn::<<ztunnel::admin::Service>::spawn::{closure#0}, <ztunnel::admin::Service>::spawn::{closure#0}::{closure#0}>::{closure#1}
Unexecuted instantiation: <ztunnel::hyper_util::Server<ztunnel::readiness::Ready>>::spawn::<<ztunnel::readiness::server::Server>::spawn::{closure#0}, <ztunnel::readiness::server::Server>::spawn::{closure#0}::{closure#0}>::{closure#1}
Unexecuted instantiation: <ztunnel::hyper_util::Server<std::sync::poison::mutex::Mutex<prometheus_client::registry::Registry>>>::spawn::<<ztunnel::metrics::server::Server>::spawn::{closure#0}, <ztunnel::metrics::server::Server>::spawn::{closure#0}::{closure#0}>::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::hyper_util::Server<ztunnel::admin::State>>::spawn::<<ztunnel::admin::Service>::spawn::{closure#0}, <ztunnel::admin::Service>::spawn::{closure#0}::{closure#0}>::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::hyper_util::Server<ztunnel::readiness::Ready>>::spawn::<<ztunnel::readiness::server::Server>::spawn::{closure#0}, <ztunnel::readiness::server::Server>::spawn::{closure#0}::{closure#0}>::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::proxy::write_proxy_protocol::<(core::net::socket_addr::SocketAddr, core::net::socket_addr::SocketAddr)>::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::proxy::freebind_connect::{closure#0}::connect::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::proxy::freebind_connect::{closure#0}::connect::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::proxy::freebind_connect::{closure#0}::connect::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::proxy::freebind_connect::{closure#0}::connect::{closure#0}::{closure#5}
Unexecuted instantiation: ztunnel::proxy::freebind_connect::{closure#0}::connect::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::DefaultSocketFactory>::setup_socket::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::DefaultSocketFactory>::setup_socket::{closure#1}
Unexecuted instantiation: <ztunnel::state::service::ServiceStore>::insert_endpoint::{closure#0}
Unexecuted instantiation: <ztunnel::state::service::ServiceStore>::insert_endpoint::{closure#1}
Unexecuted instantiation: <ztunnel::state::service::ServiceStore>::insert_internal::{closure#1}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdater as ztunnel::xds::client::Handler<ztunnel::xds::types::istio::workload::Workload>>::handle::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdater as ztunnel::xds::client::Handler<ztunnel::xds::types::istio::workload::Address>>::handle::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::insert_service::{closure#0}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::insert_workload::{closure#0}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::remove_internal::{closure#0}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::remove_internal::{closure#2}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::remove_internal::{closure#1}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::insert_authorization::{closure#0}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::insert_authorization::{closure#1}
Unexecuted instantiation: <ztunnel::xds::ProxyStateUpdateMutator>::remove_authorization::{closure#0}
Unexecuted instantiation: <ztunnel::xds::LocalClient>::load_config::{closure#2}
Unexecuted instantiation: <ztunnel::xds::LocalClient>::load_config::{closure#3}
Unexecuted instantiation: <ztunnel::xds::LocalClient>::load_config::{closure#1}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<bytes::bytes::Bytes>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<bytes::bytes::Bytes>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_headers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_headers::<bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_trailers::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<bytes::bytes::Bytes>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::recv_stream_window_update::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::recv_stream_window_update::<bytes::bytes::Bytes>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<bytes::bytes::Bytes>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<bytes::bytes::Bytes>::{closure#0}::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<bytes::bytes::Bytes>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::add_workload_inner::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::process_msg::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::process_msg::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::process_msg::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::process_msg::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::process_msg::{closure#0}::{closure#8}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::process_msg::{closure#0}::{closure#9}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::retry_pending::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::retry_pending::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::inpod::statemanager::WorkloadProxyManagerState>::add_workload_inner::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::identity::caclient::CaClient>::fetch_certificate::{closure#0}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::identity::caclient::CaClient>::fetch_certificate::{closure#0}::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::identity::caclient::CaClient>::fetch_certificate::{closure#0}::{closure#0}::{closure#4}
Unexecuted instantiation: <hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::connection_manager::ConnectionManager>::assert_rbac::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::connection_manager::ConnectionManager>::close::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::connection_manager::PolicyWatcher>::run::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::connection_manager::ConnectionGuard as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#4}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#5}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#6}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#7}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<tokio::net::udp::UdpSocket>::{closure#0}::{closure#8}
Unexecuted instantiation: <hickory_proto::udp::udp_client_stream::UdpClientStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#2}
Unexecuted instantiation: <hickory_proto::udp::udp_client_stream::UdpClientStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#1}
Unexecuted instantiation: <hickory_proto::udp::udp_client_stream::UdpClientStream<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#2}
Unexecuted instantiation: <hickory_proto::udp::udp_client_stream::UdpClientStream<ztunnel::dns::forwarder::RuntimeProviderAdaptor> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#1}
Unexecuted instantiation: <hickory_resolver::resolver::ResolverBuilder<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>>>::build::{closure#0}
Unexecuted instantiation: <hickory_resolver::resolver::ResolverBuilder<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>::build::{closure#0}
Unexecuted instantiation: <hickory_resolver::resolver::Resolver<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>>>::build_names::{closure#2}
Unexecuted instantiation: <hickory_resolver::resolver::Resolver<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>>>::build_names::{closure#1}
Unexecuted instantiation: <hickory_resolver::resolver::Resolver<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>::build_names::{closure#2}
Unexecuted instantiation: <hickory_resolver::resolver::Resolver<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>::build_names::{closure#1}
Unexecuted instantiation: <h2::proto::connection::Connection<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::client::Peer>>::poll::{closure#0}
Unexecuted instantiation: <h2::proto::connection::Connection<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::client::Peer>>::poll::{closure#1}
Unexecuted instantiation: <h2::proto::connection::Connection<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::client::Peer>>::poll::{closure#0}
Unexecuted instantiation: <h2::proto::connection::Connection<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::client::Peer>>::poll::{closure#1}
Unexecuted instantiation: <h2::proto::connection::Connection<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::server::Peer>>::poll::{closure#0}
Unexecuted instantiation: <h2::proto::connection::Connection<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::server::Peer>>::poll::{closure#1}
Unexecuted instantiation: <h2::proto::connection::Connection<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::client::Peer, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::poll::{closure#0}
Unexecuted instantiation: <h2::proto::connection::Connection<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::client::Peer, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::poll::{closure#1}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#0}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#2}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#3}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#4}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#5}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#6}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#7}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#8}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#9}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::recv_frame::{closure#1}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::handle_poll2_result::{closure#2}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::handle_poll2_result::{closure#3}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::handle_poll2_result::{closure#4}
Unexecuted instantiation: <h2::proto::connection::DynConnection<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>::handle_poll2_result::{closure#1}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#0}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#2}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#3}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#4}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#5}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#6}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#7}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#8}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#9}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::recv_frame::{closure#1}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::handle_poll2_result::{closure#2}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::handle_poll2_result::{closure#3}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::handle_poll2_result::{closure#4}
Unexecuted instantiation: <h2::proto::connection::DynConnection>::handle_poll2_result::{closure#1}
Unexecuted instantiation: hickory_proto::op::message::emit_message_parts::<hickory_server::authority::message_request::QueriesEmitAndCount, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, core::iter::adapters::chain::Chain<alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}
Unexecuted instantiation: hickory_proto::op::message::emit_message_parts::<hickory_server::authority::message_request::QueriesEmitAndCount, ztunnel::dns::resolver::RecordIter, core::iter::adapters::chain::Chain<core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}
Unexecuted instantiation: <ztunnel::metrics::Deferred<<ztunnel::dns::server::Store>::forward::{closure#0}::{closure#0}, ztunnel::dns::metrics::Metrics> as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::h2::DropCounter as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::h2::DropCounter as core::ops::drop::Drop>::drop::{closure#1}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound_passthrough::InboundPassthrough>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::socks5::Socks5>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::drain::run_with_drain::<<ztunnel::proxy::outbound::Outbound>::run::{closure#0}::{closure#0}, ()>::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::build_inbound_request::<http::request::Parts>::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::run::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::serve_connect::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::serve_connect::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::serve_connect::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::serve_connect::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::proxy::inbound::Inbound>::new::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::inbound::InboundCertProvider as ztunnel::tls::lib::ServerCertProvider>::fetch_cert::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::tls::control::control_plane_client_config::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::tls::control::AltHostnameVerifier as rustls::verify::ServerCertVerifier>::verify_server_cert::{closure#0}
Unexecuted instantiation: <ztunnel::tls::control::AltHostnameVerifier as rustls::verify::ServerCertVerifier>::verify_server_cert::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::server::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::server::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>, h2::client::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>, h2::client::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::client::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::server::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>, bytes::bytes::Bytes, h2::server::Peer>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>, h2::client::Peer>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>, h2::client::Peer>::{closure#1}
Unexecuted instantiation: <ztunnel::readiness::BlockReady as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: <ztunnel::readiness::BlockReady as core::ops::drop::Drop>::drop::{closure#1}
Unexecuted instantiation: <hickory_server::server::timeout_stream::TimeoutStream<hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_server::server::timeout_stream::TimeoutStream<hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <h2::frame::go_away::GoAway>::encode::<bytes::bytes_mut::BytesMut>::{closure#0}
Unexecuted instantiation: <h2::frame::window_update::WindowUpdate>::encode::<bytes::bytes_mut::BytesMut>::{closure#0}
Unexecuted instantiation: <ztunnel::cert_fetcher::CertFetcherImpl>::new::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::cert_fetcher::CertFetcherImpl>::new::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::cert_fetcher::CertFetcherImpl as ztunnel::cert_fetcher::CertFetcher>::clear_cert::{closure#0}
Unexecuted instantiation: <ztunnel::cert_fetcher::CertFetcherImpl as ztunnel::cert_fetcher::CertFetcher>::prefetch_cert::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push_front::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push_front::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push_front::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push_front::{closure#1}
Unexecuted instantiation: <ztunnel::metrics::process::ProcessMetrics>::encode_max_fds::{closure#0}
Unexecuted instantiation: <ztunnel::metrics::process::ProcessMetrics>::encode_open_fds::{closure#0}
Unexecuted instantiation: <ztunnel::tls::workload::IdentityVerifier>::verify_full_san::{closure#3}
Unexecuted instantiation: <ztunnel::tls::workload::IdentityVerifier>::verify_full_san::{closure#4}
Unexecuted instantiation: <ztunnel::tls::workload::TrustDomainVerifier>::verify_trust_domain::{closure#5}
Unexecuted instantiation: <ztunnel::metrics::process::ProcessMetrics as prometheus_client::collector::Collector>::encode::{closure#0}
Unexecuted instantiation: <ztunnel::metrics::process::ProcessMetrics as prometheus_client::collector::Collector>::encode::{closure#1}
Unexecuted instantiation: <ztunnel::inpod::config::InPodSocketPortReuseFactory as ztunnel::proxy::SocketFactory>::tcp_bind::{closure#1}
Unexecuted instantiation: <ztunnel::tls::workload::IdentityVerifier as rustls::verify::ServerCertVerifier>::verify_server_cert::{closure#0}
Unexecuted instantiation: <h2::server::Connection<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>>::poll_accept::{closure#0}
Unexecuted instantiation: <h2::server::ReadPreface<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::server::Handshake<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::server::Handshake<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <h2::server::Handshake<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>> as core::future::future::Future>::poll::{closure#3}
Unexecuted instantiation: <h2::server::Handshake<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <ztunnel::state::workload::WorkloadStore>::remove::{closure#0}
Unexecuted instantiation: h2::client::bind_connection::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>>::{closure#0}::{closure#0}
Unexecuted instantiation: h2::client::bind_connection::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>>::{closure#0}::{closure#1}
Unexecuted instantiation: h2::client::bind_connection::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>>::{closure#0}::{closure#0}
Unexecuted instantiation: h2::client::bind_connection::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>>::{closure#0}::{closure#1}
Unexecuted instantiation: h2::client::bind_connection::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>::{closure#0}::{closure#0}
Unexecuted instantiation: h2::client::bind_connection::<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>>::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::client::Connection<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::client::Connection<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::client::Connection<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h2::SendBuf<bytes::bytes::Bytes>> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, bytes::bytes::Bytes>::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}::{closure#2}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}::{closure#3}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}::{closure#4}
Unexecuted instantiation: ztunnel::proxy::h2::client::drive_connection::<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, bytes::bytes::Bytes>::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::proxy::h2::client::H2ConnectClient>::send_request::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::h2::client::H2ConnectClient>::ready_to_use::{closure#0}
Unexecuted instantiation: <ztunnel::proxy::h2::client::H2ConnectClient>::will_be_at_max_streamcount::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::clear_expired::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::clear_expired::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Checkout<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::checkout::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Pool<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::connecting::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Pool<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::reuse::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdlePopper<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::pop::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdlePopper<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::pop::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::put::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::put::{closure#2}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::put::{closure#3}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::put::{closure#4}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::put::{closure#5}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::put::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Checkout<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)>>::checkout::{closure#2}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Pooled<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)> as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Checkout<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)> as core::ops::drop::Drop>::drop::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdleTask<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdleTask<hyper_util::client::legacy::client::PoolClient<tonic::body::Body>, (http::uri::scheme::Scheme, http::uri::authority::Authority)> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: ztunnel::admin::handle_config_dump::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::admin::handle_config_dump::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::admin::handle_server_shutdown::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::admin::handle_server_shutdown::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::socket::Listener>::accept::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::socket::Listener>::accept::{closure#0}::{closure#1}
Unexecuted instantiation: ztunnel::socket::orig_dst_addr::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::HttpConnector>::call_async::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::ConnectingTcpRemote>::connect::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::ConnectingTcpRemote>::connect::{closure#0}::{closure#2}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::ConnectingTcpRemote>::connect::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_internal::{closure#0}::{closure#3}::{closure#0}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_internal::{closure#0}::{closure#3}::{closure#2}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_internal::{closure#0}::{closure#3}::{closure#1}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_internal::{closure#0}::{closure#1}::{closure#0}
Unexecuted instantiation: <ztunnel::xds::client::Config>::json_to_value::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_internal::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_internal::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::handle_demand_event::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::handle_stream_event::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::handle_stream_event::{closure#0}::{closure#5}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::handle_stream_event::{closure#0}::{closure#6}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::handle_stream_event::{closure#0}::{closure#7}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_loop::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_loop::{closure#0}::{closure#2}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_loop::{closure#0}::{closure#3}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_loop::{closure#0}::{closure#4}
Unexecuted instantiation: <ztunnel::xds::client::AdsClient>::run_loop::{closure#0}::{closure#1}
Unexecuted instantiation: <ztunnel::xds::client::State>::notify_on_demand::{closure#0}
Unexecuted instantiation: <ztunnel::xds::client::State>::notify_on_demand::{closure#1}
Unexecuted instantiation: <ztunnel::xds::client::Config>::node::{closure#1}
Unexecuted instantiation: <ztunnel::xds::client::HandlerWrapper<ztunnel::xds::types::istio::security::Authorization> as ztunnel::xds::client::RawHandler>::handle::{closure#5}
Unexecuted instantiation: <ztunnel::xds::client::HandlerWrapper<ztunnel::xds::types::istio::workload::Address> as ztunnel::xds::client::RawHandler>::handle::{closure#5}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<hickory_server::server::response_handler::ResponseHandle, ztunnel::dns::handler::Handler>::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<hickory_server::server::response_handler::ResponseHandle, ztunnel::dns::handler::Handler>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle> as hickory_server::server::response_handler::ResponseHandler>::send_response::<alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle> as hickory_server::server::response_handler::ResponseHandler>::send_response::<alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle> as hickory_server::server::response_handler::ResponseHandler>::send_response::<alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle> as hickory_server::server::response_handler::ResponseHandler>::send_response::<ztunnel::dns::resolver::RecordIter, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle> as hickory_server::server::response_handler::ResponseHandler>::send_response::<ztunnel::dns::resolver::RecordIter, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle> as hickory_server::server::response_handler::ResponseHandler>::send_response::<ztunnel::dns::resolver::RecordIter, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}::{closure#1}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<hickory_server::server::response_handler::ResponseHandle, ztunnel::dns::handler::Handler>::{closure#0}::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<hickory_server::server::response_handler::ResponseHandle, ztunnel::dns::handler::Handler>::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<hickory_server::server::response_handler::ResponseHandle, ztunnel::dns::handler::Handler>::{closure#0}::{closure#1}::{closure#0}::{closure#0}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<hickory_server::server::response_handler::ResponseHandle, ztunnel::dns::handler::Handler>::{closure#0}::{closure#1}::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_listener::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_listener::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_socket::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_socket::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_socket::{closure#0}::{closure#4}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_listener::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_listener::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_server::server::server_future::block_until_done::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_socket::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<ztunnel::dns::handler::Handler>>::register_listener::{closure#1}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<ztunnel::proxy::h2::TokioH2Stream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::client::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<tokio_rustls::server::TlsStream<tokio::net::tcp::stream::TcpStream>, h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<h2::codec::framed_write::FramedWrite<hyper::common::io::compat::Compat<hyper_rustls::stream::MaybeHttpsStream<hyper_util::rt::tokio::TokioIo<tokio::net::tcp::stream::TcpStream>>>, h2::proto::streams::prioritize::Prioritized<hyper::proto::h2::SendBuf<bytes::bytes::Bytes>>>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <h2::frame::reset::Reset>::encode::<bytes::bytes_mut::BytesMut>::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>>>::inner_send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>::inner_send::<hickory_proto::xfer::dns_request::DnsRequest>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>>>::connected_mut_client::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<hickory_resolver::name_server::connection_provider::GenericConnector<ztunnel::dns::forwarder::RuntimeProviderAdaptor>>>::connected_mut_client::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>::connected_mut_client::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>::connected_mut_client::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#3}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#4}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#5}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#6}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#7}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#8}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#9}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#10}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#11}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#12}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>> as futures_core::stream::Stream>::poll_next::{closure#13}
Unexecuted instantiation: <hickory_resolver::lookup_ip::LookupContext<hickory_resolver::lookup::LookupEither<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>>::ipv4_and_ipv6::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::lookup_ip::LookupContext<hickory_resolver::lookup::LookupEither<hickory_resolver::name_server::connection_provider::GenericConnector<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>>>>::ipv4_and_ipv6::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::udp::udp_client_stream::UdpClientStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::udp::udp_client_stream::UdpClientStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::udp::udp_client_stream::UdpClientStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::udp::udp_client_stream::UdpClientStream<ztunnel::dns::forwarder::RuntimeProviderAdaptor>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::udp::udp_client_stream::UdpClientStream<ztunnel::dns::forwarder::RuntimeProviderAdaptor>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<hickory_proto::udp::udp_client_stream::UdpClientStream<ztunnel::dns::forwarder::RuntimeProviderAdaptor>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeConnectInner<hickory_proto::xfer::dns_multiplexer::DnsMultiplexerConnect<core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = core::result::Result<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>, hickory_proto::error::ProtoError>> + core::marker::Send>>, hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>, hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeConnectInner<hickory_proto::udp::udp_client_stream::UdpClientConnect<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>, hickory_proto::udp::udp_client_stream::UdpClientStream<hickory_proto::runtime::tokio_runtime::TokioRuntimeProvider>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeConnectInner<hickory_proto::udp::udp_client_stream::UdpClientConnect<ztunnel::dns::forwarder::RuntimeProviderAdaptor>, hickory_proto::udp::udp_client_stream::UdpClientStream<ztunnel::dns::forwarder::RuntimeProviderAdaptor>, hickory_proto::runtime::TokioTime> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>>::drop_cancelled::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>>>::stream_closed_close_all::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#3}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<hickory_proto::tcp::tcp_client_stream::TcpClientStream<hickory_proto::runtime::iocompat::AsyncIoTokioAsStd<tokio::net::tcp::stream::TcpStream>>> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: ztunnel::dns::handler::send_response::<hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>, alloc::boxed::Box<core::option::IntoIter<&hickory_proto::rr::resource::Record>>>::{closure#0}::{closure#0}
Unexecuted instantiation: ztunnel::dns::handler::send_response::<hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle>, ztunnel::dns::resolver::RecordIter, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>, core::option::Iter<hickory_proto::rr::resource::Record>>::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::dns::handler::Handler as hickory_server::server::request_handler::RequestHandler>::handle_request::<hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle>>::{closure#0}::{closure#0}
Unexecuted instantiation: <ztunnel::dns::handler::Handler as hickory_server::server::request_handler::RequestHandler>::handle_request::<hickory_server::server::server_future::ReportingResponseHandler<hickory_server::server::response_handler::ResponseHandle>>::{closure#0}::{closure#1}
Unexecuted instantiation: <tower::hedge::rotating_histogram::RotatingHistogram>::maybe_rotate::{closure#0}
Unexecuted instantiation: <tower::hedge::rotating_histogram::RotatingHistogram>::maybe_rotate::{closure#1}
Unexecuted instantiation: <tower::hedge::rotating_histogram::RotatingHistogram>::rotate::{closure#0}
Unexecuted instantiation: <alloc::sync::Arc<std::sync::poison::mutex::Mutex<tower::hedge::rotating_histogram::RotatingHistogram>> as tower::hedge::latency::Record>::record::{closure#0}::{closure#0}
Unexecuted instantiation: <tower::load::peak_ewma::RttEstimate>::update::{closure#0}
Unexecuted instantiation: <tower::load::peak_ewma::RttEstimate>::update::{closure#1}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _>>::poll_next_msg::{closure#0}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _>>::poll_next_msg::{closure#2}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _>>::poll_next_msg::{closure#3}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _>>::poll_next_msg::{closure#4}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _>>::poll_next_msg::{closure#1}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _>>::p2c_ready_index::{closure#0}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _>>::promote_pending_to_ready::{closure#0}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _>>::promote_pending_to_ready::{closure#1}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _>>::update_pending_from_discover::{closure#2}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _>>::update_pending_from_discover::{closure#3}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _>>::update_pending_from_discover::{closure#1}
Unexecuted instantiation: <tower::ready_cache::cache::ReadyCache<_, _, _>>::poll_pending::{closure#0}
Unexecuted instantiation: <tower::ready_cache::cache::ReadyCache<_, _, _>>::poll_pending::{closure#1}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#0}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#2}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#3}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#4}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#5}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#6}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#7}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#8}
Unexecuted instantiation: <tower::reconnect::Reconnect<_, _> as tower_service::Service<_>>::poll_ready::{closure#1}
Unexecuted instantiation: <tower::load::peak_ewma::PeakEwma<_, _> as tower::load::Load>::load::{closure#0}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _> as core::future::future::Future>::poll::{closure#3}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _> as core::future::future::Future>::poll::{closure#4}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _> as core::future::future::Future>::poll::{closure#5}
Unexecuted instantiation: <tower::buffer::worker::Worker<_, _> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <tower::buffer::service::Buffer<_, _> as tower_service::Service<_>>::call::{closure#0}
Unexecuted instantiation: <tower::buffer::service::Buffer<_, _> as tower_service::Service<_>>::call::{closure#1}
Unexecuted instantiation: <tower::limit::rate::service::RateLimit<_> as tower_service::Service<_>>::poll_ready::{closure#0}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _> as tower_service::Service<_>>::poll_ready::{closure#0}
Unexecuted instantiation: <tower::balance::p2c::service::Balance<_, _> as tower_service::Service<_>>::poll_ready::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::ResponseFuture>::error_version::{closure#0}
Unexecuted instantiation: hyper_util::client::legacy::client::authority_form::{closure#0}
Unexecuted instantiation: hyper_util::client::legacy::client::extract_domain::{closure#0}
Unexecuted instantiation: hyper_util::client::legacy::connect::http::get_host_port::{closure#0}
Unexecuted instantiation: hyper_util::client::legacy::connect::http::connect::{closure#2}
Unexecuted instantiation: hyper_util::client::legacy::connect::http::connect::{closure#3}
Unexecuted instantiation: hyper_util::client::legacy::connect::http::connect::{closure#4}
Unexecuted instantiation: hyper_util::client::legacy::connect::http::connect::{closure#5}
Unexecuted instantiation: hyper_util::client::legacy::connect::http::connect::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::connect::Connected>::poison::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#2}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#4}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::connect_to::{closure#0}::{closure#1}::{closure#0}::{closure#5}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::clear_expired::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::clear_expired::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::connect_to::{closure#0}::{closure#1}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::one_connection_for::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::HttpConnector<_>>::call_async::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::send_request::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::connection_for::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::try_send_request::{closure#0}::{closure#6}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::ConnectingTcpRemote>::connect::{closure#0}::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::ConnectingTcpRemote>::connect::{closure#0}::{closure#2}
Unexecuted instantiation: <hyper_util::client::legacy::connect::http::ConnectingTcpRemote>::connect::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Checkout<_, _>>::checkout::{closure#0}::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Pool<_, _>>::connecting::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Pool<_, _>>::reuse::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdlePopper<_, _>>::pop::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdlePopper<_, _>>::pop::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::put::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::put::{closure#2}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::put::{closure#3}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::put::{closure#4}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::put::{closure#5}
Unexecuted instantiation: <hyper_util::client::legacy::pool::PoolInner<_, _>>::put::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::get::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::client::Client<_, _>>::request::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Checkout<_, _>>::checkout::{closure#2}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Pooled<_, _> as core::ops::drop::Drop>::drop::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::Checkout<_, _> as core::ops::drop::Drop>::drop::{closure#1}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdleTask<_, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hyper_util::client::legacy::pool::IdleTask<_, _> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: hickory_proto::op::message::emit_message_parts::<core::slice::iter::Iter<hickory_proto::op::lower_query::LowerQuery>, core::slice::iter::Iter<hickory_proto::rr::resource::Record>, core::slice::iter::Iter<hickory_proto::rr::resource::Record>, core::slice::iter::Iter<hickory_proto::rr::resource::Record>>::{closure#0}
Unexecuted instantiation: <hickory_server::store::file::authority::FileAuthority>::try_from_config::{closure#2}
Unexecuted instantiation: <hickory_server::store::file::authority::FileAuthority>::try_from_config::{closure#3}
Unexecuted instantiation: <hickory_server::store::file::authority::FileAuthority>::try_from_config::{closure#4}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog>::find::{closure#1}
Unexecuted instantiation: <hickory_server::store::in_memory::authority::InMemoryAuthority as hickory_server::authority::authority::Authority>::search::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::store::in_memory::authority::InnerInMemory>::minimum_ttl::{closure#0}
Unexecuted instantiation: <hickory_server::store::in_memory::authority::InnerInMemory>::serial::{closure#0}
Unexecuted instantiation: <hickory_server::store::in_memory::authority::InnerInMemory>::upsert::{closure#2}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog>::lookup::<_>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog>::lookup::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog>::update::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<_, _>::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<_, _>::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#4}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#5}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#6}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#7}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#8}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#9}
Unexecuted instantiation: hickory_server::authority::catalog::lookup::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<_> as hickory_server::server::response_handler::ResponseHandler>::send_response::<_, _, _, _>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<_> as hickory_server::server::response_handler::ResponseHandler>::send_response::<_, _, _, _>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ReportingResponseHandler<_> as hickory_server::server::response_handler::ResponseHandler>::send_response::<_, _, _, _>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::server::response_handler::ResponseHandle as hickory_server::server::response_handler::ResponseHandler>::send_response::<_, _, _, _>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::response_handler::ResponseHandle as hickory_server::server::response_handler::ResponseHandler>::send_response::<_, _, _, _>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#4}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#5}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#6}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#7}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog as hickory_server::server::request_handler::RequestHandler>::handle_request::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::authority::catalog::Catalog>::update::<_>::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<_, _>::{closure#0}::{closure#0}::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<_, _>::{closure#0}::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<_, _>::{closure#0}::{closure#1}::{closure#0}::{closure#0}
Unexecuted instantiation: hickory_server::server::server_future::handle_request::<_, _>::{closure#0}::{closure#1}::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_listener::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_listener::{closure#0}::{closure#0}::{closure#1}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_socket::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_socket::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_socket::{closure#0}::{closure#4}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_listener::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_listener::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_server::server::server_future::block_until_done::{closure#0}::{closure#0}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#4}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#5}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#6}
Unexecuted instantiation: hickory_server::authority::catalog::build_forwarded_response::{closure#0}::{closure#7}
Unexecuted instantiation: hickory_server::authority::catalog::build_authoritative_response::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_server::authority::catalog::build_authoritative_response::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_server::authority::catalog::build_authoritative_response::{closure#0}::{closure#4}
Unexecuted instantiation: hickory_server::authority::catalog::build_authoritative_response::{closure#0}::{closure#5}
Unexecuted instantiation: <_ as hickory_server::authority::authority_object::AuthorityObject>::search::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::store::forwarder::authority::ForwardAuthority<_> as hickory_server::authority::authority::Authority>::lookup::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_socket::{closure#1}
Unexecuted instantiation: <hickory_server::server::server_future::ServerFuture<_>>::register_listener::{closure#1}
Unexecuted instantiation: <hickory_server::store::forwarder::authority::ForwardAuthorityBuilder<_>>::build::{closure#0}
Unexecuted instantiation: <hickory_server::store::forwarder::authority::ForwardAuthorityBuilder<_>>::build::{closure#2}
Unexecuted instantiation: <hickory_server::store::forwarder::authority::ForwardAuthorityBuilder<_>>::build::{closure#1}
Unexecuted instantiation: <hickory_server::server::timeout_stream::TimeoutStream<_> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_server::server::timeout_stream::TimeoutStream<_> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <hickory_resolver::hosts::Hosts>::read_hosts_conf::<std::fs::File>::{closure#0}
Unexecuted instantiation: <hickory_resolver::hosts::Hosts>::read_hosts_conf::<std::fs::File>::{closure#1}
Unexecuted instantiation: <hickory_resolver::hosts::Hosts>::insert::{closure#2}
Unexecuted instantiation: <hickory_resolver::hosts::Hosts>::insert::{closure#3}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<_>>::inner_send::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<_> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<_> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<_>::{closure#0}::{closure#2}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<_> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<_>::{closure#0}::{closure#3}
Unexecuted instantiation: <hickory_resolver::name_server::name_server_pool::NameServerPool<_> as hickory_proto::xfer::dns_handle::DnsHandle>::send::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_resolver::lookup_ip::LookupContext<_>>::ipv4_and_ipv6::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::lookup_ip::LookupContext<_>>::ipv4_and_ipv6::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<_>>::connected_mut_client::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_resolver::name_server::name_server::NameServer<_>>::connected_mut_client::{closure#0}::{closure#1}
Unexecuted instantiation: <hickory_resolver::resolver::ResolverBuilder<_>>::build::{closure#0}
Unexecuted instantiation: <hickory_resolver::resolver::Resolver<_>>::build_names::{closure#2}
Unexecuted instantiation: <hickory_resolver::resolver::Resolver<_>>::build_names::{closure#1}
Unexecuted instantiation: hickory_proto::op::message::emit_message_parts::<core::slice::iter::Iter<hickory_proto::op::query::Query>, core::slice::iter::Iter<hickory_proto::rr::resource::Record>, core::slice::iter::Iter<hickory_proto::rr::resource::Record>, core::slice::iter::Iter<hickory_proto::rr::resource::Record>>::{closure#0}
Unexecuted instantiation: <hickory_proto::op::message::Message>::finalize::{closure#0}
Unexecuted instantiation: <hickory_proto::rr::domain::label::Label as core::fmt::Display>::fmt::{closure#0}
Unexecuted instantiation: <hickory_proto::rr::rr_set::RecordSet>::insert::{closure#2}
Unexecuted instantiation: <hickory_proto::rr::rr_set::RecordSet>::insert::{closure#3}
Unexecuted instantiation: <hickory_proto::rr::rr_set::RecordSet>::insert::{closure#4}
Unexecuted instantiation: <hickory_proto::rr::rr_set::RecordSet>::remove::{closure#2}
Unexecuted instantiation: <hickory_proto::rr::rr_set::RecordSet>::remove::{closure#3}
Unexecuted instantiation: <hickory_proto::rr::rdata::opt::OPT as hickory_proto::rr::RecordDataDecodable>::read_data::{closure#4}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::to_bytes::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#4}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#5}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#6}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#7}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#8}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#9}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#10}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#11}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#12}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#13}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#14}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#15}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#16}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#17}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#18}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#19}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#20}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#21}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#22}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#23}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#24}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#25}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#26}
Unexecuted instantiation: <hickory_proto::rr::record_data::RData>::read::{closure#27}
Unexecuted instantiation: hickory_proto::xfer::ignore_send::<(), core::result::Result<hickory_proto::xfer::dns_response::DnsResponse, hickory_proto::error::ProtoError>>::{closure#0}
Unexecuted instantiation: hickory_proto::xfer::ignore_send::<(), core::result::Result<hickory_proto::xfer::dns_response::DnsResponse, hickory_proto::error::ProtoError>>::{closure#1}
Unexecuted instantiation: hickory_proto::serialize::txt::rdata_parsers::caa::parse::<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::string::String>, <alloc::string::String as core::convert::AsRef<str>>::as_ref>>::{closure#3}
Unexecuted instantiation: hickory_proto::serialize::txt::rdata_parsers::caa::parse::<core::iter::adapters::map::Map<core::slice::iter::Iter<alloc::string::String>, <alloc::string::String as core::convert::AsRef<str>>::as_ref>>::{closure#4}
Unexecuted instantiation: <hickory_proto::error::ProtoError>::from_response::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::BufDnsRequestStreamHandle as hickory_proto::xfer::dns_handle::DnsHandle>::send::<_>::{closure#1}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#2}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#3}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#4}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#5}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#6}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#7}
Unexecuted instantiation: hickory_proto::udp::udp_client_stream::send_serial_message_inner::<_>::{closure#0}::{closure#8}
Unexecuted instantiation: <hickory_proto::xfer::BufDnsRequestStreamHandle as hickory_proto::xfer::dns_handle::DnsHandle>::send::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_>>::connect_with_future::<_>::{closure#0}::{closure#0}::{closure#1}::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_>>::drop_cancelled::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_>>::stream_closed_close_all::{closure#0}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#3}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#4}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#5}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#6}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#7}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#8}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#9}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#10}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#11}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#12}
Unexecuted instantiation: <hickory_proto::tcp::tcp_stream::TcpStream<_> as futures_core::stream::Stream>::poll_next::{closure#13}
Unexecuted instantiation: <hickory_proto::tcp::tcp_client_stream::TcpClientStream<_> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::UdpStream<_> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<_> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<_> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<_> as core::future::future::Future>::poll::{closure#3}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<_> as core::future::future::Future>::poll::{closure#4}
Unexecuted instantiation: <hickory_proto::udp::udp_stream::NextRandomUdpSocket<_> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <hickory_proto::udp::udp_client_stream::UdpClientStream<_> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#2}
Unexecuted instantiation: <hickory_proto::udp::udp_client_stream::UdpClientStream<_> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<_, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<_, _> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeBackground<_, _> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_exchange::DnsExchangeConnectInner<_, _, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#3}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as hickory_proto::xfer::DnsRequestSender>::send_message::{closure#1}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <hickory_proto::xfer::dns_multiplexer::DnsMultiplexer<_> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <_ as hickory_proto::xfer::dns_handle::DnsHandle>::lookup::{closure#0}
Unexecuted instantiation: tonic::status::invalid_header_value_byte::<http::header::value::InvalidHeaderValue>::{closure#0}
Unexecuted instantiation: <tonic::status::Status>::from_header_map::{closure#1}
Unexecuted instantiation: <tonic::codec::decode::StreamingInner>::poll_frame::{closure#0}
Unexecuted instantiation: <tonic::codec::decode::StreamingInner>::poll_frame::{closure#1}
Unexecuted instantiation: <tonic::codec::decode::StreamingInner>::decode_chunk::{closure#0}
Unexecuted instantiation: <tonic::status::Code>::parse_err::{closure#0}
Unexecuted instantiation: tonic::status::infer_grpc_status::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::clear_stream_window_update_queue::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_reset::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_headers::{closure#2}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_headers::{closure#3}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_headers::{closure#4}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_headers::{closure#5}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_headers::{closure#6}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_headers::{closure#1}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::poll_response::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_trailers::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::ensure_not_idle::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::release_capacity::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_push_promise::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_push_promise::{closure#2}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_push_promise::{closure#1}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::ensure_can_reserve::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::apply_local_settings::{closure#2}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::apply_local_settings::{closure#3}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::apply_local_settings::{closure#4}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::release_closed_capacity::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::enqueue_reset_expiration::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::consume_connection_window::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::release_connection_capacity::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::set_target_connection_window::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::open::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#2}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#3}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#4}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#5}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#6}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::recv_data::{closure#1}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#2}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#3}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#4}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#5}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#6}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#7}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#8}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#9}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#10}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#11}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#12}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#13}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#14}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#15}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#16}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#17}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#18}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#19}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#0}::{closure#20}
Unexecuted instantiation: <h2::frame::headers::Headers>::load::{closure#0}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#2}
Unexecuted instantiation: <h2::frame::headers::HeaderBlock>::load::{closure#1}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#0}::{closure#0}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#2}::{closure#0}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#3}::{closure#0}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#4}::{closure#0}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#5}::{closure#0}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#1}::{closure#0}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#6}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#7}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#8}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#9}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#10}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#11}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#12}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#13}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#14}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#15}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#16}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#17}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#18}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#19}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#20}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#21}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#22}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#23}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#24}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#25}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#26}
Unexecuted instantiation: h2::codec::framed_read::decode_frame::{closure#27}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<<h2::frame::headers::HeaderBlock>::load::{closure#0}>::{closure#0}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<<h2::frame::headers::HeaderBlock>::load::{closure#0}>::{closure#2}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<<h2::frame::headers::HeaderBlock>::load::{closure#0}>::{closure#3}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<<h2::frame::headers::HeaderBlock>::load::{closure#0}>::{closure#4}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<<h2::frame::headers::HeaderBlock>::load::{closure#0}>::{closure#5}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<<h2::frame::headers::HeaderBlock>::load::{closure#0}>::{closure#1}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<h2::fuzz_bridge::fuzz_logic::fuzz_hpack::{closure#0}>::{closure#0}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<h2::fuzz_bridge::fuzz_logic::fuzz_hpack::{closure#0}>::{closure#2}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<h2::fuzz_bridge::fuzz_logic::fuzz_hpack::{closure#0}>::{closure#3}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<h2::fuzz_bridge::fuzz_logic::fuzz_hpack::{closure#0}>::{closure#4}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<h2::fuzz_bridge::fuzz_logic::fuzz_hpack::{closure#0}>::{closure#5}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::decode::<h2::fuzz_bridge::fuzz_logic::fuzz_hpack::{closure#0}>::{closure#1}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::try_decode_string::{closure#1}
Unexecuted instantiation: <h2::hpack::decoder::Decoder>::process_size_update::{closure#0}
Unexecuted instantiation: <h2::frame::settings::Settings>::encode::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::frame::settings::Settings>::load::{closure#0}
Unexecuted instantiation: <h2::frame::settings::Settings>::encode::{closure#1}
Unexecuted instantiation: <h2::proto::peer::Dyn>::ensure_can_open::{closure#0}
Unexecuted instantiation: <h2::proto::peer::Dyn>::ensure_can_open::{closure#1}
Unexecuted instantiation: <h2::proto::streams::stream::Stream>::assign_capacity::{closure#0}
Unexecuted instantiation: <h2::proto::streams::stream::Stream>::notify_capacity::{closure#0}
Unexecuted instantiation: <h2::proto::streams::stream::Stream>::send_data::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::recv_go_away::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::check_headers::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::check_headers::{closure#1}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_close::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_close::{closure#2}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_close::{closure#1}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_reset::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::send_close::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::send_close::{closure#1}
Unexecuted instantiation: <h2::proto::streams::state::State>::handle_error::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::reserve_remote::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_eof::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_open::{closure#0}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_open::{closure#2}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_open::{closure#3}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_open::{closure#4}
Unexecuted instantiation: <h2::proto::streams::state::State>::recv_open::{closure#1}
Unexecuted instantiation: <h2::proto::streams::counts::Counts>::transition_after::{closure#0}
Unexecuted instantiation: <h2::proto::streams::counts::Counts>::transition_after::{closure#1}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextAccept>>::push::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextAccept>>::push::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextAccept>>::push::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextAccept>>::push::{closure#1}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextResetExpire>>::push::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextResetExpire>>::push::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextResetExpire>>::push::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextResetExpire>>::push::{closure#1}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSendCapacity>>::push::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSendCapacity>>::push::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSendCapacity>>::push::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSendCapacity>>::push::{closure#1}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextWindowUpdate>>::push::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextWindowUpdate>>::push::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextWindowUpdate>>::push::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextWindowUpdate>>::push::{closure#1}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextOpen>>::push::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextOpen>>::push::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextOpen>>::push::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextOpen>>::push::{closure#1}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<h2::proto::streams::stream::NextSend>>::push::{closure#1}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#2}::{closure#0}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#1}::{closure#0}
Unexecuted instantiation: <h2::server::Peer>::convert_push_message::{closure#0}
Unexecuted instantiation: <h2::server::Peer>::convert_push_message::{closure#1}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#3}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#4}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#5}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#6}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#7}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#8}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#9}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#10}
Unexecuted instantiation: <h2::server::Peer as h2::proto::peer::Peer>::convert_poll_message::{closure#11}
Unexecuted instantiation: <h2::proto::streams::flow_control::FlowControl>::inc_window::{closure#0}
Unexecuted instantiation: <h2::proto::streams::flow_control::FlowControl>::dec_recv_window::{closure#0}
Unexecuted instantiation: <h2::proto::streams::flow_control::FlowControl>::dec_send_window::{closure#0}
Unexecuted instantiation: <h2::proto::streams::flow_control::FlowControl>::send_data::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::send_settings::{closure#0}
Unexecuted instantiation: h2::proto::streams::streams::drop_stream_ref::{closure#2}
Unexecuted instantiation: h2::proto::streams::streams::drop_stream_ref::{closure#1}
Unexecuted instantiation: <h2::frame::window_update::WindowUpdate>::encode::<_>::{closure#0}
Unexecuted instantiation: <h2::frame::ping::Ping>::encode::<_>::{closure#0}
Unexecuted instantiation: <h2::frame::reset::Reset>::encode::<_>::{closure#0}
Unexecuted instantiation: <h2::frame::go_away::GoAway>::encode::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<_, _, _, _>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::recv_settings::<_, _, _, _>::{closure#1}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<_, _, _, _>::{closure#0}
Unexecuted instantiation: <h2::proto::settings::Settings>::poll_send::<_, _, _, _>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::clear_queue::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<_, _>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::poll_complete::<_, _>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::reclaim_frame_inner::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::reclaim_frame_inner::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<_>::{closure#4}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<_>::{closure#5}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<_>::{closure#6}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<_>::{closure#7}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<_>::{closure#8}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_frame::<_>::{closure#9}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::send_data::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::send_data::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<_>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_reset::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_headers::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_trailers::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::send_push_promise::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::recv_stream_window_update::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_reset::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_reset::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<_>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<_>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_push_promise::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_eof::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<_>::{closure#2}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<_>::{closure#3}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_data::<_>::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Actions>::reset_on_recv_stream_err::<_>::{closure#0}
Unexecuted instantiation: <h2::proto::streams::recv::Recv>::send_stream_window_updates::<_, _>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<_>::{closure#0}::{closure#2}
Unexecuted instantiation: <h2::proto::streams::send::Send>::apply_remote_settings::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::streams::streams::Inner>::recv_headers::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: h2::client::bind_connection::<_>::{closure#0}::{closure#0}
Unexecuted instantiation: h2::client::bind_connection::<_>::{closure#0}::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Streams<_, _>>::next_incoming::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<_, _>>::flush::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<_, _>>::flush::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::FramedWrite<_, _>>::flush::{closure#1}
Unexecuted instantiation: <h2::proto::connection::Connection<_, _, _>>::poll::{closure#0}
Unexecuted instantiation: <h2::proto::connection::Connection<_, _, _>>::poll::{closure#1}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#0}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#2}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#3}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#4}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#5}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#6}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#7}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#8}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#9}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::recv_frame::{closure#1}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::handle_poll2_result::{closure#2}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::handle_poll2_result::{closure#3}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::handle_poll2_result::{closure#4}
Unexecuted instantiation: <h2::proto::connection::DynConnection<_>>::handle_poll2_result::{closure#1}
Unexecuted instantiation: <h2::proto::streams::streams::Streams<_, h2::client::Peer>>::poll_pending_open::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<_>>::push_front::{closure#0}
Unexecuted instantiation: <h2::proto::streams::store::Queue<_>>::push_front::{closure#2}
Unexecuted instantiation: <h2::proto::streams::store::Queue<_>>::push_front::{closure#3}
Unexecuted instantiation: <h2::proto::streams::store::Queue<_>>::push_front::{closure#1}
Unexecuted instantiation: <h2::server::Connection<_, _>>::poll_accept::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<_>>::buffer::{closure#0}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<_>>::buffer::{closure#2}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<_>>::buffer::{closure#3}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<_>>::buffer::{closure#4}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<_>>::buffer::{closure#5}
Unexecuted instantiation: <h2::codec::framed_write::Encoder<_>>::buffer::{closure#1}
Unexecuted instantiation: <h2::client::Connection<_, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::server::ReadPreface<_, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::server::Handshake<_, _> as core::future::future::Future>::poll::{closure#0}
Unexecuted instantiation: <h2::server::Handshake<_, _> as core::future::future::Future>::poll::{closure#2}
Unexecuted instantiation: <h2::server::Handshake<_, _> as core::future::future::Future>::poll::{closure#3}
Unexecuted instantiation: <h2::server::Handshake<_, _> as core::future::future::Future>::poll::{closure#1}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<_> as futures_core::stream::Stream>::poll_next::{closure#0}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<_> as futures_core::stream::Stream>::poll_next::{closure#2}
Unexecuted instantiation: <h2::codec::framed_read::FramedRead<_> as futures_core::stream::Stream>::poll_next::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::clear_pending_capacity::{closure#0}::{closure#0}
Unexecuted instantiation: <h2::proto::ping_pong::PingPong>::recv_ping::{closure#0}
Unexecuted instantiation: <h2::proto::ping_pong::PingPong>::recv_ping::{closure#2}
Unexecuted instantiation: <h2::proto::ping_pong::PingPong>::recv_ping::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::schedule_send::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_pending_open::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::pop_pending_open::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::try_assign_capacity::{closure#0}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::try_assign_capacity::{closure#2}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::try_assign_capacity::{closure#1}
Unexecuted instantiation: <h2::proto::streams::prioritize::Prioritize>::new::{closure#0}
878
                );
879
                $crate::__tracing_log!(
880
                    $lvl,
881
                    __CALLSITE,
882
                    &value_set
883
                );
884
            })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
885
        } else {
886
            $crate::__tracing_log!(
887
                $lvl,
888
                __CALLSITE,
889
                &$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)
890
            );
891
        }
892
    });
893
    (target: $target:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
894
        $crate::event!(
895
            target: $target,
896
            $lvl,
897
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
898
        )
899
    );
900
    (target: $target:expr, $lvl:expr, $($k:ident).+ = $($fields:tt)* ) => (
901
        $crate::event!(target: $target, $lvl, { $($k).+ = $($fields)* })
902
    );
903
    (target: $target:expr, $lvl:expr, $($arg:tt)+ ) => (
904
        $crate::event!(target: $target, $lvl, { $($arg)+ })
905
    );
906
907
    // Parent.
908
    (parent: $parent:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
909
        $crate::event!(
910
            target: module_path!(),
911
            parent: $parent,
912
            $lvl,
913
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
914
        )
915
    );
916
    (parent: $parent:expr, $lvl:expr, $($k:ident).+ = $($field:tt)*) => (
917
        $crate::event!(
918
            target: module_path!(),
919
            parent: $parent,
920
            $lvl,
921
            { $($k).+ = $($field)*}
922
        )
923
    );
924
    (parent: $parent:expr, $lvl:expr, ?$($k:ident).+ = $($field:tt)*) => (
925
        $crate::event!(
926
            target: module_path!(),
927
            parent: $parent,
928
            $lvl,
929
            { ?$($k).+ = $($field)*}
930
        )
931
    );
932
    (parent: $parent:expr, $lvl:expr, %$($k:ident).+ = $($field:tt)*) => (
933
        $crate::event!(
934
            target: module_path!(),
935
            parent: $parent,
936
            $lvl,
937
            { %$($k).+ = $($field)*}
938
        )
939
    );
940
    (parent: $parent:expr, $lvl:expr, $($k:ident).+, $($field:tt)*) => (
941
        $crate::event!(
942
            target: module_path!(),
943
            parent: $parent,
944
            $lvl,
945
            { $($k).+, $($field)*}
946
        )
947
    );
948
    (parent: $parent:expr, $lvl:expr, %$($k:ident).+, $($field:tt)*) => (
949
        $crate::event!(
950
            target: module_path!(),
951
            parent: $parent,
952
            $lvl,
953
            { %$($k).+, $($field)*}
954
        )
955
    );
956
    (parent: $parent:expr, $lvl:expr, ?$($k:ident).+, $($field:tt)*) => (
957
        $crate::event!(
958
            target: module_path!(),
959
            parent: $parent,
960
            $lvl,
961
            { ?$($k).+, $($field)*}
962
        )
963
    );
964
    (parent: $parent:expr, $lvl:expr, $($arg:tt)+ ) => (
965
        $crate::event!(target: module_path!(), parent: $parent, $lvl, { $($arg)+ })
966
    );
967
968
    // ...
969
    ( $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
970
        $crate::event!(
971
            target: module_path!(),
972
            $lvl,
973
            { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
974
        )
975
    );
976
    ( $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
977
        $crate::event!(
978
            target: module_path!(),
979
            $lvl,
980
            { message = format_args!($($arg)+), $($fields)* }
981
        )
982
    );
983
    ($lvl:expr, $($k:ident).+ = $($field:tt)*) => (
984
        $crate::event!(
985
            target: module_path!(),
986
            $lvl,
987
            { $($k).+ = $($field)*}
988
        )
989
    );
990
    ($lvl:expr, $($k:ident).+, $($field:tt)*) => (
991
        $crate::event!(
992
            target: module_path!(),
993
            $lvl,
994
            { $($k).+, $($field)*}
995
        )
996
    );
997
    ($lvl:expr, ?$($k:ident).+, $($field:tt)*) => (
998
        $crate::event!(
999
            target: module_path!(),
1000
            $lvl,
1001
            { ?$($k).+, $($field)*}
1002
        )
1003
    );
1004
    ($lvl:expr, %$($k:ident).+, $($field:tt)*) => (
1005
        $crate::event!(
1006
            target: module_path!(),
1007
            $lvl,
1008
            { %$($k).+, $($field)*}
1009
        )
1010
    );
1011
    ($lvl:expr, ?$($k:ident).+) => (
1012
        $crate::event!($lvl, ?$($k).+,)
1013
    );
1014
    ($lvl:expr, %$($k:ident).+) => (
1015
        $crate::event!($lvl, %$($k).+,)
1016
    );
1017
    ($lvl:expr, $($k:ident).+) => (
1018
        $crate::event!($lvl, $($k).+,)
1019
    );
1020
    ( $lvl:expr, $($arg:tt)+ ) => (
1021
        $crate::event!(target: module_path!(), $lvl, { $($arg)+ })
1022
    );
1023
}
1024
1025
/// Tests whether an event with the specified level and target would be enabled.
1026
///
1027
/// This is similar to [`enabled!`], but queries the current subscriber specifically for
1028
/// an event, whereas [`enabled!`] queries for an event _or_ span.
1029
///
1030
/// See the documentation for [`enabled!]` for more details on using this macro.
1031
/// See also [`span_enabled!`].
1032
///
1033
/// # Examples
1034
///
1035
/// ```rust
1036
/// # use tracing::{event_enabled, Level};
1037
/// if event_enabled!(target: "my_crate", Level::DEBUG) {
1038
///     // some expensive work...
1039
/// }
1040
/// // simpler
1041
/// if event_enabled!(Level::DEBUG) {
1042
///     // some expensive work...
1043
/// }
1044
/// // with fields
1045
/// if event_enabled!(Level::DEBUG, foo_field) {
1046
///     // some expensive work...
1047
/// }
1048
/// ```
1049
///
1050
/// [`enabled!`]: crate::enabled
1051
/// [`span_enabled!`]: crate::span_enabled
1052
#[macro_export]
1053
macro_rules! event_enabled {
1054
    ($($rest:tt)*)=> (
1055
        $crate::enabled!(kind: $crate::metadata::Kind::EVENT, $($rest)*)
1056
    )
1057
}
1058
1059
/// Tests whether a span with the specified level and target would be enabled.
1060
///
1061
/// This is similar to [`enabled!`], but queries the current subscriber specifically for
1062
/// an event, whereas [`enabled!`] queries for an event _or_ span.
1063
///
1064
/// See the documentation for [`enabled!]` for more details on using this macro.
1065
/// See also [`span_enabled!`].
1066
///
1067
/// # Examples
1068
///
1069
/// ```rust
1070
/// # use tracing::{span_enabled, Level};
1071
/// if span_enabled!(target: "my_crate", Level::DEBUG) {
1072
///     // some expensive work...
1073
/// }
1074
/// // simpler
1075
/// if span_enabled!(Level::DEBUG) {
1076
///     // some expensive work...
1077
/// }
1078
/// // with fields
1079
/// if span_enabled!(Level::DEBUG, foo_field) {
1080
///     // some expensive work...
1081
/// }
1082
/// ```
1083
///
1084
/// [`enabled!`]: crate::enabled
1085
/// [`span_enabled!`]: crate::span_enabled
1086
#[macro_export]
1087
macro_rules! span_enabled {
1088
    ($($rest:tt)*)=> (
1089
        $crate::enabled!(kind: $crate::metadata::Kind::SPAN, $($rest)*)
1090
    )
1091
}
1092
1093
/// Checks whether a span or event is [enabled] based on the provided [metadata].
1094
///
1095
/// [enabled]: crate::Subscriber::enabled
1096
/// [metadata]: crate::Metadata
1097
///
1098
/// This macro is a specialized tool: it is intended to be used prior
1099
/// to an expensive computation required *just* for that event, but
1100
/// *cannot* be done as part of an argument to that event, such as
1101
/// when multiple events are emitted (e.g., iterating over a collection
1102
/// and emitting an event for each item).
1103
///
1104
/// # Usage
1105
///
1106
/// [Subscribers] can make filtering decisions based all the data included in a
1107
/// span or event's [`Metadata`]. This means that it is possible for `enabled!`
1108
/// to return a _false positive_ (indicating that something would be enabled
1109
/// when it actually would not be) or a _false negative_ (indicating that
1110
/// something would be disabled when it would actually be enabled).
1111
///
1112
/// [Subscribers]: crate::subscriber::Subscriber
1113
/// [`Metadata`]: crate::metadata::Metadata
1114
///
1115
/// This occurs when a subscriber is using a _more specific_ filter than the
1116
/// metadata provided to the `enabled!` macro. Some situations that can result
1117
/// in false positives or false negatives include:
1118
///
1119
/// - If a subscriber is using a filter which may enable a span or event based
1120
///   on field names, but `enabled!` is invoked without listing field names,
1121
///   `enabled!` may return a false negative if a specific field name would
1122
///   cause the subscriber to enable something that would otherwise be disabled.
1123
/// - If a subscriber is using a filter which enables or disables specific events by
1124
///   file path and line number,  a particular event may be enabled/disabled
1125
///   even if an `enabled!` invocation with the same level, target, and fields
1126
///   indicated otherwise.
1127
/// - The subscriber can choose to enable _only_ spans or _only_ events, which `enabled`
1128
///   will not reflect.
1129
///
1130
/// `enabled!()` requires a [level](crate::Level) argument, an optional `target:`
1131
/// argument, and an optional set of field names. If the fields are not provided,
1132
/// they are considered to be unknown. `enabled!` attempts to match the
1133
/// syntax of `event!()` as closely as possible, which can be seen in the
1134
/// examples below.
1135
///
1136
/// # Examples
1137
///
1138
/// If the current subscriber is interested in recording `DEBUG`-level spans and
1139
/// events in the current file and module path, this will evaluate to true:
1140
/// ```rust
1141
/// use tracing::{enabled, Level};
1142
///
1143
/// if enabled!(Level::DEBUG) {
1144
///     // some expensive work...
1145
/// }
1146
/// ```
1147
///
1148
/// If the current subscriber is interested in recording spans and events
1149
/// in the current file and module path, with the target "my_crate", and at the
1150
/// level  `DEBUG`, this will evaluate to true:
1151
/// ```rust
1152
/// # use tracing::{enabled, Level};
1153
/// if enabled!(target: "my_crate", Level::DEBUG) {
1154
///     // some expensive work...
1155
/// }
1156
/// ```
1157
///
1158
/// If the current subscriber is interested in recording spans and events
1159
/// in the current file and module path, with the target "my_crate", at
1160
/// the level `DEBUG`, and with a field named "hello", this will evaluate
1161
/// to true:
1162
///
1163
/// ```rust
1164
/// # use tracing::{enabled, Level};
1165
/// if enabled!(target: "my_crate", Level::DEBUG, hello) {
1166
///     // some expensive work...
1167
/// }
1168
/// ```
1169
///
1170
/// # Alternatives
1171
///
1172
/// `enabled!` queries subscribers with [`Metadata`] where
1173
/// [`is_event`] and [`is_span`] both return `false`. Alternatively,
1174
/// use [`event_enabled!`] or [`span_enabled!`] to ensure one of these
1175
/// returns true.
1176
///
1177
///
1178
/// [`Metadata`]: crate::Metadata
1179
/// [`is_event`]: crate::Metadata::is_event
1180
/// [`is_span`]: crate::Metadata::is_span
1181
/// [`enabled!`]: crate::enabled
1182
/// [`span_enabled!`]: crate::span_enabled
1183
#[macro_export]
1184
macro_rules! enabled {
1185
    (kind: $kind:expr, target: $target:expr, $lvl:expr, { $($fields:tt)* } )=> ({
1186
        if $crate::level_enabled!($lvl) {
1187
            use $crate::__macro_support::Callsite as _;
1188
            static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! {
1189
                name: $crate::__macro_support::concat!(
1190
                    "enabled ",
1191
                    $crate::__macro_support::file!(),
1192
                    ":",
1193
                    $crate::__macro_support::line!()
1194
                ),
1195
                kind: $kind.hint(),
1196
                target: $target,
1197
                level: $lvl,
1198
                fields: $($fields)*
1199
            };
1200
            let interest = __CALLSITE.interest();
1201
            if !interest.is_never() && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) {
1202
                let meta = __CALLSITE.metadata();
1203
                $crate::dispatcher::get_default(|current| current.enabled(meta))
1204
            } else {
1205
                false
1206
            }
1207
        } else {
1208
            false
1209
        }
1210
    });
1211
    // Just target and level
1212
    (kind: $kind:expr, target: $target:expr, $lvl:expr ) => (
1213
        $crate::enabled!(kind: $kind, target: $target, $lvl, { })
1214
    );
1215
    (target: $target:expr, $lvl:expr ) => (
1216
        $crate::enabled!(kind: $crate::metadata::Kind::HINT, target: $target, $lvl, { })
1217
    );
1218
1219
    // These four cases handle fields with no values
1220
    (kind: $kind:expr, target: $target:expr, $lvl:expr, $($field:tt)*) => (
1221
        $crate::enabled!(
1222
            kind: $kind,
1223
            target: $target,
1224
            $lvl,
1225
            { $($field)*}
1226
        )
1227
    );
1228
    (target: $target:expr, $lvl:expr, $($field:tt)*) => (
1229
        $crate::enabled!(
1230
            kind: $crate::metadata::Kind::HINT,
1231
            target: $target,
1232
            $lvl,
1233
            { $($field)*}
1234
        )
1235
    );
1236
1237
    // Level and field case
1238
    (kind: $kind:expr, $lvl:expr, $($field:tt)*) => (
1239
        $crate::enabled!(
1240
            kind: $kind,
1241
            target: module_path!(),
1242
            $lvl,
1243
            { $($field)*}
1244
        )
1245
    );
1246
1247
    // Simplest `enabled!` case
1248
    (kind: $kind:expr, $lvl:expr) => (
1249
        $crate::enabled!(kind: $kind, target: module_path!(), $lvl, { })
1250
    );
1251
    ($lvl:expr) => (
1252
        $crate::enabled!(kind: $crate::metadata::Kind::HINT, target: module_path!(), $lvl, { })
1253
    );
1254
1255
    // Fallthrough from above
1256
    ($lvl:expr, $($field:tt)*) => (
1257
        $crate::enabled!(
1258
            kind: $crate::metadata::Kind::HINT,
1259
            target: module_path!(),
1260
            $lvl,
1261
            { $($field)*}
1262
        )
1263
    );
1264
}
1265
1266
/// Constructs an event at the trace level.
1267
///
1268
/// This functions similarly to the [`event!`] macro. See [the top-level
1269
/// documentation][lib] for details on the syntax accepted by
1270
/// this macro.
1271
///
1272
/// [`event!`]: crate::event!
1273
/// [lib]: crate#using-the-macros
1274
///
1275
/// # Examples
1276
///
1277
/// ```rust
1278
/// use tracing::trace;
1279
/// # #[derive(Debug, Copy, Clone)] struct Position { x: f32, y: f32 }
1280
/// # impl Position {
1281
/// # const ORIGIN: Self = Self { x: 0.0, y: 0.0 };
1282
/// # fn dist(&self, other: Position) -> f32 {
1283
/// #    let x = (other.x - self.x).exp2(); let y = (self.y - other.y).exp2();
1284
/// #    (x + y).sqrt()
1285
/// # }
1286
/// # }
1287
/// # fn main() {
1288
/// let pos = Position { x: 3.234, y: -1.223 };
1289
/// let origin_dist = pos.dist(Position::ORIGIN);
1290
///
1291
/// trace!(position = ?pos, ?origin_dist);
1292
/// trace!(
1293
///     target: "app_events",
1294
///     position = ?pos,
1295
///     "x is {} and y is {}",
1296
///     if pos.x >= 0.0 { "positive" } else { "negative" },
1297
///     if pos.y >= 0.0 { "positive" } else { "negative" }
1298
/// );
1299
/// trace!(name: "completed", position = ?pos);
1300
/// # }
1301
/// ```
1302
#[macro_export]
1303
macro_rules! trace {
1304
    // Name / target / parent.
1305
    (name: $name:expr, target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1306
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::TRACE, { $($field)* }, $($arg)*)
1307
    );
1308
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1309
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::TRACE, { $($k).+ $($field)* })
1310
    );
1311
    (name: $name:expr, target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1312
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::TRACE, { ?$($k).+ $($field)* })
1313
    );
1314
    (name: $name:expr, target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1315
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::TRACE, { %$($k).+ $($field)* })
1316
    );
1317
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1318
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::TRACE, {}, $($arg)+)
1319
    );
1320
1321
    // Name / target.
1322
    (name: $name:expr, target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1323
        $crate::event!(name: $name, target: $target, $crate::Level::TRACE, { $($field)* }, $($arg)*)
1324
    );
1325
    (name: $name:expr, target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
1326
        $crate::event!(name: $name, target: $target, $crate::Level::TRACE, { $($k).+ $($field)* })
1327
    );
1328
    (name: $name:expr, target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
1329
        $crate::event!(name: $name, target: $target, $crate::Level::TRACE, { ?$($k).+ $($field)* })
1330
    );
1331
    (name: $name:expr, target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
1332
        $crate::event!(name: $name, target: $target, $crate::Level::TRACE, { %$($k).+ $($field)* })
1333
    );
1334
    (name: $name:expr, target: $target:expr, $($arg:tt)+ ) => (
1335
        $crate::event!(name: $name, target: $target, $crate::Level::TRACE, {}, $($arg)+)
1336
    );
1337
1338
    // Target / parent.
1339
    (target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1340
        $crate::event!(target: $target, parent: $parent, $crate::Level::TRACE, { $($field)* }, $($arg)*)
1341
    );
1342
    (target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1343
        $crate::event!(target: $target, parent: $parent, $crate::Level::TRACE, { $($k).+ $($field)* })
1344
    );
1345
    (target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1346
        $crate::event!(target: $target, parent: $parent, $crate::Level::TRACE, { ?$($k).+ $($field)* })
1347
    );
1348
    (target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1349
        $crate::event!(target: $target, parent: $parent, $crate::Level::TRACE, { %$($k).+ $($field)* })
1350
    );
1351
    (target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1352
        $crate::event!(target: $target, parent: $parent, $crate::Level::TRACE, {}, $($arg)+)
1353
    );
1354
1355
    // Name / parent.
1356
    (name: $name:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1357
        $crate::event!(name: $name, parent: $parent, $crate::Level::TRACE, { $($field)* }, $($arg)*)
1358
    );
1359
    (name: $name:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1360
        $crate::event!(name: $name, parent: $parent, $crate::Level::TRACE, { $($k).+ $($field)* })
1361
    );
1362
    (name: $name:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1363
        $crate::event!(name: $name, parent: $parent, $crate::Level::TRACE, { ?$($k).+ $($field)* })
1364
    );
1365
    (name: $name:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1366
        $crate::event!(name: $name, parent: $parent, $crate::Level::TRACE, { %$($k).+ $($field)* })
1367
    );
1368
    (name: $name:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1369
        $crate::event!(name: $name, parent: $parent, $crate::Level::TRACE, {}, $($arg)+)
1370
    );
1371
1372
    // Name.
1373
    (name: $name:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1374
        $crate::event!(name: $name, $crate::Level::TRACE, { $($field)* }, $($arg)*)
1375
    );
1376
    (name: $name:expr, $($k:ident).+ $($field:tt)* ) => (
1377
        $crate::event!(name: $name, $crate::Level::TRACE, { $($k).+ $($field)* })
1378
    );
1379
    (name: $name:expr, ?$($k:ident).+ $($field:tt)* ) => (
1380
        $crate::event!(name: $name, $crate::Level::TRACE, { ?$($k).+ $($field)* })
1381
    );
1382
    (name: $name:expr, %$($k:ident).+ $($field:tt)* ) => (
1383
        $crate::event!(name: $name, $crate::Level::TRACE, { %$($k).+ $($field)* })
1384
    );
1385
    (name: $name:expr, $($arg:tt)+ ) => (
1386
        $crate::event!(name: $name, $crate::Level::TRACE, {}, $($arg)+)
1387
    );
1388
1389
    // Target.
1390
    (target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1391
        $crate::event!(target: $target, $crate::Level::TRACE, { $($field)* }, $($arg)*)
1392
    );
1393
    (target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
1394
        $crate::event!(target: $target, $crate::Level::TRACE, { $($k).+ $($field)* })
1395
    );
1396
    (target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
1397
        $crate::event!(target: $target, $crate::Level::TRACE, { ?$($k).+ $($field)* })
1398
    );
1399
    (target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
1400
        $crate::event!(target: $target, $crate::Level::TRACE, { %$($k).+ $($field)* })
1401
    );
1402
    (target: $target:expr, $($arg:tt)+ ) => (
1403
        $crate::event!(target: $target, $crate::Level::TRACE, {}, $($arg)+)
1404
    );
1405
1406
    // Parent.
1407
    (parent: $parent:expr, { $($field:tt)+ }, $($arg:tt)+ ) => (
1408
        $crate::event!(
1409
            target: module_path!(),
1410
            parent: $parent,
1411
            $crate::Level::TRACE,
1412
            { $($field)+ },
1413
            $($arg)+
1414
        )
1415
    );
1416
    (parent: $parent:expr, $($k:ident).+ = $($field:tt)*) => (
1417
        $crate::event!(
1418
            target: module_path!(),
1419
            parent: $parent,
1420
            $crate::Level::TRACE,
1421
            { $($k).+ = $($field)*}
1422
        )
1423
    );
1424
    (parent: $parent:expr, ?$($k:ident).+ = $($field:tt)*) => (
1425
        $crate::event!(
1426
            target: module_path!(),
1427
            parent: $parent,
1428
            $crate::Level::TRACE,
1429
            { ?$($k).+ = $($field)*}
1430
        )
1431
    );
1432
    (parent: $parent:expr, %$($k:ident).+ = $($field:tt)*) => (
1433
        $crate::event!(
1434
            target: module_path!(),
1435
            parent: $parent,
1436
            $crate::Level::TRACE,
1437
            { %$($k).+ = $($field)*}
1438
        )
1439
    );
1440
    (parent: $parent:expr, $($k:ident).+, $($field:tt)*) => (
1441
        $crate::event!(
1442
            target: module_path!(),
1443
            parent: $parent,
1444
            $crate::Level::TRACE,
1445
            { $($k).+, $($field)*}
1446
        )
1447
    );
1448
    (parent: $parent:expr, ?$($k:ident).+, $($field:tt)*) => (
1449
        $crate::event!(
1450
            target: module_path!(),
1451
            parent: $parent,
1452
            $crate::Level::TRACE,
1453
            { ?$($k).+, $($field)*}
1454
        )
1455
    );
1456
    (parent: $parent:expr, %$($k:ident).+, $($field:tt)*) => (
1457
        $crate::event!(
1458
            target: module_path!(),
1459
            parent: $parent,
1460
            $crate::Level::TRACE,
1461
            { %$($k).+, $($field)*}
1462
        )
1463
    );
1464
    (parent: $parent:expr, $($arg:tt)+) => (
1465
        $crate::event!(
1466
            target: module_path!(),
1467
            parent: $parent,
1468
            $crate::Level::TRACE,
1469
            {},
1470
            $($arg)+
1471
        )
1472
    );
1473
1474
    // ...
1475
    ({ $($field:tt)+ }, $($arg:tt)+ ) => (
1476
        $crate::event!(
1477
            target: module_path!(),
1478
            $crate::Level::TRACE,
1479
            { $($field)+ },
1480
            $($arg)+
1481
        )
1482
    );
1483
    ($($k:ident).+ = $($field:tt)*) => (
1484
        $crate::event!(
1485
            target: module_path!(),
1486
            $crate::Level::TRACE,
1487
            { $($k).+ = $($field)*}
1488
        )
1489
    );
1490
    (?$($k:ident).+ = $($field:tt)*) => (
1491
        $crate::event!(
1492
            target: module_path!(),
1493
            $crate::Level::TRACE,
1494
            { ?$($k).+ = $($field)*}
1495
        )
1496
    );
1497
    (%$($k:ident).+ = $($field:tt)*) => (
1498
        $crate::event!(
1499
            target: module_path!(),
1500
            $crate::Level::TRACE,
1501
            { %$($k).+ = $($field)*}
1502
        )
1503
    );
1504
    ($($k:ident).+, $($field:tt)*) => (
1505
        $crate::event!(
1506
            target: module_path!(),
1507
            $crate::Level::TRACE,
1508
            { $($k).+, $($field)*}
1509
        )
1510
    );
1511
    (?$($k:ident).+, $($field:tt)*) => (
1512
        $crate::event!(
1513
            target: module_path!(),
1514
            $crate::Level::TRACE,
1515
            { ?$($k).+, $($field)*}
1516
        )
1517
    );
1518
    (%$($k:ident).+, $($field:tt)*) => (
1519
        $crate::event!(
1520
            target: module_path!(),
1521
            $crate::Level::TRACE,
1522
            { %$($k).+, $($field)*}
1523
        )
1524
    );
1525
    (?$($k:ident).+) => (
1526
        $crate::event!(
1527
            target: module_path!(),
1528
            $crate::Level::TRACE,
1529
            { ?$($k).+ }
1530
        )
1531
    );
1532
    (%$($k:ident).+) => (
1533
        $crate::event!(
1534
            target: module_path!(),
1535
            $crate::Level::TRACE,
1536
            { %$($k).+ }
1537
        )
1538
    );
1539
    ($($k:ident).+) => (
1540
        $crate::event!(
1541
            target: module_path!(),
1542
            $crate::Level::TRACE,
1543
            { $($k).+ }
1544
        )
1545
    );
1546
    ($($arg:tt)+) => (
1547
        $crate::event!(
1548
            target: module_path!(),
1549
            $crate::Level::TRACE,
1550
            $($arg)+
1551
        )
1552
    );
1553
}
1554
1555
/// Constructs an event at the debug level.
1556
///
1557
/// This functions similarly to the [`event!`] macro. See [the top-level
1558
/// documentation][lib] for details on the syntax accepted by
1559
/// this macro.
1560
///
1561
/// [`event!`]: crate::event!
1562
/// [lib]: crate#using-the-macros
1563
///
1564
/// # Examples
1565
///
1566
/// ```rust
1567
/// use tracing::debug;
1568
/// # fn main() {
1569
/// # #[derive(Debug)] struct Position { x: f32, y: f32 }
1570
///
1571
/// let pos = Position { x: 3.234, y: -1.223 };
1572
///
1573
/// debug!(?pos.x, ?pos.y);
1574
/// debug!(target: "app_events", position = ?pos, "New position");
1575
/// debug!(name: "completed", position = ?pos);
1576
/// # }
1577
/// ```
1578
#[macro_export]
1579
macro_rules! debug {
1580
    // Name / target / parent.
1581
    (name: $name:expr, target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1582
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
1583
    );
1584
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1585
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::DEBUG, { $($k).+ $($field)* })
1586
    );
1587
    (name: $name:expr, target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1588
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
1589
    );
1590
    (name: $name:expr, target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1591
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::DEBUG, { %$($k).+ $($field)* })
1592
    );
1593
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1594
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::DEBUG, {}, $($arg)+)
1595
    );
1596
1597
    // Name / target.
1598
    (name: $name:expr, target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1599
        $crate::event!(name: $name, target: $target, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
1600
    );
1601
    (name: $name:expr, target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
1602
        $crate::event!(name: $name, target: $target, $crate::Level::DEBUG, { $($k).+ $($field)* })
1603
    );
1604
    (name: $name:expr, target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
1605
        $crate::event!(name: $name, target: $target, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
1606
    );
1607
    (name: $name:expr, target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
1608
        $crate::event!(name: $name, target: $target, $crate::Level::DEBUG, { %$($k).+ $($field)* })
1609
    );
1610
    (name: $name:expr, target: $target:expr, $($arg:tt)+ ) => (
1611
        $crate::event!(name: $name, target: $target, $crate::Level::DEBUG, {}, $($arg)+)
1612
    );
1613
1614
    // Target / parent.
1615
    (target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1616
        $crate::event!(target: $target, parent: $parent, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
1617
    );
1618
    (target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1619
        $crate::event!(target: $target, parent: $parent, $crate::Level::DEBUG, { $($k).+ $($field)* })
1620
    );
1621
    (target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1622
        $crate::event!(target: $target, parent: $parent, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
1623
    );
1624
    (target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1625
        $crate::event!(target: $target, parent: $parent, $crate::Level::DEBUG, { %$($k).+ $($field)* })
1626
    );
1627
    (target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1628
        $crate::event!(target: $target, parent: $parent, $crate::Level::DEBUG, {}, $($arg)+)
1629
    );
1630
1631
    // Name / parent.
1632
    (name: $name:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1633
        $crate::event!(name: $name, parent: $parent, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
1634
    );
1635
    (name: $name:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1636
        $crate::event!(name: $name, parent: $parent, $crate::Level::DEBUG, { $($k).+ $($field)* })
1637
    );
1638
    (name: $name:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1639
        $crate::event!(name: $name, parent: $parent, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
1640
    );
1641
    (name: $name:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1642
        $crate::event!(name: $name, parent: $parent, $crate::Level::DEBUG, { %$($k).+ $($field)* })
1643
    );
1644
    (name: $name:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1645
        $crate::event!(name: $name, parent: $parent, $crate::Level::DEBUG, {}, $($arg)+)
1646
    );
1647
1648
    // Name.
1649
    (name: $name:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1650
        $crate::event!(name: $name, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
1651
    );
1652
    (name: $name:expr, $($k:ident).+ $($field:tt)* ) => (
1653
        $crate::event!(name: $name, $crate::Level::DEBUG, { $($k).+ $($field)* })
1654
    );
1655
    (name: $name:expr, ?$($k:ident).+ $($field:tt)* ) => (
1656
        $crate::event!(name: $name, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
1657
    );
1658
    (name: $name:expr, %$($k:ident).+ $($field:tt)* ) => (
1659
        $crate::event!(name: $name, $crate::Level::DEBUG, { %$($k).+ $($field)* })
1660
    );
1661
    (name: $name:expr, $($arg:tt)+ ) => (
1662
        $crate::event!(name: $name, $crate::Level::DEBUG, {}, $($arg)+)
1663
    );
1664
1665
    // Target.
1666
    (target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1667
        $crate::event!(target: $target, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
1668
    );
1669
    (target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
1670
        $crate::event!(target: $target, $crate::Level::DEBUG, { $($k).+ $($field)* })
1671
    );
1672
    (target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
1673
        $crate::event!(target: $target, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
1674
    );
1675
    (target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
1676
        $crate::event!(target: $target, $crate::Level::DEBUG, { %$($k).+ $($field)* })
1677
    );
1678
    (target: $target:expr, $($arg:tt)+ ) => (
1679
        $crate::event!(target: $target, $crate::Level::DEBUG, {}, $($arg)+)
1680
    );
1681
1682
    // Parent.
1683
    (parent: $parent:expr, { $($field:tt)+ }, $($arg:tt)+ ) => (
1684
        $crate::event!(
1685
            target: module_path!(),
1686
            parent: $parent,
1687
            $crate::Level::DEBUG,
1688
            { $($field)+ },
1689
            $($arg)+
1690
        )
1691
    );
1692
    (parent: $parent:expr, $($k:ident).+ = $($field:tt)*) => (
1693
        $crate::event!(
1694
            target: module_path!(),
1695
            parent: $parent,
1696
            $crate::Level::DEBUG,
1697
            { $($k).+ = $($field)*}
1698
        )
1699
    );
1700
    (parent: $parent:expr, ?$($k:ident).+ = $($field:tt)*) => (
1701
        $crate::event!(
1702
            target: module_path!(),
1703
            parent: $parent,
1704
            $crate::Level::DEBUG,
1705
            { ?$($k).+ = $($field)*}
1706
        )
1707
    );
1708
    (parent: $parent:expr, %$($k:ident).+ = $($field:tt)*) => (
1709
        $crate::event!(
1710
            target: module_path!(),
1711
            parent: $parent,
1712
            $crate::Level::DEBUG,
1713
            { %$($k).+ = $($field)*}
1714
        )
1715
    );
1716
    (parent: $parent:expr, $($k:ident).+, $($field:tt)*) => (
1717
        $crate::event!(
1718
            target: module_path!(),
1719
            parent: $parent,
1720
            $crate::Level::DEBUG,
1721
            { $($k).+, $($field)*}
1722
        )
1723
    );
1724
    (parent: $parent:expr, ?$($k:ident).+, $($field:tt)*) => (
1725
        $crate::event!(
1726
            target: module_path!(),
1727
            parent: $parent,
1728
            $crate::Level::DEBUG,
1729
            { ?$($k).+, $($field)*}
1730
        )
1731
    );
1732
    (parent: $parent:expr, %$($k:ident).+, $($field:tt)*) => (
1733
        $crate::event!(
1734
            target: module_path!(),
1735
            parent: $parent,
1736
            $crate::Level::DEBUG,
1737
            { %$($k).+, $($field)*}
1738
        )
1739
    );
1740
    (parent: $parent:expr, $($arg:tt)+) => (
1741
        $crate::event!(
1742
            target: module_path!(),
1743
            parent: $parent,
1744
            $crate::Level::DEBUG,
1745
            {},
1746
            $($arg)+
1747
        )
1748
    );
1749
1750
    // ...
1751
    ({ $($field:tt)+ }, $($arg:tt)+ ) => (
1752
        $crate::event!(
1753
            target: module_path!(),
1754
            $crate::Level::DEBUG,
1755
            { $($field)+ },
1756
            $($arg)+
1757
        )
1758
    );
1759
    ($($k:ident).+ = $($field:tt)*) => (
1760
        $crate::event!(
1761
            target: module_path!(),
1762
            $crate::Level::DEBUG,
1763
            { $($k).+ = $($field)*}
1764
        )
1765
    );
1766
    (?$($k:ident).+ = $($field:tt)*) => (
1767
        $crate::event!(
1768
            target: module_path!(),
1769
            $crate::Level::DEBUG,
1770
            { ?$($k).+ = $($field)*}
1771
        )
1772
    );
1773
    (%$($k:ident).+ = $($field:tt)*) => (
1774
        $crate::event!(
1775
            target: module_path!(),
1776
            $crate::Level::DEBUG,
1777
            { %$($k).+ = $($field)*}
1778
        )
1779
    );
1780
    ($($k:ident).+, $($field:tt)*) => (
1781
        $crate::event!(
1782
            target: module_path!(),
1783
            $crate::Level::DEBUG,
1784
            { $($k).+, $($field)*}
1785
        )
1786
    );
1787
    (?$($k:ident).+, $($field:tt)*) => (
1788
        $crate::event!(
1789
            target: module_path!(),
1790
            $crate::Level::DEBUG,
1791
            { ?$($k).+, $($field)*}
1792
        )
1793
    );
1794
    (%$($k:ident).+, $($field:tt)*) => (
1795
        $crate::event!(
1796
            target: module_path!(),
1797
            $crate::Level::DEBUG,
1798
            { %$($k).+, $($field)*}
1799
        )
1800
    );
1801
    (?$($k:ident).+) => (
1802
        $crate::event!(
1803
            target: module_path!(),
1804
            $crate::Level::DEBUG,
1805
            { ?$($k).+ }
1806
        )
1807
    );
1808
    (%$($k:ident).+) => (
1809
        $crate::event!(
1810
            target: module_path!(),
1811
            $crate::Level::DEBUG,
1812
            { %$($k).+ }
1813
        )
1814
    );
1815
    ($($k:ident).+) => (
1816
        $crate::event!(
1817
            target: module_path!(),
1818
            $crate::Level::DEBUG,
1819
            { $($k).+ }
1820
        )
1821
    );
1822
    ($($arg:tt)+) => (
1823
        $crate::event!(
1824
            target: module_path!(),
1825
            $crate::Level::DEBUG,
1826
            $($arg)+
1827
        )
1828
    );
1829
}
1830
1831
/// Constructs an event at the info level.
1832
///
1833
/// This functions similarly to the [`event!`] macro. See [the top-level
1834
/// documentation][lib] for details on the syntax accepted by
1835
/// this macro.
1836
///
1837
/// [`event!`]: crate::event!
1838
/// [lib]: crate#using-the-macros
1839
///
1840
/// # Examples
1841
///
1842
/// ```rust
1843
/// use tracing::info;
1844
/// # // this is so the test will still work in no-std mode
1845
/// # #[derive(Debug)]
1846
/// # pub struct Ipv4Addr;
1847
/// # impl Ipv4Addr { fn new(o1: u8, o2: u8, o3: u8, o4: u8) -> Self { Self } }
1848
/// # fn main() {
1849
/// # struct Connection { port: u32, speed: f32 }
1850
/// use tracing::field;
1851
///
1852
/// let addr = Ipv4Addr::new(127, 0, 0, 1);
1853
/// let conn = Connection { port: 40, speed: 3.20 };
1854
///
1855
/// info!(conn.port, "connected to {:?}", addr);
1856
/// info!(
1857
///     target: "connection_events",
1858
///     ip = ?addr,
1859
///     conn.port,
1860
///     ?conn.speed,
1861
/// );
1862
/// info!(name: "completed", "completed connection to {:?}", addr);
1863
/// # }
1864
/// ```
1865
#[macro_export]
1866
macro_rules! info {
1867
    // Name / target / parent.
1868
    (name: $name:expr, target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1869
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::INFO, { $($field)* }, $($arg)*)
1870
    );
1871
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1872
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::INFO, { $($k).+ $($field)* })
1873
    );
1874
    (name: $name:expr, target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1875
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::INFO, { ?$($k).+ $($field)* })
1876
    );
1877
    (name: $name:expr, target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1878
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::INFO, { %$($k).+ $($field)* })
1879
    );
1880
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1881
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::INFO, {}, $($arg)+)
1882
    );
1883
1884
    // Name / target.
1885
    (name: $name:expr, target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1886
        $crate::event!(name: $name, target: $target, $crate::Level::INFO, { $($field)* }, $($arg)*)
1887
    );
1888
    (name: $name:expr, target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
1889
        $crate::event!(name: $name, target: $target, $crate::Level::INFO, { $($k).+ $($field)* })
1890
    );
1891
    (name: $name:expr, target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
1892
        $crate::event!(name: $name, target: $target, $crate::Level::INFO, { ?$($k).+ $($field)* })
1893
    );
1894
    (name: $name:expr, target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
1895
        $crate::event!(name: $name, target: $target, $crate::Level::INFO, { %$($k).+ $($field)* })
1896
    );
1897
    (name: $name:expr, target: $target:expr, $($arg:tt)+ ) => (
1898
        $crate::event!(name: $name, target: $target, $crate::Level::INFO, {}, $($arg)+)
1899
    );
1900
1901
    // Target / parent.
1902
    (target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1903
        $crate::event!(target: $target, parent: $parent, $crate::Level::INFO, { $($field)* }, $($arg)*)
1904
    );
1905
    (target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1906
        $crate::event!(target: $target, parent: $parent, $crate::Level::INFO, { $($k).+ $($field)* })
1907
    );
1908
    (target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1909
        $crate::event!(target: $target, parent: $parent, $crate::Level::INFO, { ?$($k).+ $($field)* })
1910
    );
1911
    (target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1912
        $crate::event!(target: $target, parent: $parent, $crate::Level::INFO, { %$($k).+ $($field)* })
1913
    );
1914
    (target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1915
        $crate::event!(target: $target, parent: $parent, $crate::Level::INFO, {}, $($arg)+)
1916
    );
1917
1918
    // Name / parent.
1919
    (name: $name:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1920
        $crate::event!(name: $name, parent: $parent, $crate::Level::INFO, { $($field)* }, $($arg)*)
1921
    );
1922
    (name: $name:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
1923
        $crate::event!(name: $name, parent: $parent, $crate::Level::INFO, { $($k).+ $($field)* })
1924
    );
1925
    (name: $name:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
1926
        $crate::event!(name: $name, parent: $parent, $crate::Level::INFO, { ?$($k).+ $($field)* })
1927
    );
1928
    (name: $name:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
1929
        $crate::event!(name: $name, parent: $parent, $crate::Level::INFO, { %$($k).+ $($field)* })
1930
    );
1931
    (name: $name:expr, parent: $parent:expr, $($arg:tt)+ ) => (
1932
        $crate::event!(name: $name, parent: $parent, $crate::Level::INFO, {}, $($arg)+)
1933
    );
1934
1935
    // Name.
1936
    (name: $name:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1937
        $crate::event!(name: $name, $crate::Level::INFO, { $($field)* }, $($arg)*)
1938
    );
1939
    (name: $name:expr, $($k:ident).+ $($field:tt)* ) => (
1940
        $crate::event!(name: $name, $crate::Level::INFO, { $($k).+ $($field)* })
1941
    );
1942
    (name: $name:expr, ?$($k:ident).+ $($field:tt)* ) => (
1943
        $crate::event!(name: $name, $crate::Level::INFO, { ?$($k).+ $($field)* })
1944
    );
1945
    (name: $name:expr, %$($k:ident).+ $($field:tt)* ) => (
1946
        $crate::event!(name: $name, $crate::Level::INFO, { %$($k).+ $($field)* })
1947
    );
1948
    (name: $name:expr, $($arg:tt)+ ) => (
1949
        $crate::event!(name: $name, $crate::Level::INFO, {}, $($arg)+)
1950
    );
1951
1952
    // Target.
1953
    (target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
1954
        $crate::event!(target: $target, $crate::Level::INFO, { $($field)* }, $($arg)*)
1955
    );
1956
    (target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
1957
        $crate::event!(target: $target, $crate::Level::INFO, { $($k).+ $($field)* })
1958
    );
1959
    (target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
1960
        $crate::event!(target: $target, $crate::Level::INFO, { ?$($k).+ $($field)* })
1961
    );
1962
    (target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
1963
        $crate::event!(target: $target, $crate::Level::INFO, { %$($k).+ $($field)* })
1964
    );
1965
    (target: $target:expr, $($arg:tt)+ ) => (
1966
        $crate::event!(target: $target, $crate::Level::INFO, {}, $($arg)+)
1967
    );
1968
1969
    // Parent.
1970
    (parent: $parent:expr, { $($field:tt)+ }, $($arg:tt)+ ) => (
1971
        $crate::event!(
1972
            target: module_path!(),
1973
            parent: $parent,
1974
            $crate::Level::INFO,
1975
            { $($field)+ },
1976
            $($arg)+
1977
        )
1978
    );
1979
    (parent: $parent:expr, $($k:ident).+ = $($field:tt)*) => (
1980
        $crate::event!(
1981
            target: module_path!(),
1982
            parent: $parent,
1983
            $crate::Level::INFO,
1984
            { $($k).+ = $($field)*}
1985
        )
1986
    );
1987
    (parent: $parent:expr, ?$($k:ident).+ = $($field:tt)*) => (
1988
        $crate::event!(
1989
            target: module_path!(),
1990
            parent: $parent,
1991
            $crate::Level::INFO,
1992
            { ?$($k).+ = $($field)*}
1993
        )
1994
    );
1995
    (parent: $parent:expr, %$($k:ident).+ = $($field:tt)*) => (
1996
        $crate::event!(
1997
            target: module_path!(),
1998
            parent: $parent,
1999
            $crate::Level::INFO,
2000
            { %$($k).+ = $($field)*}
2001
        )
2002
    );
2003
    (parent: $parent:expr, $($k:ident).+, $($field:tt)*) => (
2004
        $crate::event!(
2005
            target: module_path!(),
2006
            parent: $parent,
2007
            $crate::Level::INFO,
2008
            { $($k).+, $($field)*}
2009
        )
2010
    );
2011
    (parent: $parent:expr, ?$($k:ident).+, $($field:tt)*) => (
2012
        $crate::event!(
2013
            target: module_path!(),
2014
            parent: $parent,
2015
            $crate::Level::INFO,
2016
            { ?$($k).+, $($field)*}
2017
        )
2018
    );
2019
    (parent: $parent:expr, %$($k:ident).+, $($field:tt)*) => (
2020
        $crate::event!(
2021
            target: module_path!(),
2022
            parent: $parent,
2023
            $crate::Level::INFO,
2024
            { %$($k).+, $($field)*}
2025
        )
2026
    );
2027
    (parent: $parent:expr, $($arg:tt)+) => (
2028
        $crate::event!(
2029
            target: module_path!(),
2030
            parent: $parent,
2031
            $crate::Level::INFO,
2032
            {},
2033
            $($arg)+
2034
        )
2035
    );
2036
2037
    // ...
2038
    ({ $($field:tt)+ }, $($arg:tt)+ ) => (
2039
        $crate::event!(
2040
            target: module_path!(),
2041
            $crate::Level::INFO,
2042
            { $($field)+ },
2043
            $($arg)+
2044
        )
2045
    );
2046
    ($($k:ident).+ = $($field:tt)*) => (
2047
        $crate::event!(
2048
            target: module_path!(),
2049
            $crate::Level::INFO,
2050
            { $($k).+ = $($field)*}
2051
        )
2052
    );
2053
    (?$($k:ident).+ = $($field:tt)*) => (
2054
        $crate::event!(
2055
            target: module_path!(),
2056
            $crate::Level::INFO,
2057
            { ?$($k).+ = $($field)*}
2058
        )
2059
    );
2060
    (%$($k:ident).+ = $($field:tt)*) => (
2061
        $crate::event!(
2062
            target: module_path!(),
2063
            $crate::Level::INFO,
2064
            { %$($k).+ = $($field)*}
2065
        )
2066
    );
2067
    ($($k:ident).+, $($field:tt)*) => (
2068
        $crate::event!(
2069
            target: module_path!(),
2070
            $crate::Level::INFO,
2071
            { $($k).+, $($field)*}
2072
        )
2073
    );
2074
    (?$($k:ident).+, $($field:tt)*) => (
2075
        $crate::event!(
2076
            target: module_path!(),
2077
            $crate::Level::INFO,
2078
            { ?$($k).+, $($field)*}
2079
        )
2080
    );
2081
    (%$($k:ident).+, $($field:tt)*) => (
2082
        $crate::event!(
2083
            target: module_path!(),
2084
            $crate::Level::INFO,
2085
            { %$($k).+, $($field)*}
2086
        )
2087
    );
2088
    (?$($k:ident).+) => (
2089
        $crate::event!(
2090
            target: module_path!(),
2091
            $crate::Level::INFO,
2092
            { ?$($k).+ }
2093
        )
2094
    );
2095
    (%$($k:ident).+) => (
2096
        $crate::event!(
2097
            target: module_path!(),
2098
            $crate::Level::INFO,
2099
            { %$($k).+ }
2100
        )
2101
    );
2102
    ($($k:ident).+) => (
2103
        $crate::event!(
2104
            target: module_path!(),
2105
            $crate::Level::INFO,
2106
            { $($k).+ }
2107
        )
2108
    );
2109
    ($($arg:tt)+) => (
2110
        $crate::event!(
2111
            target: module_path!(),
2112
            $crate::Level::INFO,
2113
            $($arg)+
2114
        )
2115
    );
2116
}
2117
2118
/// Constructs an event at the warn level.
2119
///
2120
/// This functions similarly to the [`event!`] macro. See [the top-level
2121
/// documentation][lib] for details on the syntax accepted by
2122
/// this macro.
2123
///
2124
/// [`event!`]: crate::event!
2125
/// [lib]: crate#using-the-macros
2126
///
2127
/// # Examples
2128
///
2129
/// ```rust
2130
/// use tracing::warn;
2131
/// # fn main() {
2132
///
2133
/// let warn_description = "Invalid Input";
2134
/// let input = &[0x27, 0x45];
2135
///
2136
/// warn!(?input, warning = warn_description);
2137
/// warn!(
2138
///     target: "input_events",
2139
///     warning = warn_description,
2140
///     "Received warning for input: {:?}", input,
2141
/// );
2142
/// warn!(name: "invalid", ?input);
2143
/// # }
2144
/// ```
2145
#[macro_export]
2146
macro_rules! warn {
2147
    // Name / target / parent.
2148
    (name: $name:expr, target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2149
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::WARN, { $($field)* }, $($arg)*)
2150
    );
2151
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
2152
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::WARN, { $($k).+ $($field)* })
2153
    );
2154
    (name: $name:expr, target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
2155
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::WARN, { ?$($k).+ $($field)* })
2156
    );
2157
    (name: $name:expr, target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
2158
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::WARN, { %$($k).+ $($field)* })
2159
    );
2160
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
2161
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::WARN, {}, $($arg)+)
2162
    );
2163
2164
    // Name / target.
2165
    (name: $name:expr, target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2166
        $crate::event!(name: $name, target: $target, $crate::Level::WARN, { $($field)* }, $($arg)*)
2167
    );
2168
    (name: $name:expr, target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
2169
        $crate::event!(name: $name, target: $target, $crate::Level::WARN, { $($k).+ $($field)* })
2170
    );
2171
    (name: $name:expr, target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
2172
        $crate::event!(name: $name, target: $target, $crate::Level::WARN, { ?$($k).+ $($field)* })
2173
    );
2174
    (name: $name:expr, target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
2175
        $crate::event!(name: $name, target: $target, $crate::Level::WARN, { %$($k).+ $($field)* })
2176
    );
2177
    (name: $name:expr, target: $target:expr, $($arg:tt)+ ) => (
2178
        $crate::event!(name: $name, target: $target, $crate::Level::WARN, {}, $($arg)+)
2179
    );
2180
2181
    // Target / parent.
2182
    (target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2183
        $crate::event!(target: $target, parent: $parent, $crate::Level::WARN, { $($field)* }, $($arg)*)
2184
    );
2185
    (target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
2186
        $crate::event!(target: $target, parent: $parent, $crate::Level::WARN, { $($k).+ $($field)* })
2187
    );
2188
    (target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
2189
        $crate::event!(target: $target, parent: $parent, $crate::Level::WARN, { ?$($k).+ $($field)* })
2190
    );
2191
    (target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
2192
        $crate::event!(target: $target, parent: $parent, $crate::Level::WARN, { %$($k).+ $($field)* })
2193
    );
2194
    (target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
2195
        $crate::event!(target: $target, parent: $parent, $crate::Level::WARN, {}, $($arg)+)
2196
    );
2197
2198
    // Name / parent.
2199
    (name: $name:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2200
        $crate::event!(name: $name, parent: $parent, $crate::Level::WARN, { $($field)* }, $($arg)*)
2201
    );
2202
    (name: $name:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
2203
        $crate::event!(name: $name, parent: $parent, $crate::Level::WARN, { $($k).+ $($field)* })
2204
    );
2205
    (name: $name:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
2206
        $crate::event!(name: $name, parent: $parent, $crate::Level::WARN, { ?$($k).+ $($field)* })
2207
    );
2208
    (name: $name:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
2209
        $crate::event!(name: $name, parent: $parent, $crate::Level::WARN, { %$($k).+ $($field)* })
2210
    );
2211
    (name: $name:expr, parent: $parent:expr, $($arg:tt)+ ) => (
2212
        $crate::event!(name: $name, parent: $parent, $crate::Level::WARN, {}, $($arg)+)
2213
    );
2214
2215
    // Name.
2216
    (name: $name:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2217
        $crate::event!(name: $name, $crate::Level::WARN, { $($field)* }, $($arg)*)
2218
    );
2219
    (name: $name:expr, $($k:ident).+ $($field:tt)* ) => (
2220
        $crate::event!(name: $name, $crate::Level::WARN, { $($k).+ $($field)* })
2221
    );
2222
    (name: $name:expr, ?$($k:ident).+ $($field:tt)* ) => (
2223
        $crate::event!(name: $name, $crate::Level::WARN, { ?$($k).+ $($field)* })
2224
    );
2225
    (name: $name:expr, %$($k:ident).+ $($field:tt)* ) => (
2226
        $crate::event!(name: $name, $crate::Level::WARN, { %$($k).+ $($field)* })
2227
    );
2228
    (name: $name:expr, $($arg:tt)+ ) => (
2229
        $crate::event!(name: $name, $crate::Level::WARN, {}, $($arg)+)
2230
    );
2231
2232
    // Target.
2233
    (target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2234
        $crate::event!(target: $target, $crate::Level::WARN, { $($field)* }, $($arg)*)
2235
    );
2236
    (target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
2237
        $crate::event!(target: $target, $crate::Level::WARN, { $($k).+ $($field)* })
2238
    );
2239
    (target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
2240
        $crate::event!(target: $target, $crate::Level::WARN, { ?$($k).+ $($field)* })
2241
    );
2242
    (target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
2243
        $crate::event!(target: $target, $crate::Level::WARN, { %$($k).+ $($field)* })
2244
    );
2245
    (target: $target:expr, $($arg:tt)+ ) => (
2246
        $crate::event!(target: $target, $crate::Level::WARN, {}, $($arg)+)
2247
    );
2248
2249
    // Parent.
2250
    (parent: $parent:expr, { $($field:tt)+ }, $($arg:tt)+ ) => (
2251
        $crate::event!(
2252
            target: module_path!(),
2253
            parent: $parent,
2254
            $crate::Level::WARN,
2255
            { $($field)+ },
2256
            $($arg)+
2257
        )
2258
    );
2259
    (parent: $parent:expr, $($k:ident).+ = $($field:tt)*) => (
2260
        $crate::event!(
2261
            target: module_path!(),
2262
            parent: $parent,
2263
            $crate::Level::WARN,
2264
            { $($k).+ = $($field)*}
2265
        )
2266
    );
2267
    (parent: $parent:expr, ?$($k:ident).+ = $($field:tt)*) => (
2268
        $crate::event!(
2269
            target: module_path!(),
2270
            parent: $parent,
2271
            $crate::Level::WARN,
2272
            { ?$($k).+ = $($field)*}
2273
        )
2274
    );
2275
    (parent: $parent:expr, %$($k:ident).+ = $($field:tt)*) => (
2276
        $crate::event!(
2277
            target: module_path!(),
2278
            parent: $parent,
2279
            $crate::Level::WARN,
2280
            { %$($k).+ = $($field)*}
2281
        )
2282
    );
2283
    (parent: $parent:expr, $($k:ident).+, $($field:tt)*) => (
2284
        $crate::event!(
2285
            target: module_path!(),
2286
            parent: $parent,
2287
            $crate::Level::WARN,
2288
            { $($k).+, $($field)*}
2289
        )
2290
    );
2291
    (parent: $parent:expr, ?$($k:ident).+, $($field:tt)*) => (
2292
        $crate::event!(
2293
            target: module_path!(),
2294
            parent: $parent,
2295
            $crate::Level::WARN,
2296
            { ?$($k).+, $($field)*}
2297
        )
2298
    );
2299
    (parent: $parent:expr, %$($k:ident).+, $($field:tt)*) => (
2300
        $crate::event!(
2301
            target: module_path!(),
2302
            parent: $parent,
2303
            $crate::Level::WARN,
2304
            { %$($k).+, $($field)*}
2305
        )
2306
    );
2307
    (parent: $parent:expr, $($arg:tt)+) => (
2308
        $crate::event!(
2309
            target: module_path!(),
2310
            parent: $parent,
2311
            $crate::Level::WARN,
2312
            {},
2313
            $($arg)+
2314
        )
2315
    );
2316
2317
    // ...
2318
    ({ $($field:tt)+ }, $($arg:tt)+ ) => (
2319
        $crate::event!(
2320
            target: module_path!(),
2321
            $crate::Level::WARN,
2322
            { $($field)+ },
2323
            $($arg)+
2324
        )
2325
    );
2326
    ($($k:ident).+ = $($field:tt)*) => (
2327
        $crate::event!(
2328
            target: module_path!(),
2329
            $crate::Level::WARN,
2330
            { $($k).+ = $($field)*}
2331
        )
2332
    );
2333
    (?$($k:ident).+ = $($field:tt)*) => (
2334
        $crate::event!(
2335
            target: module_path!(),
2336
            $crate::Level::WARN,
2337
            { ?$($k).+ = $($field)*}
2338
        )
2339
    );
2340
    (%$($k:ident).+ = $($field:tt)*) => (
2341
        $crate::event!(
2342
            target: module_path!(),
2343
            $crate::Level::WARN,
2344
            { %$($k).+ = $($field)*}
2345
        )
2346
    );
2347
    ($($k:ident).+, $($field:tt)*) => (
2348
        $crate::event!(
2349
            target: module_path!(),
2350
            $crate::Level::WARN,
2351
            { $($k).+, $($field)*}
2352
        )
2353
    );
2354
    (?$($k:ident).+, $($field:tt)*) => (
2355
        $crate::event!(
2356
            target: module_path!(),
2357
            $crate::Level::WARN,
2358
            { ?$($k).+, $($field)*}
2359
        )
2360
    );
2361
    (%$($k:ident).+, $($field:tt)*) => (
2362
        $crate::event!(
2363
            target: module_path!(),
2364
            $crate::Level::WARN,
2365
            { %$($k).+, $($field)*}
2366
        )
2367
    );
2368
    (?$($k:ident).+) => (
2369
        $crate::event!(
2370
            target: module_path!(),
2371
            $crate::Level::WARN,
2372
            { ?$($k).+ }
2373
        )
2374
    );
2375
    (%$($k:ident).+) => (
2376
        $crate::event!(
2377
            target: module_path!(),
2378
            $crate::Level::WARN,
2379
            { %$($k).+ }
2380
        )
2381
    );
2382
    ($($k:ident).+) => (
2383
        $crate::event!(
2384
            target: module_path!(),
2385
            $crate::Level::WARN,
2386
            { $($k).+ }
2387
        )
2388
    );
2389
    ($($arg:tt)+) => (
2390
        $crate::event!(
2391
            target: module_path!(),
2392
            $crate::Level::WARN,
2393
            $($arg)+
2394
        )
2395
    );
2396
}
2397
2398
/// Constructs an event at the error level.
2399
///
2400
/// This functions similarly to the [`event!`] macro. See [the top-level
2401
/// documentation][lib] for details on the syntax accepted by
2402
/// this macro.
2403
///
2404
/// [`event!`]: crate::event!
2405
/// [lib]: crate#using-the-macros
2406
///
2407
/// # Examples
2408
///
2409
/// ```rust
2410
/// use tracing::error;
2411
/// # fn main() {
2412
///
2413
/// let (err_info, port) = ("No connection", 22);
2414
///
2415
/// error!(port, error = %err_info);
2416
/// error!(target: "app_events", "App Error: {}", err_info);
2417
/// error!({ info = err_info }, "error on port: {}", port);
2418
/// error!(name: "invalid_input", "Invalid input: {}", err_info);
2419
/// # }
2420
/// ```
2421
#[macro_export]
2422
macro_rules! error {
2423
    // Name / target / parent.
2424
    (name: $name:expr, target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2425
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::ERROR, { $($field)* }, $($arg)*)
2426
    );
2427
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
2428
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::ERROR, { $($k).+ $($field)* })
2429
    );
2430
    (name: $name:expr, target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
2431
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::ERROR, { ?$($k).+ $($field)* })
2432
    );
2433
    (name: $name:expr, target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
2434
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::ERROR, { %$($k).+ $($field)* })
2435
    );
2436
    (name: $name:expr, target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
2437
        $crate::event!(name: $name, target: $target, parent: $parent, $crate::Level::ERROR, {}, $($arg)+)
2438
    );
2439
2440
    // Name / target.
2441
    (name: $name:expr, target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2442
        $crate::event!(name: $name, target: $target, $crate::Level::ERROR, { $($field)* }, $($arg)*)
2443
    );
2444
    (name: $name:expr, target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
2445
        $crate::event!(name: $name, target: $target, $crate::Level::ERROR, { $($k).+ $($field)* })
2446
    );
2447
    (name: $name:expr, target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
2448
        $crate::event!(name: $name, target: $target, $crate::Level::ERROR, { ?$($k).+ $($field)* })
2449
    );
2450
    (name: $name:expr, target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
2451
        $crate::event!(name: $name, target: $target, $crate::Level::ERROR, { %$($k).+ $($field)* })
2452
    );
2453
    (name: $name:expr, target: $target:expr, $($arg:tt)+ ) => (
2454
        $crate::event!(name: $name, target: $target, $crate::Level::ERROR, {}, $($arg)+)
2455
    );
2456
2457
    // Target / parent.
2458
    (target: $target:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2459
        $crate::event!(target: $target, parent: $parent, $crate::Level::ERROR, { $($field)* }, $($arg)*)
2460
    );
2461
    (target: $target:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
2462
        $crate::event!(target: $target, parent: $parent, $crate::Level::ERROR, { $($k).+ $($field)* })
2463
    );
2464
    (target: $target:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
2465
        $crate::event!(target: $target, parent: $parent, $crate::Level::ERROR, { ?$($k).+ $($field)* })
2466
    );
2467
    (target: $target:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
2468
        $crate::event!(target: $target, parent: $parent, $crate::Level::ERROR, { %$($k).+ $($field)* })
2469
    );
2470
    (target: $target:expr, parent: $parent:expr, $($arg:tt)+ ) => (
2471
        $crate::event!(target: $target, parent: $parent, $crate::Level::ERROR, {}, $($arg)+)
2472
    );
2473
2474
    // Name / parent.
2475
    (name: $name:expr, parent: $parent:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2476
        $crate::event!(name: $name, parent: $parent, $crate::Level::ERROR, { $($field)* }, $($arg)*)
2477
    );
2478
    (name: $name:expr, parent: $parent:expr, $($k:ident).+ $($field:tt)* ) => (
2479
        $crate::event!(name: $name, parent: $parent, $crate::Level::ERROR, { $($k).+ $($field)* })
2480
    );
2481
    (name: $name:expr, parent: $parent:expr, ?$($k:ident).+ $($field:tt)* ) => (
2482
        $crate::event!(name: $name, parent: $parent, $crate::Level::ERROR, { ?$($k).+ $($field)* })
2483
    );
2484
    (name: $name:expr, parent: $parent:expr, %$($k:ident).+ $($field:tt)* ) => (
2485
        $crate::event!(name: $name, parent: $parent, $crate::Level::ERROR, { %$($k).+ $($field)* })
2486
    );
2487
    (name: $name:expr, parent: $parent:expr, $($arg:tt)+ ) => (
2488
        $crate::event!(name: $name, parent: $parent, $crate::Level::ERROR, {}, $($arg)+)
2489
    );
2490
2491
    // Name.
2492
    (name: $name:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2493
        $crate::event!(name: $name, $crate::Level::ERROR, { $($field)* }, $($arg)*)
2494
    );
2495
    (name: $name:expr, $($k:ident).+ $($field:tt)* ) => (
2496
        $crate::event!(name: $name, $crate::Level::ERROR, { $($k).+ $($field)* })
2497
    );
2498
    (name: $name:expr, ?$($k:ident).+ $($field:tt)* ) => (
2499
        $crate::event!(name: $name, $crate::Level::ERROR, { ?$($k).+ $($field)* })
2500
    );
2501
    (name: $name:expr, %$($k:ident).+ $($field:tt)* ) => (
2502
        $crate::event!(name: $name, $crate::Level::ERROR, { %$($k).+ $($field)* })
2503
    );
2504
    (name: $name:expr, $($arg:tt)+ ) => (
2505
        $crate::event!(name: $name, $crate::Level::ERROR, {}, $($arg)+)
2506
    );
2507
2508
    // Target.
2509
    (target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
2510
        $crate::event!(target: $target, $crate::Level::ERROR, { $($field)* }, $($arg)*)
2511
    );
2512
    (target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
2513
        $crate::event!(target: $target, $crate::Level::ERROR, { $($k).+ $($field)* })
2514
    );
2515
    (target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
2516
        $crate::event!(target: $target, $crate::Level::ERROR, { ?$($k).+ $($field)* })
2517
    );
2518
    (target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
2519
        $crate::event!(target: $target, $crate::Level::ERROR, { %$($k).+ $($field)* })
2520
    );
2521
    (target: $target:expr, $($arg:tt)+ ) => (
2522
        $crate::event!(target: $target, $crate::Level::ERROR, {}, $($arg)+)
2523
    );
2524
2525
    // Parent.
2526
    (parent: $parent:expr, { $($field:tt)+ }, $($arg:tt)+ ) => (
2527
        $crate::event!(
2528
            target: module_path!(),
2529
            parent: $parent,
2530
            $crate::Level::ERROR,
2531
            { $($field)+ },
2532
            $($arg)+
2533
        )
2534
    );
2535
    (parent: $parent:expr, $($k:ident).+ = $($field:tt)*) => (
2536
        $crate::event!(
2537
            target: module_path!(),
2538
            parent: $parent,
2539
            $crate::Level::ERROR,
2540
            { $($k).+ = $($field)*}
2541
        )
2542
    );
2543
    (parent: $parent:expr, ?$($k:ident).+ = $($field:tt)*) => (
2544
        $crate::event!(
2545
            target: module_path!(),
2546
            parent: $parent,
2547
            $crate::Level::ERROR,
2548
            { ?$($k).+ = $($field)*}
2549
        )
2550
    );
2551
    (parent: $parent:expr, %$($k:ident).+ = $($field:tt)*) => (
2552
        $crate::event!(
2553
            target: module_path!(),
2554
            parent: $parent,
2555
            $crate::Level::ERROR,
2556
            { %$($k).+ = $($field)*}
2557
        )
2558
    );
2559
    (parent: $parent:expr, $($k:ident).+, $($field:tt)*) => (
2560
        $crate::event!(
2561
            target: module_path!(),
2562
            parent: $parent,
2563
            $crate::Level::ERROR,
2564
            { $($k).+, $($field)*}
2565
        )
2566
    );
2567
    (parent: $parent:expr, ?$($k:ident).+, $($field:tt)*) => (
2568
        $crate::event!(
2569
            target: module_path!(),
2570
            parent: $parent,
2571
            $crate::Level::ERROR,
2572
            { ?$($k).+, $($field)*}
2573
        )
2574
    );
2575
    (parent: $parent:expr, %$($k:ident).+, $($field:tt)*) => (
2576
        $crate::event!(
2577
            target: module_path!(),
2578
            parent: $parent,
2579
            $crate::Level::ERROR,
2580
            { %$($k).+, $($field)*}
2581
        )
2582
    );
2583
    (parent: $parent:expr, $($arg:tt)+) => (
2584
        $crate::event!(
2585
            target: module_path!(),
2586
            parent: $parent,
2587
            $crate::Level::ERROR,
2588
            {},
2589
            $($arg)+
2590
        )
2591
    );
2592
2593
    // ...
2594
    ({ $($field:tt)+ }, $($arg:tt)+ ) => (
2595
        $crate::event!(
2596
            target: module_path!(),
2597
            $crate::Level::ERROR,
2598
            { $($field)+ },
2599
            $($arg)+
2600
        )
2601
    );
2602
    ($($k:ident).+ = $($field:tt)*) => (
2603
        $crate::event!(
2604
            target: module_path!(),
2605
            $crate::Level::ERROR,
2606
            { $($k).+ = $($field)*}
2607
        )
2608
    );
2609
    (?$($k:ident).+ = $($field:tt)*) => (
2610
        $crate::event!(
2611
            target: module_path!(),
2612
            $crate::Level::ERROR,
2613
            { ?$($k).+ = $($field)*}
2614
        )
2615
    );
2616
    (%$($k:ident).+ = $($field:tt)*) => (
2617
        $crate::event!(
2618
            target: module_path!(),
2619
            $crate::Level::ERROR,
2620
            { %$($k).+ = $($field)*}
2621
        )
2622
    );
2623
    ($($k:ident).+, $($field:tt)*) => (
2624
        $crate::event!(
2625
            target: module_path!(),
2626
            $crate::Level::ERROR,
2627
            { $($k).+, $($field)*}
2628
        )
2629
    );
2630
    (?$($k:ident).+, $($field:tt)*) => (
2631
        $crate::event!(
2632
            target: module_path!(),
2633
            $crate::Level::ERROR,
2634
            { ?$($k).+, $($field)*}
2635
        )
2636
    );
2637
    (%$($k:ident).+, $($field:tt)*) => (
2638
        $crate::event!(
2639
            target: module_path!(),
2640
            $crate::Level::ERROR,
2641
            { %$($k).+, $($field)*}
2642
        )
2643
    );
2644
    (?$($k:ident).+) => (
2645
        $crate::event!(
2646
            target: module_path!(),
2647
            $crate::Level::ERROR,
2648
            { ?$($k).+ }
2649
        )
2650
    );
2651
    (%$($k:ident).+) => (
2652
        $crate::event!(
2653
            target: module_path!(),
2654
            $crate::Level::ERROR,
2655
            { %$($k).+ }
2656
        )
2657
    );
2658
    ($($k:ident).+) => (
2659
        $crate::event!(
2660
            target: module_path!(),
2661
            $crate::Level::ERROR,
2662
            { $($k).+ }
2663
        )
2664
    );
2665
    ($($arg:tt)+) => (
2666
        $crate::event!(
2667
            target: module_path!(),
2668
            $crate::Level::ERROR,
2669
            $($arg)+
2670
        )
2671
    );
2672
}
2673
2674
/// Constructs a new static callsite for a span or event.
2675
#[doc(hidden)]
2676
#[macro_export]
2677
macro_rules! callsite {
2678
    (name: $name:expr, kind: $kind:expr, fields: $($fields:tt)*) => {{
2679
        $crate::callsite! {
2680
            name: $name,
2681
            kind: $kind,
2682
            target: module_path!(),
2683
            level: $crate::Level::TRACE,
2684
            fields: $($fields)*
2685
        }
2686
    }};
2687
    (
2688
        name: $name:expr,
2689
        kind: $kind:expr,
2690
        level: $lvl:expr,
2691
        fields: $($fields:tt)*
2692
    ) => {{
2693
        $crate::callsite! {
2694
            name: $name,
2695
            kind: $kind,
2696
            target: module_path!(),
2697
            level: $lvl,
2698
            fields: $($fields)*
2699
        }
2700
    }};
2701
    (
2702
        name: $name:expr,
2703
        kind: $kind:expr,
2704
        target: $target:expr,
2705
        level: $lvl:expr,
2706
        fields: $($fields:tt)*
2707
    ) => {{
2708
        static META: $crate::Metadata<'static> = {
2709
            $crate::metadata! {
2710
                name: $name,
2711
                target: $target,
2712
                level: $lvl,
2713
                fields: $crate::fieldset!( $($fields)* ),
2714
                callsite: &__CALLSITE,
2715
                kind: $kind,
2716
            }
2717
        };
2718
        static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite::DefaultCallsite::new(&META);
2719
        __CALLSITE.register();
2720
        &__CALLSITE
2721
    }};
2722
}
2723
2724
/// Constructs a new static callsite for a span or event.
2725
#[doc(hidden)]
2726
#[macro_export]
2727
macro_rules! callsite2 {
2728
    (name: $name:expr, kind: $kind:expr, fields: $($fields:tt)*) => {{
2729
        $crate::callsite2! {
2730
            name: $name,
2731
            kind: $kind,
2732
            target: module_path!(),
2733
            level: $crate::Level::TRACE,
2734
            fields: $($fields)*
2735
        }
2736
    }};
2737
    (
2738
        name: $name:expr,
2739
        kind: $kind:expr,
2740
        level: $lvl:expr,
2741
        fields: $($fields:tt)*
2742
    ) => {{
2743
        $crate::callsite2! {
2744
            name: $name,
2745
            kind: $kind,
2746
            target: module_path!(),
2747
            level: $lvl,
2748
            fields: $($fields)*
2749
        }
2750
    }};
2751
    (
2752
        name: $name:expr,
2753
        kind: $kind:expr,
2754
        target: $target:expr,
2755
        level: $lvl:expr,
2756
        fields: $($fields:tt)*
2757
    ) => {{
2758
        static META: $crate::Metadata<'static> = {
2759
            $crate::metadata! {
2760
                name: $name,
2761
                target: $target,
2762
                level: $lvl,
2763
                fields: $crate::fieldset!( $($fields)* ),
2764
                callsite: &__CALLSITE,
2765
                kind: $kind,
2766
            }
2767
        };
2768
        $crate::callsite::DefaultCallsite::new(&META)
2769
    }};
2770
}
2771
2772
#[macro_export]
2773
// TODO: determine if this ought to be public API?`
2774
#[doc(hidden)]
2775
macro_rules! level_enabled {
2776
    ($lvl:expr) => {
2777
        $lvl <= $crate::level_filters::STATIC_MAX_LEVEL
2778
            && $lvl <= $crate::level_filters::LevelFilter::current()
2779
    };
2780
}
2781
2782
#[doc(hidden)]
2783
#[macro_export]
2784
macro_rules! valueset {
2785
2786
    // === base case ===
2787
    (@ { $(,)* $($val:expr),* $(,)* }, $next:expr $(,)*) => {
2788
        &[ $($val),* ]
2789
    };
2790
2791
    // === recursive case (more tts) ===
2792
2793
    // TODO(#1138): determine a new syntax for uninitialized span fields, and
2794
    // re-enable this.
2795
    // (@{ $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = _, $($rest:tt)*) => {
2796
    //     $crate::valueset!(@ { $($out),*, (&$next, None) }, $next, $($rest)*)
2797
    // };
2798
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = ?$val:expr, $($rest:tt)*) => {
2799
        $crate::valueset!(
2800
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2801
            $next,
2802
            $($rest)*
2803
        )
2804
    };
2805
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = %$val:expr, $($rest:tt)*) => {
2806
        $crate::valueset!(
2807
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2808
            $next,
2809
            $($rest)*
2810
        )
2811
    };
2812
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = $val:expr, $($rest:tt)*) => {
2813
        $crate::valueset!(
2814
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2815
            $next,
2816
            $($rest)*
2817
        )
2818
    };
2819
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+, $($rest:tt)*) => {
2820
        $crate::valueset!(
2821
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn Value)) },
2822
            $next,
2823
            $($rest)*
2824
        )
2825
    };
2826
    (@ { $(,)* $($out:expr),* }, $next:expr, ?$($k:ident).+, $($rest:tt)*) => {
2827
        $crate::valueset!(
2828
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$($k).+) as &dyn Value)) },
2829
            $next,
2830
            $($rest)*
2831
        )
2832
    };
2833
    (@ { $(,)* $($out:expr),* }, $next:expr, %$($k:ident).+, $($rest:tt)*) => {
2834
        $crate::valueset!(
2835
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$($k).+) as &dyn Value)) },
2836
            $next,
2837
            $($rest)*
2838
        )
2839
    };
2840
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = ?$val:expr) => {
2841
        $crate::valueset!(
2842
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2843
            $next,
2844
        )
2845
    };
2846
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = %$val:expr) => {
2847
        $crate::valueset!(
2848
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2849
            $next,
2850
        )
2851
    };
2852
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = $val:expr) => {
2853
        $crate::valueset!(
2854
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2855
            $next,
2856
        )
2857
    };
2858
    (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+) => {
2859
        $crate::valueset!(
2860
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn Value)) },
2861
            $next,
2862
        )
2863
    };
2864
    (@ { $(,)* $($out:expr),* }, $next:expr, ?$($k:ident).+) => {
2865
        $crate::valueset!(
2866
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$($k).+) as &dyn Value)) },
2867
            $next,
2868
        )
2869
    };
2870
    (@ { $(,)* $($out:expr),* }, $next:expr, %$($k:ident).+) => {
2871
        $crate::valueset!(
2872
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$($k).+) as &dyn Value)) },
2873
            $next,
2874
        )
2875
    };
2876
2877
    // Handle literal names
2878
    (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = ?$val:expr, $($rest:tt)*) => {
2879
        $crate::valueset!(
2880
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2881
            $next,
2882
            $($rest)*
2883
        )
2884
    };
2885
    (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = %$val:expr, $($rest:tt)*) => {
2886
        $crate::valueset!(
2887
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2888
            $next,
2889
            $($rest)*
2890
        )
2891
    };
2892
    (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = $val:expr, $($rest:tt)*) => {
2893
        $crate::valueset!(
2894
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2895
            $next,
2896
            $($rest)*
2897
        )
2898
    };
2899
    (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = ?$val:expr) => {
2900
        $crate::valueset!(
2901
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2902
            $next,
2903
        )
2904
    };
2905
    (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = %$val:expr) => {
2906
        $crate::valueset!(
2907
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2908
            $next,
2909
        )
2910
    };
2911
    (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = $val:expr) => {
2912
        $crate::valueset!(
2913
            @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2914
            $next,
2915
        )
2916
    };
2917
2918
    // Handle constant names
2919
    (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = ?$val:expr, $($rest:tt)*) => {
2920
        $crate::valueset!(
2921
            @ { $($out),*, (&$next, Some(&debug(&$val) as &dyn Value)) },
2922
            $next,
2923
            $($rest)*
2924
        )
2925
    };
2926
    (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = %$val:expr, $($rest:tt)*) => {
2927
        $crate::valueset!(
2928
            @ { $($out),*, (&$next, Some(&display(&$val) as &dyn Value)) },
2929
            $next,
2930
            $($rest)*
2931
        )
2932
    };
2933
    (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = $val:expr, $($rest:tt)*) => {
2934
        $crate::valueset!(
2935
            @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2936
            $next,
2937
            $($rest)*
2938
        )
2939
    };
2940
    (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = ?$val:expr) => {
2941
        $crate::valueset!(
2942
            @ { $($out),*, (&$next, Some(&debug(&$val) as &dyn Value)) },
2943
            $next,
2944
        )
2945
    };
2946
    (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = %$val:expr) => {
2947
        $crate::valueset!(
2948
            @ { $($out),*, (&$next, Some(&display(&$val) as &dyn Value)) },
2949
            $next,
2950
        )
2951
    };
2952
    (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = $val:expr) => {
2953
        $crate::valueset!(
2954
            @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2955
            $next,
2956
        )
2957
    };
2958
2959
    // Remainder is unparsable, but exists --- must be format args!
2960
    (@ { $(,)* $($out:expr),* }, $next:expr, $($rest:tt)+) => {
2961
        $crate::valueset!(@ { (&$next, $crate::__macro_support::Option::Some(&$crate::__macro_support::format_args!($($rest)+) as &dyn Value)), $($out),* }, $next, )
2962
    };
2963
2964
    // === entry ===
2965
    ($fields:expr, $($kvs:tt)+) => {
2966
        {
2967
            #[allow(unused_imports)]
2968
            use $crate::field::{debug, display, Value};
2969
            let mut iter = $fields.iter();
2970
            $fields.value_set($crate::valueset!(
2971
                @ { },
2972
                $crate::__macro_support::Iterator::next(&mut iter).expect("FieldSet corrupted (this is a bug)"),
2973
                $($kvs)+
2974
            ))
2975
        }
2976
    };
2977
    ($fields:expr,) => {
2978
        {
2979
            $fields.value_set(&[])
2980
        }
2981
    };
2982
}
2983
2984
#[doc(hidden)]
2985
#[macro_export]
2986
macro_rules! fieldset {
2987
    // == base case ==
2988
    (@ { $(,)* $($out:expr),* $(,)* } $(,)*) => {
2989
        &[ $($out),* ]
2990
    };
2991
2992
    // == recursive cases (more tts) ==
2993
    (@ { $(,)* $($out:expr),* } $($k:ident).+ = ?$val:expr, $($rest:tt)*) => {
2994
        $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
2995
    };
2996
    (@ { $(,)* $($out:expr),* } $($k:ident).+ = %$val:expr, $($rest:tt)*) => {
2997
        $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
2998
    };
2999
    (@ { $(,)* $($out:expr),* } $($k:ident).+ = $val:expr, $($rest:tt)*) => {
3000
        $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3001
    };
3002
    // TODO(#1138): determine a new syntax for uninitialized span fields, and
3003
    // re-enable this.
3004
    // (@ { $($out:expr),* } $($k:ident).+ = _, $($rest:tt)*) => {
3005
    //     $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3006
    // };
3007
    (@ { $(,)* $($out:expr),* } ?$($k:ident).+, $($rest:tt)*) => {
3008
        $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3009
    };
3010
    (@ { $(,)* $($out:expr),* } %$($k:ident).+, $($rest:tt)*) => {
3011
        $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3012
    };
3013
    (@ { $(,)* $($out:expr),* } $($k:ident).+, $($rest:tt)*) => {
3014
        $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3015
    };
3016
3017
    // Handle literal names
3018
    (@ { $(,)* $($out:expr),* } $k:literal = ?$val:expr, $($rest:tt)*) => {
3019
        $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3020
    };
3021
    (@ { $(,)* $($out:expr),* } $k:literal = %$val:expr, $($rest:tt)*) => {
3022
        $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3023
    };
3024
    (@ { $(,)* $($out:expr),* } $k:literal = $val:expr, $($rest:tt)*) => {
3025
        $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3026
    };
3027
3028
    // Handle constant names
3029
    (@ { $(,)* $($out:expr),* } { $k:expr } = ?$val:expr, $($rest:tt)*) => {
3030
        $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3031
    };
3032
    (@ { $(,)* $($out:expr),* } { $k:expr } = %$val:expr, $($rest:tt)*) => {
3033
        $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3034
    };
3035
    (@ { $(,)* $($out:expr),* } { $k:expr } = $val:expr, $($rest:tt)*) => {
3036
        $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3037
    };
3038
3039
    // Remainder is unparsable, but exists --- must be format args!
3040
    (@ { $(,)* $($out:expr),* } $($rest:tt)+) => {
3041
        $crate::fieldset!(@ { "message", $($out),*, })
3042
    };
3043
3044
    // == entry ==
3045
    ($($args:tt)*) => {
3046
        $crate::fieldset!(@ { } $($args)*,)
3047
    };
3048
3049
}
3050
3051
#[cfg(feature = "log")]
3052
#[doc(hidden)]
3053
#[macro_export]
3054
macro_rules! level_to_log {
3055
    ($level:expr) => {
3056
        match $level {
3057
            $crate::Level::ERROR => $crate::log::Level::Error,
3058
            $crate::Level::WARN => $crate::log::Level::Warn,
3059
            $crate::Level::INFO => $crate::log::Level::Info,
3060
            $crate::Level::DEBUG => $crate::log::Level::Debug,
3061
            _ => $crate::log::Level::Trace,
3062
        }
3063
    };
3064
}
3065
3066
#[doc(hidden)]
3067
#[macro_export]
3068
macro_rules! __tracing_stringify {
3069
    ($($t:tt)*) => {
3070
        stringify!($($t)*)
3071
    };
3072
}
3073
3074
#[cfg(not(feature = "log"))]
3075
#[doc(hidden)]
3076
#[macro_export]
3077
macro_rules! __tracing_log {
3078
    ($level:expr, $callsite:expr, $value_set:expr) => {};
3079
}
3080
3081
#[cfg(feature = "log")]
3082
#[doc(hidden)]
3083
#[macro_export]
3084
macro_rules! __tracing_log {
3085
    ($level:expr, $callsite:expr, $value_set:expr) => {
3086
        $crate::if_log_enabled! { $level, {
3087
            use $crate::log;
3088
            let level = $crate::level_to_log!($level);
3089
            if level <= log::max_level() {
3090
                let meta = $callsite.metadata();
3091
                let log_meta = log::Metadata::builder()
3092
                    .level(level)
3093
                    .target(meta.target())
3094
                    .build();
3095
                let logger = log::logger();
3096
                if logger.enabled(&log_meta) {
3097
                    $crate::__macro_support::__tracing_log(meta, logger, log_meta, $value_set)
3098
                }
3099
            }
3100
        }}
3101
    };
3102
}
3103
3104
#[cfg(not(feature = "log"))]
3105
#[doc(hidden)]
3106
#[macro_export]
3107
macro_rules! if_log_enabled {
3108
    ($lvl:expr, $e:expr;) => {
3109
        $crate::if_log_enabled! { $lvl, $e }
3110
    };
3111
    ($lvl:expr, $if_log:block) => {
3112
        $crate::if_log_enabled! { $lvl, $if_log else {} }
3113
    };
3114
    ($lvl:expr, $if_log:block else $else_block:block) => {
3115
        $else_block
3116
    };
3117
}
3118
3119
#[cfg(all(feature = "log", not(feature = "log-always")))]
3120
#[doc(hidden)]
3121
#[macro_export]
3122
macro_rules! if_log_enabled {
3123
    ($lvl:expr, $e:expr;) => {
3124
        $crate::if_log_enabled! { $lvl, $e }
3125
    };
3126
    ($lvl:expr, $if_log:block) => {
3127
        $crate::if_log_enabled! { $lvl, $if_log else {} }
3128
    };
3129
    ($lvl:expr, $if_log:block else $else_block:block) => {
3130
        if $crate::level_to_log!($lvl) <= $crate::log::STATIC_MAX_LEVEL {
3131
            if !$crate::dispatcher::has_been_set() {
3132
                $if_log
3133
            } else {
3134
                $else_block
3135
            }
3136
        } else {
3137
            $else_block
3138
        }
3139
    };
3140
}
3141
3142
#[cfg(all(feature = "log", feature = "log-always"))]
3143
#[doc(hidden)]
3144
#[macro_export]
3145
macro_rules! if_log_enabled {
3146
    ($lvl:expr, $e:expr;) => {
3147
        $crate::if_log_enabled! { $lvl, $e }
3148
    };
3149
    ($lvl:expr, $if_log:block) => {
3150
        $crate::if_log_enabled! { $lvl, $if_log else {} }
3151
    };
3152
    ($lvl:expr, $if_log:block else $else_block:block) => {
3153
        if $crate::level_to_log!($lvl) <= $crate::log::STATIC_MAX_LEVEL {
3154
            #[allow(unused_braces)]
3155
            $if_log
3156
        } else {
3157
            $else_block
3158
        }
3159
    };
3160
}