blackbox_log/frame/
trace_field.rs1macro_rules! trace_field {
2 (_impl pre $field:expr, $enc:expr, $signed:expr, $raw:expr) => {
3 tracing::trace!(
4 field = $field.name(),
5 encoding = ?$enc,
6 signed_encoding = $signed,
7 raw = $raw,
8 );
9 };
10 (_impl post $field:expr, $pred:expr, $signed:expr, $final:expr) => {
11 tracing::trace!(
12 field = $field.name(),
13 predictor = ?$pred,
14 signed = $signed,
15 value = $final,
16 );
17 };
18
19 (pre, field = $field:expr, enc = $enc:expr, raw = $raw:expr $(,)?) => {
20 if $enc.is_signed() {
21 trace_field!(_impl pre $field, $enc, $enc.is_signed(), $raw.cast_signed());
22 } else {
23 trace_field!(_impl pre $field, $enc, $enc.is_signed(), $raw);
24 }
25 };
26 (post, field = $field:expr, pred = $pred:expr, final = $final:expr $(,)?) => {
27 if $field.signed() {
28 trace_field!(_impl post $field, $pred, $field.signed(), $final.cast_signed());
29 } else {
30 trace_field!(_impl post $field, $pred, $field.signed(), $final);
31 }
32 };
33}