quote
Source: compiler/src/builtin_docs/keywords.md Builds generated code inside a macro: quote items|expr|stmts|type { template }.
The template is Coil source with holes: ${e} splices an expression, name,
type or Code, and $(xs),* splices a Vec<Code> with a separator. The
result is a Code value. Names bound inside the template are renamed so
they cannot clash with the caller’s. Contextual: quote(x) stays a call.
use macro::{Expr, Code};
macro twice(Expr e) -> Code {
return quote stmts {
${e};
${e};
};
}
See also#
Vecfn: Declares a function, a method, or (written in an expression) an anonymous function.let: Declares a mutable local variable.const: Declares a binding that cannot be reassigned: a local, a module constant, or a class field that is set only bynew.static: Declares a module-level or class-level slot shared by the whole program, or a method withoutself.readonly: A read-only view of a value: nothing reachable through it can be changed.if: Runs a block when aboolcondition is true.else: Introduces the branch of anifthat runs when its condition is false (or its pattern does not match).