pub struct ExpandOptions {
pub keep_decorators: Option<bool>,
pub external_decorator_modules: Option<Vec<String>>,
pub config_path: Option<String>,
}Expand description
Options for macro expansion.
Used by expand_sync to configure expansion behavior.
Fields§
§keep_decorators: Option<bool>If true, preserves @derive decorators in the output.
If false (default), decorators are stripped after expansion.
external_decorator_modules: Option<Vec<String>>Additional decorator module names from external macros.
These are used during decorator stripping to identify Macroforge-specific decorators that should be removed from the output. Built-in decorator modules (like “serde”, “debug”) are automatically included.
External macro packages should export their decorator module names, which plugins can collect and pass here.
§Example
expandSync(code, filepath, {
keepDecorators: false,
externalDecoratorModules: ["myMacro", "customValidator"]
});config_path: Option<String>Path to a previously loaded config file.
When provided, the expansion will use the cached configuration
(including foreign types) from this path. The config must have been
previously loaded via load_config.
§Example
// First, load the config
const configResult = loadConfig(configContent, configPath);
// Then use it during expansion
expandSync(code, filepath, { configPath });Trait Implementations§
Source§impl FromNapiValue for ExpandOptions
impl FromNapiValue for ExpandOptions
Source§unsafe fn from_napi_value(
env: napi_env,
napi_val: napi_value,
) -> Result<ExpandOptions>
unsafe fn from_napi_value( env: napi_env, napi_val: napi_value, ) -> Result<ExpandOptions>
fn from_unknown(value: Unknown<'_>) -> Result<Self, Error>
Source§impl ToNapiValue for ExpandOptions
impl ToNapiValue for ExpandOptions
Source§unsafe fn to_napi_value(env: napi_env, val: ExpandOptions) -> Result<napi_value>
unsafe fn to_napi_value(env: napi_env, val: ExpandOptions) -> Result<napi_value>
fn into_unknown(self, env: &Env) -> Result<Unknown<'_>, Error>
Source§impl TypeName for ExpandOptions
impl TypeName for ExpandOptions
Source§impl ValidateNapiValue for ExpandOptions
impl ValidateNapiValue for ExpandOptions
Source§unsafe fn validate(
env: *mut napi_env__,
napi_val: *mut napi_value__,
) -> Result<*mut napi_value__, Error>
unsafe fn validate( env: *mut napi_env__, napi_val: *mut napi_value__, ) -> Result<*mut napi_value__, Error>
Auto Trait Implementations§
impl Freeze for ExpandOptions
impl RefUnwindSafe for ExpandOptions
impl Send for ExpandOptions
impl Sync for ExpandOptions
impl Unpin for ExpandOptions
impl UnwindSafe for ExpandOptions
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more