Struct fragile::SemiSticky [−][src]
pub struct SemiSticky<T> { /* fields omitted */ }
A SemiSticky<T>
keeps a value T stored in a thread if it has a drop.
This is a combined version of Fragile<T>
and Sticky<T>
. If the type
does not have a drop it will effectively be a Fragile<T>
, otherwise it
will be internally behave like a Sticky<T>
.
Methods
impl<T> SemiSticky<T>
[src]
impl<T> SemiSticky<T>
pub fn new(value: T) -> Self
[src]
pub fn new(value: T) -> Self
Creates a new SemiSticky
wrapping a value
.
The value that is moved into the SemiSticky
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. In case the
value does not have Drop
it will be stored in the SemiSticky
instead.
pub fn is_valid(&self) -> bool
[src]
pub fn is_valid(&self) -> bool
Returns true
if the access is valid.
This will be false
if the value was sent to another thread.
pub fn into_inner(self) -> T
[src]
pub fn into_inner(self) -> T
Consumes the SemiSticky
, returning the wrapped value.
Panics
Panics if called from a different thread than the one where the original value was created.
pub fn try_into_inner(self) -> Result<T, Self>
[src]
pub fn try_into_inner(self) -> Result<T, Self>
Consumes the SemiSticky
, 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
SemiSticky
is returned as Err(self)
.
pub fn get(&self) -> &T
[src]
pub fn get(&self) -> &T
Immutably 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
.
pub fn get_mut(&mut self) -> &mut T
[src]
pub fn get_mut(&mut self) -> &mut T
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
.
pub fn try_get(&self) -> Result<&T, InvalidThreadAccess>
[src]
pub fn try_get(&self) -> Result<&T, InvalidThreadAccess>
Tries to immutably borrow the wrapped value.
Returns None
if the calling thread is not the one that wrapped the value.
pub fn try_get_mut(&mut self) -> Result<&mut T, InvalidThreadAccess>
[src]
pub fn try_get_mut(&mut self) -> Result<&mut T, InvalidThreadAccess>
Tries to mutably borrow the wrapped value.
Returns None
if the calling thread is not the one that wrapped the value.
Trait Implementations
impl<T> From<T> for SemiSticky<T>
[src]
impl<T> From<T> for SemiSticky<T>
fn from(t: T) -> SemiSticky<T>
[src]
fn from(t: T) -> SemiSticky<T>
Performs the conversion.
impl<T: Clone> Clone for SemiSticky<T>
[src]
impl<T: Clone> Clone for SemiSticky<T>
fn clone(&self) -> SemiSticky<T>
[src]
fn clone(&self) -> SemiSticky<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<T: Default> Default for SemiSticky<T>
[src]
impl<T: Default> Default for SemiSticky<T>
fn default() -> SemiSticky<T>
[src]
fn default() -> SemiSticky<T>
Returns the "default value" for a type. Read more
impl<T: PartialEq> PartialEq for SemiSticky<T>
[src]
impl<T: PartialEq> PartialEq for SemiSticky<T>
fn eq(&self, other: &SemiSticky<T>) -> bool
[src]
fn eq(&self, other: &SemiSticky<T>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
fn ne(&self, other: &Rhs) -> bool
This method tests for !=
.
impl<T: Eq> Eq for SemiSticky<T>
[src]
impl<T: Eq> Eq for SemiSticky<T>
impl<T: PartialOrd> PartialOrd for SemiSticky<T>
[src]
impl<T: PartialOrd> PartialOrd for SemiSticky<T>
fn partial_cmp(&self, other: &SemiSticky<T>) -> Option<Ordering>
[src]
fn partial_cmp(&self, other: &SemiSticky<T>) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &SemiSticky<T>) -> bool
[src]
fn lt(&self, other: &SemiSticky<T>) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &SemiSticky<T>) -> bool
[src]
fn le(&self, other: &SemiSticky<T>) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &SemiSticky<T>) -> bool
[src]
fn gt(&self, other: &SemiSticky<T>) -> bool
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &SemiSticky<T>) -> bool
[src]
fn ge(&self, other: &SemiSticky<T>) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl<T: Ord> Ord for SemiSticky<T>
[src]
impl<T: Ord> Ord for SemiSticky<T>
fn cmp(&self, other: &SemiSticky<T>) -> Ordering
[src]
fn cmp(&self, other: &SemiSticky<T>) -> Ordering
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.21.0[src]
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
impl<T: Display> Display for SemiSticky<T>
[src]
impl<T: Display> Display for SemiSticky<T>
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl<T: Debug> Debug for SemiSticky<T>
[src]
impl<T: Debug> Debug for SemiSticky<T>
Auto Trait Implementations
impl<T> Send for SemiSticky<T>
impl<T> Send for SemiSticky<T>
impl<T> Sync for SemiSticky<T>
impl<T> Sync for SemiSticky<T>