Skip to main content

Crate async_reify_macros

Crate async_reify_macros 

Source
Expand description

Attribute proc macros for async-reify.

Currently provides 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.

Attribute Macros§

trace_async
Rewrites an async function body so every .await records a labeled async_reify::PollEvent into the named shared trace.