pub struct Fragile<T> { /* private fields */ }
Expand description
A Fragile<T>
wraps a non sendable T
to be safely send to other threads.
Once the value has been wrapped it can be sent to other threads but access to the value on those threads will fail.
If the value needs destruction and the fragile wrapper is on another thread
the destructor will panic. Alternatively you can use Sticky<T>
which is
not going to panic but might temporarily leak the value.
Implementations
Creates a new Fragile
wrapping a value
.
The value that is moved into the Fragile
can be non Send
and
will be anchored to the thread that created the object. If the
fragile wrapper type ends up being send from thread to thread
only the original thread can interact with the value.
Returns true
if the access is valid.
This will be false
if the value was sent to another thread.
Consumes the Fragile
, returning the wrapped value.
Panics
Panics if called from a different thread than the one where the original value was created.
Consumes the Fragile
, 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
Fragile
is returned as Err(self)
.
Mutably borrows the wrapped value.
Panics
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.
Trait Implementations
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
Auto Trait Implementations
impl<T> RefUnwindSafe for Fragile<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Fragile<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more