Struct GlobalRef

Source
pub struct GlobalRef<T> { /* private fields */ }
Expand description

A cell to store immutable reference.

§Safety

Because the implementation internally converts raw pointers to usize and shares them between threads, fetching references is essentially unsafe. Please verify its safety before using it.

Implementations§

Source§

impl<T> GlobalRef<T>

Source

pub const fn new() -> Self

Create a new instance.

Source

pub unsafe fn set(&self, item: &T)

Set a reference so that other functions can obtain it through GlobalRef. It is recommended to use with() instead. Be sure to call clear() after it is used.

Source

pub fn clear(&self)

Clear the registered reference.

Source

pub fn with<F, R>(&self, item: &T, f: F) -> R
where F: FnOnce() -> R,

Set a reference and clear the reference after calling the given closure.

Source

pub fn get(&self) -> &T

Get a immutable reference. Panics if set() or with() has not been called before.

Source

pub fn try_get(&self) -> Option<&T>

Get a immutable reference. Returns None if set() or with() has not been called before.

Trait Implementations§

Source§

impl<T: Debug> Debug for GlobalRef<T>

Source§

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

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

impl<T> Default for GlobalRef<T>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T> !Freeze for GlobalRef<T>

§

impl<T> RefUnwindSafe for GlobalRef<T>
where T: RefUnwindSafe,

§

impl<T> Send for GlobalRef<T>
where T: Send,

§

impl<T> Sync for GlobalRef<T>
where T: Sync,

§

impl<T> Unpin for GlobalRef<T>
where T: Unpin,

§

impl<T> UnwindSafe for GlobalRef<T>
where T: UnwindSafe,

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.