Skip to main content

Emulator

Struct Emulator 

Source
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>

Source

pub fn new( sender: Sender<Event<P>>, program: &P, mode: Mode, size: Size, ) -> Emulator<P>

Creates a new Emulator of the Program with the given Mode and Size.

The Emulator will send Event notifications through the provided mpsc::Sender.

When the Emulator has finished booting, an Event::Ready will be produced.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn view( &self, program: &P, ) -> Element<'_, P::Message, P::Theme, P::Renderer>

Returns the current view of the Emulator.

Source

pub fn theme(&self, program: &P) -> Option<P::Theme>

Returns the current theme of the Emulator.

Source

pub fn screenshot( &mut self, program: &P, theme: &P::Theme, scale_factor: f32, ) -> Screenshot

Takes a window::Screenshot of the current state of the Emulator.

Source

pub fn into_state(self) -> (P::State, Id)

Turns the Emulator into its internal state.

Auto Trait Implementations§

§

impl<P> Freeze for Emulator<P>
where <P as Program>::State: Freeze, <P as Program>::Renderer: Freeze, <P as Program>::Executor: Freeze,

§

impl<P> !RefUnwindSafe for Emulator<P>

§

impl<P> !Send for Emulator<P>

§

impl<P> !Sync for Emulator<P>

§

impl<P> Unpin for Emulator<P>
where <P as Program>::State: Unpin, <P as Program>::Renderer: Unpin, <P as Program>::Executor: Unpin, <P as Program>::Message: Unpin,

§

impl<P> UnsafeUnpin for Emulator<P>

§

impl<P> !UnwindSafe for Emulator<P>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> MaybeClone for T

Source§

impl<T> MaybeDebug for T