pub struct Emulator<P: Program> { /* private fields */ }Expand description
A headless runtime that can run iced applications and execute instructions.
An Emulator runs its program as faithfully as possible to the real thing.
It will run subscriptions and tasks with the Executor of
the [Program].
If you want to run a simulation without side effects, use a Simulator
instead.
Implementations§
Source§impl<P: Program + 'static> Emulator<P>
 
impl<P: Program + 'static> Emulator<P>
Sourcepub fn with_preset(
    sender: Sender<Event<P>>,
    program: &P,
    mode: Mode,
    size: Size,
    preset: Option<&Preset<P::State, P::Message>>,
) -> Emulator<P>
 
pub fn with_preset( sender: Sender<Event<P>>, program: &P, mode: Mode, size: Size, preset: Option<&Preset<P::State, P::Message>>, ) -> Emulator<P>
Creates a new Emulator analogously to new, but it also takes a
[program::Preset] that will be used as the initial state.
When the Emulator has finished booting, an Event::Ready will be produced.
Sourcepub fn update(&mut self, program: &P, message: P::Message)
 
pub fn update(&mut self, program: &P, message: P::Message)
Updates the state of the Emulator program.
This is equivalent to calling the [Program::update] function,
resubscribing to any subscriptions, and running the resulting tasks
concurrently.
Sourcepub fn perform(&mut self, program: &P, action: Action<P>)
 
pub fn perform(&mut self, program: &P, action: Action<P>)
Performs an Action.
Whenever an Emulator sends an Event::Action, this
method must be called to proceed with the execution.
Sourcepub fn run(&mut self, program: &P, instruction: Instruction)
 
pub fn run(&mut self, program: &P, instruction: Instruction)
Runs an Instruction.
If the Instruction executes successfully, an Event::Ready will be
produced by the Emulator.
Otherwise, an Event::Failed will be triggered.
Sourcepub fn view(
    &self,
    program: &P,
) -> Element<'_, P::Message, P::Theme, P::Renderer>
 
pub fn view( &self, program: &P, ) -> Element<'_, P::Message, P::Theme, P::Renderer>
Returns the current view of the Emulator.
Sourcepub fn theme(&self, program: &P) -> Option<P::Theme>
 
pub fn theme(&self, program: &P) -> Option<P::Theme>
Returns the current theme of the Emulator.
Sourcepub fn into_state(self) -> (P::State, Id)
 
pub fn into_state(self) -> (P::State, Id)
Turns the Emulator into its internal state.
Auto Trait Implementations§
impl<P> Freeze for Emulator<P>
impl<P> !RefUnwindSafe for Emulator<P>
impl<P> !Send for Emulator<P>
impl<P> !Sync for Emulator<P>
impl<P> Unpin for Emulator<P>
impl<P> !UnwindSafe for Emulator<P>
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
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§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