#[macro_export] macro_rules!
logon { () => { glob_replace!($crate::log_enabled::LOG_ENABLED, true) } }
#[macro_export] macro_rules!
logoff { () => { glob_replace!($crate::log_enabled::LOG_ENABLED, false) } }
#[macro_export] macro_rules!
logonly {
( [ ]; $($a:tt)* ) => { $($a)*; };
( [_]; $($a:tt)* ) => { $($a)*; };
( [-]; $($a:tt)* ) => { $($a)*; };
( [off]; $($a:tt)* ) => { $($a)*; };
( [x]; $($a:tt)* ) => { logonly!($($a)*); };
( [v]; $($a:tt)* ) => { logonly!($($a)*); };
( [+]; $($a:tt)* ) => { logonly!($($a)*); };
( [#]; $($a:tt)* ) => { logonly!($($a)*); };
( [on]; $($a:tt)* ) => { logonly!($($a)*); };
( [$var:tt]; $($a:tt)* ) => {
if $var { logon!(); }
$($a)*;
if $var { logoff!(); }
};
( $($a:tt)* ) => {
logon!();
$($a)*;
logoff!();
};
}
#[macro_export] macro_rules!
logonly_helper {
( $($msg:tt)* ) => {
glob_access!(
$crate::log_enabled::LOG_ENABLED,
log_enabled,
{
match log_enabled {
true => { $($msg)*; },
false => (),
}
log_enabled
}
);
};
}