Skip to main content

Crate aristo_macros

Crate aristo_macros 

Source
Expand description

Aristo proc-macros.

Intentionally thin: this crate runs during downstream compile time, so heavy work (project-wide cycle detection, B5b signature validation, index IO) lives in aristo-cli. The macros here do single-annotation validation (when the aristo_check cargo feature is on — default) and include_str! injection (aristo_doc, slice 30).

The macros parse their arguments into IntentArgs / AssumeArgs, run validation per validate.rs, and (on success) emit the wrapped item unchanged — they have no runtime effect, only compile-time signal. The argument shape mirrors the subset of aristo_core::index::IntentEntry / AssumeEntry that the developer writes by hand (text, verify, parent, id) — aristo stamp populates the rest from source position.

Macros§

assume_stmt
aristo::assume_stmt!("...", parent = ..., id = ...);
intent_stmt
aristo::intent_stmt!("...", verify = ..., parent = ..., id = ...);

Attribute Macros§

assume
#[aristo::assume("...", parent = ..., id = ...)]
intent
#[aristo::intent("...", verify = ..., parent = ..., id = ...)]