tao::event_loop

Enum ControlFlow

Source
#[non_exhaustive]
pub enum ControlFlow { Poll, Wait, WaitUntil(Instant), ExitWithCode(i32), }
Expand description

Set by the user callback given to the EventLoop::run method.

Indicates the desired behavior of the event loop after Event::RedrawEventsCleared is emitted. Defaults to Poll.

§Persistency

Almost every change is persistent between multiple calls to the event loop closure within a given run loop. The only exception to this is ExitWithCode which, once set, cannot be unset. Changes are not persistent between multiple calls to run_return - issuing a new call will reset the control flow to Poll.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Poll

When the current loop iteration finishes, immediately begin a new iteration regardless of whether or not new events are available to process.

§

Wait

When the current loop iteration finishes, suspend the thread until another event arrives.

§

WaitUntil(Instant)

When the current loop iteration finishes, suspend the thread until either another event arrives or the given time is reached.

§

ExitWithCode(i32)

Send a LoopDestroyed event and stop the event loop. This variant is sticky - once set, control_flow cannot be changed from ExitWithCode, and any future attempts to do so will result in the control_flow parameter being reset to ExitWithCode.

The contained number will be used as exit code. The Exit constant is a shortcut for this with exit code 0.

§Platform-specific
  • Android / iOS / WASM: The supplied exit code is unused.
  • Unix: On most Unix-like platforms, only the 8 least significant bits will be used, which can cause surprises with negative exit values (-42 would end up as 214). See std::process::exit.

Implementations§

Source§

impl ControlFlow

Source

pub const Exit: Self = _

Alias for ExitWithCode(0).

Trait Implementations§

Source§

impl Clone for ControlFlow

Source§

fn clone(&self) -> ControlFlow

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ControlFlow

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ControlFlow

Source§

fn default() -> ControlFlow

Returns the “default value” for a type. Read more
Source§

impl PartialEq for ControlFlow

Source§

fn eq(&self, other: &ControlFlow) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ControlFlow

Source§

impl Eq for ControlFlow

Source§

impl StructuralPartialEq for ControlFlow

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T