@@ -41,7 +41,7 @@ fn main() {
41
41
}
42
42
}
43
43
44
- fn setup_logger ( ) -> Option < tracing_chrome :: FlushGuard > {
44
+ fn setup_logger ( ) -> Option < ChromeFlushGuard > {
45
45
#![ allow( clippy:: disallowed_methods) ]
46
46
47
47
use tracing_subscriber:: prelude:: * ;
@@ -53,17 +53,7 @@ fn setup_logger() -> Option<tracing_chrome::FlushGuard> {
53
53
. with_writer ( std:: io:: stderr)
54
54
. with_filter ( env) ;
55
55
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
- } ;
56
+ let ( profile_layer, profile_guard) = chrome_layer ( ) ;
67
57
68
58
let registry = tracing_subscriber:: registry ( )
69
59
. with ( fmt_layer)
@@ -73,6 +63,42 @@ fn setup_logger() -> Option<tracing_chrome::FlushGuard> {
73
63
profile_guard
74
64
}
75
65
66
+ #[ cfg( target_has_atomic = "64" ) ]
67
+ type ChromeFlushGuard = tracing_chrome:: FlushGuard ;
68
+ #[ cfg( target_has_atomic = "64" ) ]
69
+ fn chrome_layer < S > ( ) -> (
70
+ Option < tracing_chrome:: ChromeLayer < S > > ,
71
+ Option < ChromeFlushGuard > ,
72
+ )
73
+ where
74
+ S : tracing:: Subscriber
75
+ + for < ' span > tracing_subscriber:: registry:: LookupSpan < ' span >
76
+ + Send
77
+ + Sync ,
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