pub struct Sticky<T> { /* fields omitted */ }
A Sticky<T>
keeps a value T stored in a thread.
This type works similar in nature to Fragile<T>
and exposes the
same interface. The difference is that whereas Fragile<T>
has
its destructor called in the thread where the value was sent, a
Sticky<T>
that is moved to another thread will have the internal
destructor called when the originating thread tears down.
As this uses TLS internally the general rules about the platform limitations
of destructors for TLS apply.
Creates a new Sticky
wrapping a value
.
The value that is moved into the Sticky
can be non Send
and
will be anchored to the thread that created the object. If the
sticky wrapper type ends up being send from thread to thread
only the original thread can interact with the value.
Consumes the Sticky
, returning the wrapped value.
Panics if called from a different thread than the one where the
original value was created.
Consumes the Sticky
, returning the wrapped value if successful.
The wrapped value is returned if this is called from the same thread
as the one where the original value was created, otherwise the
Sticky
is returned as Err(self)
.
Immutably borrows the wrapped value.
Panics if the calling thread is not the one that wrapped the value.
For a non-panicking variant, use try_get
.
Mutably borrows the wrapped value.
Panics if the calling thread is not the one that wrapped the value.
For a non-panicking variant, use try_get_mut
.
Tries to immutably borrow the wrapped value.
Returns None
if the calling thread is not the one that wrapped the value.
Tries to mutably borrow the wrapped value.
Returns None
if the calling thread is not the one that wrapped the value.
Executes the destructor for this type. Read more
Performs copy-assignment from source
. Read more
Returns the "default value" for a type. Read more
This method tests for self
and other
values to be equal, and is used by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self | 1.21.0 [src] |
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self | 1.21.0 [src] |
Compares and returns the minimum of two values. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more