@@ -41,9 +41,7 @@ fn main() {
41
41
}
42
42
}
43
43
44
- fn setup_logger ( ) -> Option < tracing_chrome:: FlushGuard > {
45
- #![ allow( clippy:: disallowed_methods) ]
46
-
44
+ fn setup_logger ( ) -> Option < ChromeFlushGuard > {
47
45
use tracing_subscriber:: prelude:: * ;
48
46
49
47
let env = tracing_subscriber:: EnvFilter :: from_env ( "CARGO_LOG" ) ;
@@ -53,17 +51,7 @@ fn setup_logger() -> Option<tracing_chrome::FlushGuard> {
53
51
. with_writer ( std:: io:: stderr)
54
52
. with_filter ( env) ;
55
53
56
- let ( profile_layer, profile_guard) =
57
- if env_to_bool ( std:: env:: var_os ( "CARGO_LOG_PROFILE" ) . as_deref ( ) ) {
58
- let capture_args =
59
- env_to_bool ( std:: env:: var_os ( "CARGO_LOG_PROFILE_CAPTURE_ARGS" ) . as_deref ( ) ) ;
60
- let ( layer, guard) = tracing_chrome:: ChromeLayerBuilder :: new ( )
61
- . include_args ( capture_args)
62
- . build ( ) ;
63
- ( Some ( layer) , Some ( guard) )
64
- } else {
65
- ( None , None )
66
- } ;
54
+ let ( profile_layer, profile_guard) = chrome_layer ( ) ;
67
55
68
56
let registry = tracing_subscriber:: registry ( )
69
57
. with ( fmt_layer)
@@ -73,6 +61,44 @@ fn setup_logger() -> Option<tracing_chrome::FlushGuard> {
73
61
profile_guard
74
62
}
75
63
64
+ #[ cfg( target_has_atomic = "64" ) ]
65
+ type ChromeFlushGuard = tracing_chrome:: FlushGuard ;
66
+ #[ cfg( target_has_atomic = "64" ) ]
67
+ fn chrome_layer < S > ( ) -> (
68
+ Option < tracing_chrome:: ChromeLayer < S > > ,
69
+ Option < ChromeFlushGuard > ,
70
+ )
71
+ where
72
+ S : tracing:: Subscriber
73
+ + for < ' span > tracing_subscriber:: registry:: LookupSpan < ' span >
74
+ + Send
75
+ + Sync ,
76
+ {
77
+ #![ allow( clippy:: disallowed_methods) ]
78
+
79
+ if env_to_bool ( std:: env:: var_os ( "CARGO_LOG_PROFILE" ) . as_deref ( ) ) {
80
+ let capture_args =
81
+ env_to_bool ( std:: env:: var_os ( "CARGO_LOG_PROFILE_CAPTURE_ARGS" ) . as_deref ( ) ) ;
82
+ let ( layer, guard) = tracing_chrome:: ChromeLayerBuilder :: new ( )
83
+ . include_args ( capture_args)
84
+ . build ( ) ;
85
+ ( Some ( layer) , Some ( guard) )
86
+ } else {
87
+ ( None , None )
88
+ }
89
+ }
90
+
91
+ #[ cfg( not( target_has_atomic = "64" ) ) ]
92
+ type ChromeFlushGuard = ( ) ;
93
+ #[ cfg( not( target_has_atomic = "64" ) ) ]
94
+ fn chrome_layer ( ) -> (
95
+ Option < tracing_subscriber:: layer:: Identity > ,
96
+ Option < ChromeFlushGuard > ,
97
+ ) {
98
+ ( None , None )
99
+ }
100
+
101
+ #[ cfg( target_has_atomic = "64" ) ]
76
102
fn env_to_bool ( os : Option < & OsStr > ) -> bool {
77
103
match os. and_then ( |os| os. to_str ( ) ) {
78
104
Some ( "1" ) | Some ( "true" ) => true ,
0 commit comments