/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 | | } |