Trait gluon_vm::macros::Macro

source ·
pub trait Macro: Any + Send + Sync {
    fn expand(
        &self,
        env: &mut MacroExpander<'_>,
        args: Vec<SpannedExpr<Symbol>>
    ) -> MacroFuture; }
Expand description

A trait which abstracts over macros.

A macro is similiar to a function call but is run at compile time instead of at runtime.

Required Methods

Implementations

Returns true if the boxed type is the same as T

Returns some reference to the boxed value if it is of type T, or None if it isn’t.

Returns a reference to the boxed value, blindly assuming it to be of type T. If you are not absolutely certain of T, you must not call this.

Returns some mutable reference to the boxed value if it is of type T, or None if it isn’t.

Returns a mutable reference to the boxed value, blindly assuming it to be of type T. If you are not absolutely certain of T, you must not call this.

Returns the boxed value if it is of type T, or Err(Self) if it isn’t.

Returns the boxed value, blindly assuming it to be of type T. If you are not absolutely certain of T, you must not call this.

Implementors