salsa_macro_rules/lib.rs
1//! This crate defines various `macro_rules` macros
2//! used as part of Salsa's internal plumbing.
3//! These macros are re-exported under `salsa::plumbing``.
4//! The procedural macros emit calls to these
5//! `macro_rules` macros after doing error checking.
6//!
7//! Using `macro_rules` macro definitions is generally
8//! more ergonomic and also permits true hygiene for local variables
9//! (sadly not items).
10//!
11//! Currently the only way to have a macro that is re-exported
12//! from a submodule is to use multiple crates, hence the existence
13//! of this crate.
14
15mod gate_accumulated;
16mod macro_if;
17mod maybe_backdate;
18mod maybe_default;
19mod return_mode;
20#[cfg(feature = "accumulator")]
21mod setup_accumulator_impl;
22mod setup_input_struct;
23mod setup_interned_struct;
24mod setup_tracked_assoc_fn_body;
25mod setup_tracked_fn;
26mod setup_tracked_method_body;
27mod setup_tracked_struct;
28mod unexpected_cycle_recovery;