Struct UnSyncLazyFinalize

Source
pub struct UnSyncLazyFinalize<T, G = fn() -> T> { /* private fields */ }
Available on crate feature thread_local only.
Expand description

The actual type of thread_local statics attributed with #[dynamic(finalize)] The method from_generator is unsafe as the object must be a non mutable static.

Implementations§

Source§

impl<T, G> UnSyncLazyFinalize<T, G>

Source

pub const unsafe fn from_generator(f: G) -> Self

Build a new static object

§Safety

This function may be unsafe if building any thing else than a thread local object or a static will be the cause of undefined behavior

Source

pub const unsafe fn from_generator_with_info(f: G, info: StaticInfo) -> Self

Build a new static object with debug information

§Safety

This function may be unsafe if building any thing else than a thread local object or a static will be the cause of undefined behavior

Source§

impl<T, G> UnSyncLazyFinalize<T, G>
where G: 'static + Generator<T>, T: 'static + Finaly,

Source

pub fn get(this: &Self) -> &T

Initialize if necessary then return a reference to the target.

§Panics

Panic if previous attempt to initialize has panicked and the lazy policy does not tolorate further initialization attempt or if initialization panic.

Source

pub fn try_get(this: &Self) -> Result<&T, AccessError>

Return a reference to the target if initialized otherwise return an error.

Source

pub fn phase(this: &Self) -> Phase

Return the phase

Source

pub fn init(this: &Self) -> Phase

Initialize the lazy if not yet initialized

§Panic

Panic if the generator panics

Trait Implementations§

Source§

impl<T, G> Deref for UnSyncLazyFinalize<T, G>
where G: 'static + Generator<T>, T: 'static + Finaly,

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'a, T, G> LazyAccess for &'a UnSyncLazyFinalize<T, G>
where G: 'static + Generator<T>, T: 'static + Finaly,

Source§

type Target = &'a T

Source§

fn get(this: Self) -> &'a T

Initialize if necessary then return a reference to the target. Read more
Source§

fn try_get(this: Self) -> Result<&'a T, AccessError>

Return a reference to the target if initialized otherwise return an error.
Source§

fn phase(this: Self) -> Phase

The current phase of the static
Source§

fn init(this: Self) -> Phase

Initialize the static if there were no previous attempt to initialize it.
Source§

impl<T, G> Phased for UnSyncLazyFinalize<T, G>
where G: 'static + Generator<T>, T: Finaly,

Source§

fn phase(this: &Self) -> Phase

return the current phase

Auto Trait Implementations§

§

impl<T, G = fn() -> T> !Freeze for UnSyncLazyFinalize<T, G>

§

impl<T, G> RefUnwindSafe for UnSyncLazyFinalize<T, G>

§

impl<T, G = fn() -> T> !Send for UnSyncLazyFinalize<T, G>

§

impl<T, G = fn() -> T> !Sync for UnSyncLazyFinalize<T, G>

§

impl<T, G> Unpin for UnSyncLazyFinalize<T, G>
where G: Unpin, T: Unpin,

§

impl<T, G> UnwindSafe for UnSyncLazyFinalize<T, G>
where G: UnwindSafe, 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.