Skip to main content

NativeMainExecutor

Struct NativeMainExecutor 

Source
pub struct NativeMainExecutor(/* private fields */);
Expand description

Dispatches work to the platform main thread.

This is deliberately a separate type from NativeExecutor: only targets with an established main thread can produce one, so handing a main-thread executor to an API that needs one is checked when you construct it rather than when the first task is spawned.

If you own an event loop, do not use this type. Implement LocalExecutor over your own loop instead — winit, GTK/glib, or a frame pump — so tasks run on the thread that owns your windows. This type is for hosts that have no loop of their own.

Implementations§

Source§

impl NativeMainExecutor

Source

pub fn new() -> Option<Self>

Returns None when no main thread has been established.

That is never the case on Apple and web targets. On Android it means [register_android_main_thread] has not run yet; under the polyfill it means no thread is running polyfill::executor::start_main_executor.

Source

pub fn with_priority(priority: Priority) -> Option<Self>

Like NativeMainExecutor::new, with an explicit priority.

Source

pub fn spawn_main<Fut>(&self, fut: Fut) -> AsyncTask<Fut::Output>
where Fut: Future<Output: Send> + Send + 'static,

Source

pub fn spawn_main_local<Fut>( &self, fut: Fut, ) -> <Self as LocalExecutor>::Task<Fut::Output>
where Fut: Future + 'static,

§Panics

Under the polyfill, panics unless called from the thread running polyfill::executor::start_main_executor; that backend runs the task inline rather than dispatching it.

Trait Implementations§

Source§

impl Debug for NativeMainExecutor

Source§

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

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

impl LocalExecutor for NativeMainExecutor

§Panics

Under the polyfill, panics if not called from the registered main thread.

Source§

type Task<T: 'static> = AsyncTask<T>

The task type returned by spawn. Read more
Source§

fn spawn_local<Fut>(&self, fut: Fut) -> Self::Task<Fut::Output>
where Fut: Future + 'static,

Spawn a future that will run to completion on the local executor. Read more

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> 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, 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.