pub struct MacroContext<'a> { /* private fields */ }Expand description
Context provided to macro expanders for creating AST nodes.
This provides the necessary state for creating synthetic AST nodes during macro expansion, including ID allocation and error reporting.
Implementations§
Source§impl<'a> MacroContext<'a>
impl<'a> MacroContext<'a>
Sourcepub fn new(
next_id_fn: &'a mut dyn FnMut() -> i64,
store_macro_call_fn: Option<&'a mut dyn FnMut(i64, &Span, &SpannedExpr, &str, &[SpannedExpr])>,
) -> Self
pub fn new( next_id_fn: &'a mut dyn FnMut() -> i64, store_macro_call_fn: Option<&'a mut dyn FnMut(i64, &Span, &SpannedExpr, &str, &[SpannedExpr])>, ) -> Self
Create a new macro context.
Sourcepub fn take_errors(&mut self) -> Vec<(String, Span)>
pub fn take_errors(&mut self) -> Vec<(String, Span)>
Take accumulated errors.
Sourcepub fn store_macro_call(
&mut self,
call_id: i64,
span: &Span,
receiver: &SpannedExpr,
method_name: &str,
args: &[SpannedExpr],
)
pub fn store_macro_call( &mut self, call_id: i64, span: &Span, receiver: &SpannedExpr, method_name: &str, args: &[SpannedExpr], )
Store the original macro call expression for IDE features.
Auto Trait Implementations§
impl<'a> Freeze for MacroContext<'a>
impl<'a> !RefUnwindSafe for MacroContext<'a>
impl<'a> !Send for MacroContext<'a>
impl<'a> !Sync for MacroContext<'a>
impl<'a> Unpin for MacroContext<'a>
impl<'a> UnsafeUnpin for MacroContext<'a>
impl<'a> !UnwindSafe for MacroContext<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more