Coverage Report

Created: 2026-03-28 06:33

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