Struct fragile::SemiSticky [−][src]
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>
.
Implementations
impl<T> SemiSticky<T>
[src]
pub fn new(value: T) -> Self
[src]
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]
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]
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]
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]
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]
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]
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]
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: Clone> Clone for SemiSticky<T>
[src]
fn clone(&self) -> SemiSticky<T>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Debug> Debug for SemiSticky<T>
[src]
impl<T: Default> Default for SemiSticky<T>
[src]
fn default() -> SemiSticky<T>
[src]
impl<T: Display> Display for SemiSticky<T>
[src]
impl<T: Eq> Eq for SemiSticky<T>
[src]
impl<T> From<T> for SemiSticky<T>
[src]
fn from(t: T) -> SemiSticky<T>
[src]
impl<T: Ord> Ord for SemiSticky<T>
[src]
fn cmp(&self, other: &SemiSticky<T>) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl<T: PartialEq> PartialEq<SemiSticky<T>> for SemiSticky<T>
[src]
fn eq(&self, other: &SemiSticky<T>) -> bool
[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl<T: PartialOrd> PartialOrd<SemiSticky<T>> for SemiSticky<T>
[src]
fn partial_cmp(&self, other: &SemiSticky<T>) -> Option<Ordering>
[src]
fn lt(&self, other: &SemiSticky<T>) -> bool
[src]
fn le(&self, other: &SemiSticky<T>) -> bool
[src]
fn gt(&self, other: &SemiSticky<T>) -> bool
[src]
fn ge(&self, other: &SemiSticky<T>) -> bool
[src]
Auto Trait Implementations
impl<T> !RefUnwindSafe for SemiSticky<T>
impl<T> Send for SemiSticky<T>
impl<T> Sync for SemiSticky<T>
impl<T> Unpin for SemiSticky<T>
impl<T> UnwindSafe for SemiSticky<T> where
T: RefUnwindSafe + UnwindSafe,
T: RefUnwindSafe + UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<!> for T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,