Struct MainThreadToken

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

Zero sized token that can only exist on the main thread.

Call MainThreadToken::get() or MainThreadToken::assert() to get one.

Implementations§

Source§

impl MainThreadToken

Source

pub fn get() -> Option<Self>

Get Some(MainThreadToken) if called on the main thread, or None otherwise. Returns None if MainThreadToken hasn’t been inited.

On targets that don’t support threads, this will always succeed if MainThreadToken has been inited.

See also MainThreadToken::assert()

Source

pub fn assert() -> Self

Get MainThreadToken if called on the main thread, or panic otherwise. Panics if MainThreadToken hasn’t been inited.

On targets that don’t support threads, this will always succeed if MainThreadToken has been inited.

See also MainThreadToken::get()

Source

pub unsafe fn init()

Init and declare the current thread as the main thread.

This doesn’t change what’s the actual main thread, and it’s UB to call this on any thread other than the main thread. MainThreadToken::get() and MainThreadToken::assert() will fail on any thread including the main thread before this function is called.

The main and app_init macros will call this for you.

§Safety

It’s undefined behaviour to call this on any thread other than the main thread. On targets that don’t support threads, this is always safe.

Trait Implementations§

Source§

impl Clone for MainThreadToken

Source§

fn clone(&self) -> MainThreadToken

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 Copy for MainThreadToken

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.