@@ -878,9 +878,63 @@ macro_rules! event {
878
878
/// }
879
879
/// ```
880
880
///
881
+ /// # Alternatives
882
+ ///
883
+ /// `enabled!` queries subscribers with [`Metadata`] where
884
+ /// [`is_event`] and [`is_span`] both return `false`. Alternatively,
885
+ /// use [`enabled_event`] or [`enabled_span`] to ensure one of these
886
+ /// returns true.
887
+ ///
888
+ ///
889
+ /// [`Metadata`]: crate::Metadata
890
+ /// [`is_event`]: crate::Metadata::is_event
891
+ /// [`is_span`]: crate::Metadata::is_span
892
+ /// [`enabled_event`]: crate::enabled_event
893
+ /// [`enabled_span`]: crate::enabled_span
894
+ ///
881
895
#[ macro_export]
882
896
macro_rules! enabled {
883
- ( target: $target: expr, $lvl: expr, { $( $fields: tt) * } ) => ( {
897
+ ( $( $rest: tt) * ) => (
898
+ $crate:: _enabled!( kind: { $crate:: metadata:: Kind :: HINT } , $( $rest) * )
899
+ )
900
+ }
901
+
902
+ /// The same as [`enabled`], but queries subscribers with `Metadata` where
903
+ /// [`Metadata::is_event`] returns true.
904
+ ///
905
+ /// See also [`enabled_span`].
906
+ ///
907
+ /// [`enabled`]: crate::enabled
908
+ /// [`Metadata::is_event`]: crate::Metadata::is_event
909
+ /// [`enabled_span`]: crate::enabled_span
910
+ ///
911
+ #[ macro_export]
912
+ macro_rules! enabled_event {
913
+ ( $( $rest: tt) * ) => (
914
+ $crate:: _enabled!( kind: $crate:: metadata:: Kind :: EVENT . hint( ) , $( $rest) * )
915
+ )
916
+ }
917
+
918
+ /// The same as [`enabled`], but queries subscribers with `Metadata` where
919
+ /// [`Metadata::is_span`] returns true.
920
+ ///
921
+ /// See also [`enabled_event`].
922
+ ///
923
+ /// [`enabled`]: crate::enabled
924
+ /// [`Metadata::is_span`]: crate::Metadata::is_span
925
+ /// [`enabled_event`]: crate::enabled_event
926
+ ///
927
+ #[ macro_export]
928
+ macro_rules! enabled_span {
929
+ ( $( $rest: tt) * ) => (
930
+ $crate:: _enabled!( kind: $crate:: metadata:: Kind :: SPAN . hint( ) , $( $rest) * )
931
+ )
932
+ }
933
+
934
+ #[ doc( hidden) ]
935
+ #[ macro_export]
936
+ macro_rules! _enabled {
937
+ ( kind: $kind: expr, target: $target: expr, $lvl: expr, { $( $fields: tt) * } ) => ( {
884
938
if $crate:: level_enabled!( $lvl) {
885
939
use $crate:: __macro_support:: Callsite as _;
886
940
static CALLSITE : $crate:: __macro_support:: MacroCallsite = $crate:: callsite2! {
@@ -890,7 +944,7 @@ macro_rules! enabled {
890
944
":" ,
891
945
line!( )
892
946
) ,
893
- kind: $crate :: metadata :: Kind :: HINT ,
947
+ kind: $kind ,
894
948
target: $target,
895
949
level: $lvl,
896
950
fields: $( $fields) *
@@ -907,29 +961,31 @@ macro_rules! enabled {
907
961
}
908
962
} ) ;
909
963
// Just target and level
910
- ( target: $target: expr, $lvl: expr ) => (
911
- $crate:: enabled! ( target: $target, $lvl, { } )
964
+ ( kind : $kind : expr , target: $target: expr, $lvl: expr ) => (
965
+ $crate:: _enabled! ( kind : $kind , target: $target, $lvl, { } )
912
966
) ;
913
967
914
968
// These two cases handle fields with no values
915
- ( target: $target: expr, $lvl: expr, $( $field: tt) * ) => (
916
- $crate:: enabled!(
969
+ ( kind: $kind: expr, target: $target: expr, $lvl: expr, $( $field: tt) * ) => (
970
+ $crate:: _enabled!(
971
+ kind: $kind,
917
972
target: $target,
918
973
$lvl,
919
974
{ $( $field) * }
920
975
)
921
976
) ;
922
- ( $lvl: expr, $( $field: tt) * ) => (
923
- $crate:: enabled!(
977
+ ( kind: $kind: expr, $lvl: expr, $( $field: tt) * ) => (
978
+ $crate:: _enabled!(
979
+ kind: $kind,
924
980
target: module_path!( ) ,
925
981
$lvl,
926
982
{ $( $field) * }
927
983
)
928
984
) ;
929
985
930
986
// Simplest `enabled!` case
931
- ( $lvl: expr ) => (
932
- $crate:: enabled! ( target: module_path!( ) , $lvl, { } )
987
+ ( kind : $kind : expr , $lvl: expr ) => (
988
+ $crate:: _enabled! ( kind : $kind , target: module_path!( ) , $lvl, { } )
933
989
) ;
934
990
}
935
991
0 commit comments