Attribute proc macros for async-reify.
Currently provides [macro@trace_async], an attribute that rewrites
every .await point in an async fn body to record into a shared
async_reify::Trace without you having to wrap each await in
LabeledFuture by hand.
You normally do not depend on this crate directly. Enable the macros
feature on async-reify and the attribute is re-exported as
async_reify::trace_async.
What the macro does
#[trace_async(trace = my_trace)] on a function rewrites every
.await inside the body so it is wrapped in a
LabeledFuture
that records into the trace handle named by the trace = IDENT
argument. Labels are auto-generated as "<expr> @ <file>:<line>", so
every step in the resulting trace points back to the source line that
produced it.
See the async-reify crate docs for
the recording, inspection, and rendering pipeline this feeds into,
and docs/phase4-async-reify.md for the design rationale.