1#[macro_export]
20macro_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 $crate::Span::child_of(
42 $parent,
43 meta,
44 &$crate::valueset!(meta.fields(), $($fields)*),
45 )
46 } else {
47 let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata());
48 $crate::if_log_enabled! { $lvl, {
49 span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
50 }};
51 span
52 }
53 }
54 };
55 (target: $target:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
56 {
57 use $crate::__macro_support::Callsite as _;
58 static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! {
59 name: $name,
60 kind: $crate::metadata::Kind::SPAN,
61 target: $target,
62 level: $lvl,
63 fields: $($fields)*
64 };
65 let mut interest = $crate::subscriber::Interest::never();
66 if $crate::level_enabled!($lvl)
67 && { interest = __CALLSITE.interest(); !interest.is_never() }
68 && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest)
69 {
70 let meta = __CALLSITE.metadata();
71 $crate::Span::new(
73 meta,
74 &$crate::valueset!(meta.fields(), $($fields)*),
75 )
76 } else {
77 let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata());
78 $crate::if_log_enabled! { $lvl, {
79 span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
80 }};
81 span
82 }
83 }
84 };
85 (target: $target:expr, parent: $parent:expr, $lvl:expr, $name:expr) => {
86 $crate::span!(target: $target, parent: $parent, $lvl, $name,)
87 };
88 (parent: $parent:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
89 $crate::span!(
90 target: module_path!(),
91 parent: $parent,
92 $lvl,
93 $name,
94 $($fields)*
95 )
96 };
97 (parent: $parent:expr, $lvl:expr, $name:expr) => {
98 $crate::span!(
99 target: module_path!(),
100 parent: $parent,
101 $lvl,
102 $name,
103 )
104 };
105 (target: $target:expr, $lvl:expr, $name:expr, $($fields:tt)*) => {
106 $crate::span!(
107 target: $target,
108 $lvl,
109 $name,
110 $($fields)*
111 )
112 };
113 (target: $target:expr, $lvl:expr, $name:expr) => {
114 $crate::span!(target: $target, $lvl, $name,)
115 };
116 ($lvl:expr, $name:expr, $($fields:tt)*) => {
117 $crate::span!(
118 target: module_path!(),
119 $lvl,
120 $name,
121 $($fields)*
122 )
123 };
124 ($lvl:expr, $name:expr) => {
125 $crate::span!(
126 target: module_path!(),
127 $lvl,
128 $name,
129 )
130 };
131}
132
133#[macro_export]
152macro_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#[macro_export]
197macro_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#[macro_export]
278macro_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#[macro_export]
359macro_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#[macro_export]
440macro_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#[macro_export]
520macro_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#[macro_export]
615macro_rules! event {
616 (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 $crate::Event::child_of(
641 $parent,
642 meta,
643 &value_set
644 );
645 })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
646 } else {
647 $crate::__tracing_log!(
648 $lvl,
649 __CALLSITE,
650 &$crate::valueset!(__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: $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 $crate::Event::dispatch(
689 meta,
690 &value_set
691 );
692 $crate::__tracing_log!(
693 $lvl,
694 __CALLSITE,
695 &value_set
696 );
697 })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
698 } else {
699 $crate::__tracing_log!(
700 $lvl,
701 __CALLSITE,
702 &$crate::valueset!(__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: $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 (|value_set: $crate::field::ValueSet| {
743 $crate::__tracing_log!(
744 $lvl,
745 __CALLSITE,
746 &value_set
747 );
748 let meta = __CALLSITE.metadata();
749 $crate::Event::child_of(
751 $parent,
752 meta,
753 &value_set
754 );
755 })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
756 } else {
757 $crate::__tracing_log!(
758 $lvl,
759 __CALLSITE,
760 &$crate::valueset!(__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: $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 $crate::Event::child_of(
804 $parent,
805 meta,
806 &value_set
807 );
808 })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
809 } else {
810 $crate::__tracing_log!(
811 $lvl,
812 __CALLSITE,
813 &$crate::valueset!(__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: $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 $crate::Event::dispatch(
851 meta,
852 &value_set
853 );
854 $crate::__tracing_log!(
855 $lvl,
856 __CALLSITE,
857 &value_set
858 );
859 })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
860 } else {
861 $crate::__tracing_log!(
862 $lvl,
863 __CALLSITE,
864 &$crate::valueset!(__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: $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 (|value_set: $crate::field::ValueSet| {
903 let meta = __CALLSITE.metadata();
904 $crate::Event::dispatch(
906 meta,
907 &value_set
908 );
909 $crate::__tracing_log!(
910 $lvl,
911 __CALLSITE,
912 &value_set
913 );
914 })($crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*));
915 } else {
916 $crate::__tracing_log!(
917 $lvl,
918 __CALLSITE,
919 &$crate::valueset!(__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: $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 ( $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#[macro_export]
1083macro_rules! event_enabled {
1084 ($($rest:tt)*)=> (
1085 $crate::enabled!(kind: $crate::metadata::Kind::EVENT, $($rest)*)
1086 )
1087}
1088
1089#[macro_export]
1117macro_rules! span_enabled {
1118 ($($rest:tt)*)=> (
1119 $crate::enabled!(kind: $crate::metadata::Kind::SPAN, $($rest)*)
1120 )
1121}
1122
1123#[macro_export]
1214macro_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 (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 (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 (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 (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 ($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#[macro_export]
1333macro_rules! trace {
1334 (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: $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: $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: $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: $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: $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: $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 ({ $($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#[macro_export]
1609macro_rules! debug {
1610 (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: $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: $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: $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: $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: $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: $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 ({ $($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#[macro_export]
1896macro_rules! info {
1897 (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: $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: $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: $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: $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: $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: $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 ({ $($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#[macro_export]
2176macro_rules! warn {
2177 (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: $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: $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: $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: $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: $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: $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 ({ $($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#[macro_export]
2452macro_rules! error {
2453 (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: $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: $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: $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: $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: $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: $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 ({ $($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#[doc(hidden)]
2706#[macro_export]
2707macro_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#[doc(hidden)]
2756#[macro_export]
2757macro_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#[doc(hidden)]
2805macro_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]
2814macro_rules! valueset {
2815
2816 (@ { $(,)* $($val:expr),* $(,)* }, $next:expr $(,)*) => {
2818 &[ $($val),* ]
2819 };
2820
2821 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = ?$val:expr, $($rest:tt)*) => {
2829 $crate::valueset!(
2830 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2831 $next,
2832 $($rest)*
2833 )
2834 };
2835 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = %$val:expr, $($rest:tt)*) => {
2836 $crate::valueset!(
2837 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2838 $next,
2839 $($rest)*
2840 )
2841 };
2842 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = $val:expr, $($rest:tt)*) => {
2843 $crate::valueset!(
2844 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2845 $next,
2846 $($rest)*
2847 )
2848 };
2849 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+, $($rest:tt)*) => {
2850 $crate::valueset!(
2851 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn Value)) },
2852 $next,
2853 $($rest)*
2854 )
2855 };
2856 (@ { $(,)* $($out:expr),* }, $next:expr, ?$($k:ident).+, $($rest:tt)*) => {
2857 $crate::valueset!(
2858 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$($k).+) as &dyn Value)) },
2859 $next,
2860 $($rest)*
2861 )
2862 };
2863 (@ { $(,)* $($out:expr),* }, $next:expr, %$($k:ident).+, $($rest:tt)*) => {
2864 $crate::valueset!(
2865 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$($k).+) as &dyn Value)) },
2866 $next,
2867 $($rest)*
2868 )
2869 };
2870 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = ?$val:expr) => {
2871 $crate::valueset!(
2872 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2873 $next,
2874 )
2875 };
2876 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = %$val:expr) => {
2877 $crate::valueset!(
2878 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2879 $next,
2880 )
2881 };
2882 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = $val:expr) => {
2883 $crate::valueset!(
2884 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2885 $next,
2886 )
2887 };
2888 (@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+) => {
2889 $crate::valueset!(
2890 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn Value)) },
2891 $next,
2892 )
2893 };
2894 (@ { $(,)* $($out:expr),* }, $next:expr, ?$($k:ident).+) => {
2895 $crate::valueset!(
2896 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$($k).+) as &dyn Value)) },
2897 $next,
2898 )
2899 };
2900 (@ { $(,)* $($out:expr),* }, $next:expr, %$($k:ident).+) => {
2901 $crate::valueset!(
2902 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$($k).+) as &dyn Value)) },
2903 $next,
2904 )
2905 };
2906
2907 (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = ?$val:expr, $($rest:tt)*) => {
2909 $crate::valueset!(
2910 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2911 $next,
2912 $($rest)*
2913 )
2914 };
2915 (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = %$val:expr, $($rest:tt)*) => {
2916 $crate::valueset!(
2917 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2918 $next,
2919 $($rest)*
2920 )
2921 };
2922 (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = $val:expr, $($rest:tt)*) => {
2923 $crate::valueset!(
2924 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2925 $next,
2926 $($rest)*
2927 )
2928 };
2929 (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = ?$val:expr) => {
2930 $crate::valueset!(
2931 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2932 $next,
2933 )
2934 };
2935 (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = %$val:expr) => {
2936 $crate::valueset!(
2937 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2938 $next,
2939 )
2940 };
2941 (@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = $val:expr) => {
2942 $crate::valueset!(
2943 @ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2944 $next,
2945 )
2946 };
2947
2948 (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = ?$val:expr, $($rest:tt)*) => {
2950 $crate::valueset!(
2951 @ { $($out),*, (&$next, Some(&debug(&$val) as &dyn Value)) },
2952 $next,
2953 $($rest)*
2954 )
2955 };
2956 (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = %$val:expr, $($rest:tt)*) => {
2957 $crate::valueset!(
2958 @ { $($out),*, (&$next, Some(&display(&$val) as &dyn Value)) },
2959 $next,
2960 $($rest)*
2961 )
2962 };
2963 (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = $val:expr, $($rest:tt)*) => {
2964 $crate::valueset!(
2965 @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2966 $next,
2967 $($rest)*
2968 )
2969 };
2970 (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = ?$val:expr) => {
2971 $crate::valueset!(
2972 @ { $($out),*, (&$next, Some(&debug(&$val) as &dyn Value)) },
2973 $next,
2974 )
2975 };
2976 (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = %$val:expr) => {
2977 $crate::valueset!(
2978 @ { $($out),*, (&$next, Some(&display(&$val) as &dyn Value)) },
2979 $next,
2980 )
2981 };
2982 (@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = $val:expr) => {
2983 $crate::valueset!(
2984 @ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2985 $next,
2986 )
2987 };
2988
2989 (@ { $(,)* $($out:expr),* }, $next:expr, $($rest:tt)+) => {
2991 $crate::valueset!(@ { (&$next, $crate::__macro_support::Option::Some(&$crate::__macro_support::format_args!($($rest)+) as &dyn Value)), $($out),* }, $next, )
2992 };
2993
2994 ($fields:expr, $($kvs:tt)+) => {
2996 {
2997 #[allow(unused_imports)]
2998 use $crate::field::{debug, display, Value};
2999 let mut iter = $fields.iter();
3000 $fields.value_set($crate::valueset!(
3001 @ { },
3002 $crate::__macro_support::Iterator::next(&mut iter).expect("FieldSet corrupted (this is a bug)"),
3003 $($kvs)+
3004 ))
3005 }
3006 };
3007 ($fields:expr,) => {
3008 {
3009 $fields.value_set(&[])
3010 }
3011 };
3012}
3013
3014#[doc(hidden)]
3015#[macro_export]
3016macro_rules! fieldset {
3017 (@ { $(,)* $($out:expr),* $(,)* } $(,)*) => {
3019 &[ $($out),* ]
3020 };
3021
3022 (@ { $(,)* $($out:expr),* } $($k:ident).+ = ?$val:expr, $($rest:tt)*) => {
3024 $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3025 };
3026 (@ { $(,)* $($out:expr),* } $($k:ident).+ = %$val:expr, $($rest:tt)*) => {
3027 $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3028 };
3029 (@ { $(,)* $($out:expr),* } $($k:ident).+ = $val:expr, $($rest:tt)*) => {
3030 $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3031 };
3032 (@ { $(,)* $($out:expr),* } ?$($k:ident).+, $($rest:tt)*) => {
3038 $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3039 };
3040 (@ { $(,)* $($out:expr),* } %$($k:ident).+, $($rest:tt)*) => {
3041 $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3042 };
3043 (@ { $(,)* $($out:expr),* } $($k:ident).+, $($rest:tt)*) => {
3044 $crate::fieldset!(@ { $($out),*, $crate::__tracing_stringify!($($k).+) } $($rest)*)
3045 };
3046
3047 (@ { $(,)* $($out:expr),* } $k:literal = ?$val:expr, $($rest:tt)*) => {
3049 $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3050 };
3051 (@ { $(,)* $($out:expr),* } $k:literal = %$val:expr, $($rest:tt)*) => {
3052 $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3053 };
3054 (@ { $(,)* $($out:expr),* } $k:literal = $val:expr, $($rest:tt)*) => {
3055 $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3056 };
3057
3058 (@ { $(,)* $($out:expr),* } { $k:expr } = ?$val:expr, $($rest:tt)*) => {
3060 $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3061 };
3062 (@ { $(,)* $($out:expr),* } { $k:expr } = %$val:expr, $($rest:tt)*) => {
3063 $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3064 };
3065 (@ { $(,)* $($out:expr),* } { $k:expr } = $val:expr, $($rest:tt)*) => {
3066 $crate::fieldset!(@ { $($out),*, $k } $($rest)*)
3067 };
3068
3069 (@ { $(,)* $($out:expr),* } $($rest:tt)+) => {
3071 $crate::fieldset!(@ { "message", $($out),*, })
3072 };
3073
3074 ($($args:tt)*) => {
3076 $crate::fieldset!(@ { } $($args)*,)
3077 };
3078
3079}
3080
3081#[cfg(feature = "log")]
3082#[doc(hidden)]
3083#[macro_export]
3084macro_rules! level_to_log {
3085 ($level:expr) => {
3086 match $level {
3087 $crate::Level::ERROR => $crate::log::Level::Error,
3088 $crate::Level::WARN => $crate::log::Level::Warn,
3089 $crate::Level::INFO => $crate::log::Level::Info,
3090 $crate::Level::DEBUG => $crate::log::Level::Debug,
3091 _ => $crate::log::Level::Trace,
3092 }
3093 };
3094}
3095
3096#[doc(hidden)]
3097#[macro_export]
3098macro_rules! __tracing_stringify {
3099 ($($k:ident).+) => {{
3100 const NAME: $crate::__macro_support::FieldName<{
3101 $crate::__macro_support::FieldName::len($crate::__macro_support::stringify!($($k).+))
3102 }> = $crate::__macro_support::FieldName::new($crate::__macro_support::stringify!($($k).+));
3103 NAME.as_str()
3104 }};
3105}
3106
3107#[cfg(not(feature = "log"))]
3108#[doc(hidden)]
3109#[macro_export]
3110macro_rules! __tracing_log {
3111 ($level:expr, $callsite:expr, $value_set:expr) => {};
3112}
3113
3114#[cfg(feature = "log")]
3115#[doc(hidden)]
3116#[macro_export]
3117macro_rules! __tracing_log {
3118 ($level:expr, $callsite:expr, $value_set:expr) => {
3119 $crate::if_log_enabled! { $level, {
3120 use $crate::log;
3121 let level = $crate::level_to_log!($level);
3122 if level <= log::max_level() {
3123 let meta = $callsite.metadata();
3124 let log_meta = log::Metadata::builder()
3125 .level(level)
3126 .target(meta.target())
3127 .build();
3128 let logger = log::logger();
3129 if logger.enabled(&log_meta) {
3130 $crate::__macro_support::__tracing_log(meta, logger, log_meta, $value_set)
3131 }
3132 }
3133 }}
3134 };
3135}
3136
3137#[cfg(not(feature = "log"))]
3138#[doc(hidden)]
3139#[macro_export]
3140macro_rules! if_log_enabled {
3141 ($lvl:expr, $e:expr;) => {
3142 $crate::if_log_enabled! { $lvl, $e }
3143 };
3144 ($lvl:expr, $if_log:block) => {
3145 $crate::if_log_enabled! { $lvl, $if_log else {} }
3146 };
3147 ($lvl:expr, $if_log:block else $else_block:block) => {
3148 $else_block
3149 };
3150}
3151
3152#[cfg(all(feature = "log", not(feature = "log-always")))]
3153#[doc(hidden)]
3154#[macro_export]
3155macro_rules! if_log_enabled {
3156 ($lvl:expr, $e:expr;) => {
3157 $crate::if_log_enabled! { $lvl, $e }
3158 };
3159 ($lvl:expr, $if_log:block) => {
3160 $crate::if_log_enabled! { $lvl, $if_log else {} }
3161 };
3162 ($lvl:expr, $if_log:block else $else_block:block) => {
3163 if $crate::level_to_log!($lvl) <= $crate::log::STATIC_MAX_LEVEL {
3164 if !$crate::dispatcher::has_been_set() {
3165 $if_log
3166 } else {
3167 $else_block
3168 }
3169 } else {
3170 $else_block
3171 }
3172 };
3173}
3174
3175#[cfg(all(feature = "log", feature = "log-always"))]
3176#[doc(hidden)]
3177#[macro_export]
3178macro_rules! if_log_enabled {
3179 ($lvl:expr, $e:expr;) => {
3180 $crate::if_log_enabled! { $lvl, $e }
3181 };
3182 ($lvl:expr, $if_log:block) => {
3183 $crate::if_log_enabled! { $lvl, $if_log else {} }
3184 };
3185 ($lvl:expr, $if_log:block else $else_block:block) => {
3186 if $crate::level_to_log!($lvl) <= $crate::log::STATIC_MAX_LEVEL {
3187 #[allow(unused_braces)]
3188 $if_log
3189 } else {
3190 $else_block
3191 }
3192 };
3193}