pub struct DefaultHost<D: DebugHandler = DefaultDebugHandler, S: SourceManager = DefaultSourceManager> { /* private fields */ }
Expand description
A default Host implementation that provides the essential functionality required by the VM.
Implementations§
Source§impl<D, S> DefaultHost<D, S>where
D: DebugHandler,
S: SourceManager,
impl<D, S> DefaultHost<D, S>where
D: DebugHandler,
S: SourceManager,
Sourcepub fn with_source_manager<O>(self, source_manager: Arc<O>) -> DefaultHost<D, O>where
O: SourceManager,
pub fn with_source_manager<O>(self, source_manager: Arc<O>) -> DefaultHost<D, O>where
O: SourceManager,
Use the given source manager implementation instead of the default one
DefaultSourceManager
.
Sourcepub fn load_library(
&mut self,
library: impl Into<HostLibrary>,
) -> Result<(), ExecutionError>
pub fn load_library( &mut self, library: impl Into<HostLibrary>, ) -> Result<(), ExecutionError>
Loads a HostLibrary
containing a MastForest
with its list of event handlers.
Sourcepub fn with_library(
self,
library: impl Into<HostLibrary>,
) -> Result<Self, ExecutionError>
pub fn with_library( self, library: impl Into<HostLibrary>, ) -> Result<Self, ExecutionError>
Adds a HostLibrary
containing a MastForest
with its list of event handlers.
to the host.
Sourcepub fn register_handler(
&mut self,
id: EventId,
handler: Arc<dyn EventHandler>,
) -> Result<(), ExecutionError>
pub fn register_handler( &mut self, id: EventId, handler: Arc<dyn EventHandler>, ) -> Result<(), ExecutionError>
Registers a single EventHandler
into this host.
The handler can be either a closure or a free function with signature
fn(&mut ProcessState) -> Result<(), EventHandler>
Sourcepub fn unregister_handler(&mut self, id: EventId) -> bool
pub fn unregister_handler(&mut self, id: EventId) -> bool
Un-registers a handler with the given id, returning a flag indicating whether a handler was previously registered with this id.
Sourcepub fn replace_handler(
&mut self,
id: EventId,
handler: Arc<dyn EventHandler>,
) -> bool
pub fn replace_handler( &mut self, id: EventId, handler: Arc<dyn EventHandler>, ) -> bool
Replaces a handler with the given id, returning a flag indicating whether a handler was previously registered with this id.
Sourcepub fn with_debug_handler<H: DebugHandler>(
self,
handler: H,
) -> DefaultHost<H, S>
pub fn with_debug_handler<H: DebugHandler>( self, handler: H, ) -> DefaultHost<H, S>
Replace the current DebugHandler
with a custom one.
Trait Implementations§
Source§impl<D, S> AsyncHost for DefaultHost<D, S>where
D: DebugHandler,
S: SourceManagerSync,
impl<D, S> AsyncHost for DefaultHost<D, S>where
D: DebugHandler,
S: SourceManagerSync,
Source§fn get_mast_forest(
&self,
node_digest: &Word,
) -> impl FutureMaybeSend<Option<Arc<MastForest>>>
fn get_mast_forest( &self, node_digest: &Word, ) -> impl FutureMaybeSend<Option<Arc<MastForest>>>
Source§fn on_event(
&mut self,
process: &ProcessState<'_>,
) -> impl FutureMaybeSend<Result<Vec<AdviceMutation>, EventError>>
fn on_event( &mut self, process: &ProcessState<'_>, ) -> impl FutureMaybeSend<Result<Vec<AdviceMutation>, EventError>>
Source§impl<D, S> BaseHost for DefaultHost<D, S>where
D: DebugHandler,
S: SourceManager,
impl<D, S> BaseHost for DefaultHost<D, S>where
D: DebugHandler,
S: SourceManager,
Source§fn on_assert_failed(&mut self, _process: &ProcessState<'_>, _err_code: Felt)
fn on_assert_failed(&mut self, _process: &ProcessState<'_>, _err_code: Felt)
Handles the failure of the assertion instruction.
Source§fn get_label_and_source_file(
&self,
location: &Location,
) -> (SourceSpan, Option<Arc<SourceFile>>)
fn get_label_and_source_file( &self, location: &Location, ) -> (SourceSpan, Option<Arc<SourceFile>>)
SourceSpan
and optional SourceFile
for the provided location.Source§fn on_debug(
&mut self,
process: &mut ProcessState<'_>,
options: &DebugOptions,
) -> Result<(), ExecutionError>
fn on_debug( &mut self, process: &mut ProcessState<'_>, options: &DebugOptions, ) -> Result<(), ExecutionError>
Source§fn on_trace(
&mut self,
process: &mut ProcessState<'_>,
trace_id: u32,
) -> Result<(), ExecutionError>
fn on_trace( &mut self, process: &mut ProcessState<'_>, trace_id: u32, ) -> Result<(), ExecutionError>
Source§impl<D: Debug + DebugHandler, S: Debug + SourceManager> Debug for DefaultHost<D, S>
impl<D: Debug + DebugHandler, S: Debug + SourceManager> Debug for DefaultHost<D, S>
Source§impl Default for DefaultHost
impl Default for DefaultHost
Source§impl<D, S> SyncHost for DefaultHost<D, S>where
D: DebugHandler,
S: SourceManager,
impl<D, S> SyncHost for DefaultHost<D, S>where
D: DebugHandler,
S: SourceManager,
Source§fn get_mast_forest(&self, node_digest: &Word) -> Option<Arc<MastForest>>
fn get_mast_forest(&self, node_digest: &Word) -> Option<Arc<MastForest>>
Source§fn on_event(
&mut self,
process: &ProcessState<'_>,
) -> Result<Vec<AdviceMutation>, EventError>
fn on_event( &mut self, process: &ProcessState<'_>, ) -> Result<Vec<AdviceMutation>, EventError>
EMIT
operation. Read moreAuto Trait Implementations§
impl<D, S> Freeze for DefaultHost<D, S>where
D: Freeze,
impl<D = DefaultDebugHandler, S = DefaultSourceManager> !RefUnwindSafe for DefaultHost<D, S>
impl<D, S> Send for DefaultHost<D, S>
impl<D, S> Sync for DefaultHost<D, S>
impl<D, S> Unpin for DefaultHost<D, S>where
D: Unpin,
impl<D = DefaultDebugHandler, S = DefaultSourceManager> !UnwindSafe for DefaultHost<D, S>
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<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