pub trait Macro: Send + Sync {
// Required methods
fn name(&self) -> &[u8] ⓘ;
fn description(&self) -> &str;
fn source(&self) -> &[u8] ⓘ;
fn eval<'arg, 'reg: 'arg, 'exec: 'reg>(
&self,
exec: &'exec Executor,
vars: &'reg mut VariableRegistry,
rng: &mut Xoshiro128PlusPlus,
args: &mut dyn Iterator<Item = &'arg [u8]>,
) -> Result<Cow<'static, [u8]>, MacroError>;
fn clone(&self) -> Box<dyn Macro>;
}
Expand description
Defines a struct as a macro.
Required Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
The macro’s description.
Sourcefn eval<'arg, 'reg: 'arg, 'exec: 'reg>(
&self,
exec: &'exec Executor,
vars: &'reg mut VariableRegistry,
rng: &mut Xoshiro128PlusPlus,
args: &mut dyn Iterator<Item = &'arg [u8]>,
) -> Result<Cow<'static, [u8]>, MacroError>
fn eval<'arg, 'reg: 'arg, 'exec: 'reg>( &self, exec: &'exec Executor, vars: &'reg mut VariableRegistry, rng: &mut Xoshiro128PlusPlus, args: &mut dyn Iterator<Item = &'arg [u8]>, ) -> Result<Cow<'static, [u8]>, MacroError>
Evaluates the macro.