pub struct PastaLuaRuntime { /* private fields */ }Expand description
Pasta Lua Runtime - hosts a Lua VM with pasta modules.
Each instance owns an independent Lua VM and SearchContext. Multiple instances can coexist without interference.
Implementations§
Source§impl PastaLuaRuntime
impl PastaLuaRuntime
Sourcepub fn new(context: TranspileContext) -> LuaResult<Self>
pub fn new(context: TranspileContext) -> LuaResult<Self>
Create a new runtime from a TranspileContext with default configuration.
Initializes a Lua VM with standard libraries enabled and registers:
@pasta_searchmodule with scene and word registries@assertionsmodule for testing and validation@testingmodule for testing framework with hooks and reporting@regexmodule for regular expression support@jsonmodule for JSON encoding/decoding@yamlmodule for YAML encoding/decoding
Note: @env module is disabled by default for security reasons.
Use RuntimeConfig::full() or enable it explicitly to access environment variables.
§Arguments
context- TranspileContext from LuaTranspiler::transpile()
§Returns
Ok(Self)- Runtime initialized successfullyErr(e)- Lua VM or module registration failed
Sourcepub fn with_config(
context: TranspileContext,
config: RuntimeConfig,
) -> LuaResult<Self>
pub fn with_config( context: TranspileContext, config: RuntimeConfig, ) -> LuaResult<Self>
Sourcepub fn lua(&self) -> &Lua
pub fn lua(&self) -> &Lua
Get a reference to the internal Lua instance.
This allows advanced operations on the Lua VM.
Sourcepub fn logger(&self) -> Option<Arc<PastaLogger>>
pub fn logger(&self) -> Option<Arc<PastaLogger>>
Get a clone of the Arc-wrapped logger, if any.
This allows sharing the logger with GlobalLoggerRegistry for log routing in multi-instance scenarios.
Sourcepub fn config(&self) -> Option<&PastaConfig>
pub fn config(&self) -> Option<&PastaConfig>
Get reference to PastaConfig if available.
Returns the configuration loaded from pasta.toml during PastaLoader::load().
§Returns
Some(&PastaConfig)- Config was set during loadNone- Config not available (e.g., runtime created without loader)
Sourcepub fn from_loader(
context: TranspileContext,
loader_context: LoaderContext,
config: RuntimeConfig,
transpiled: &[TranspileResult],
logger: Option<Arc<PastaLogger>>,
) -> LuaResult<Self>
pub fn from_loader( context: TranspileContext, loader_context: LoaderContext, config: RuntimeConfig, transpiled: &[TranspileResult], logger: Option<Arc<PastaLogger>>, ) -> LuaResult<Self>
Create a runtime from LoaderContext with transpiled code.
This is the factory method used by PastaLoader to create a runtime with all configuration applied.
§Arguments
context- TranspileContext with scene/word registriesloader_context- Configuration and paths from PastaLoaderconfig- Runtime configurationtranspiled- Transpiled Lua code to loadlogger- Optional instance-specific logger (Arc-wrapped for sharing)
§Returns
Ok(Self)- Runtime initialized and code loadedErr(e)- Initialization or code loading failed
Sourcepub fn from_loader_with_scene_dic(
context: TranspileContext,
loader_context: LoaderContext,
runtime_config: RuntimeConfig,
pasta_config: Option<PastaConfig>,
logger: Option<Arc<PastaLogger>>,
_scene_dic_path: &Path,
) -> LuaResult<Self>
pub fn from_loader_with_scene_dic( context: TranspileContext, loader_context: LoaderContext, runtime_config: RuntimeConfig, pasta_config: Option<PastaConfig>, logger: Option<Arc<PastaLogger>>, _scene_dic_path: &Path, ) -> LuaResult<Self>
Create a runtime from LoaderContext with scene_dic.lua loading.
This is the new factory method used by PastaLoader with incremental transpilation. Instead of loading transpiled code directly, it loads scene_dic.lua which requires all cached scene modules.
§Initialization Sequence (lua-module-path-resolution spec)
- Setup package.path for module resolution
- Register Rust modules (@pasta_config, @enc, @pasta_persistence, @pasta_sakura_script)
- Register finalize_scene Rust binding
- require(“main”) - User initialization (errors logged as warnings, continues)
- require(“pasta.shiori.entry”) - SHIORI handlers (errors logged as warnings, continues)
- require(“pasta.scene_dic”) - Scene loading and finalization
§Arguments
context- TranspileContext with scene/word registriesloader_context- Configuration and paths from PastaLoaderruntime_config- Runtime configurationpasta_config- Pasta configuration from pasta.tomllogger- Optional instance-specific logger (Arc-wrapped for sharing)scene_dic_path- Path to the generated scene_dic.lua (used for backward compatibility check)
§Returns
Ok(Self)- Runtime initialized and scene_dic loadedErr(e)- Initialization or scene_dic loading failed
Sourcepub fn load_scene_dic(&self, scene_dic_path: &Path) -> LuaResult<()>
pub fn load_scene_dic(&self, scene_dic_path: &Path) -> LuaResult<()>
Load scene_dic.lua to initialize all scene modules.
This method requires the scene_dic.lua file which in turn requires all cached scene modules and calls finalize_scene().
§Arguments
scene_dic_path- Path to scene_dic.lua
§Returns
Ok(())- All scenes loaded successfullyErr(e)- Scene loading failed
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PastaLuaRuntime
impl !RefUnwindSafe for PastaLuaRuntime
impl !Send for PastaLuaRuntime
impl !Sync for PastaLuaRuntime
impl Unpin for PastaLuaRuntime
impl UnsafeUnpin for PastaLuaRuntime
impl !UnwindSafe for PastaLuaRuntime
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
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more