Struct SemaphorePermit
struct SemaphorePermit<'a> { ... }
A permit from the semaphore.
This type is created by the acquire method.
Implementations
impl<'a> SemaphorePermit<'a>
fn forget(self: Self)Forgets the permit without releasing it back to the semaphore. This can be used to reduce the amount of permits available from a semaphore.
Examples
use Arc; use Semaphore; let sem = new; // Since we forgot the permit, available permits won't go back to its initial value // even after the permit is dropped. assert_eq!;fn merge(self: &mut Self, other: Self)Merge two
SemaphorePermitinstances together, consumingotherwithout releasing the permits it holds.Permits held by both
selfandotherare released whenselfdrops.Panics
This function panics if permits from different
Semaphoreinstances are merged.Examples
use Arc; use Semaphore; let sem = new; let mut permit = sem.try_acquire.unwrap; for _ in 0..9 assert_eq!; // Release all permits in a single batch. drop; assert_eq!;fn split(self: &mut Self, n: usize) -> Option<Self>Splits
npermits fromselfand returns a newSemaphorePermitinstance that holdsnpermits.If there are insufficient permits and it's not possible to reduce by
n, returnsNone.Examples
use Arc; use Semaphore; let sem = new; let mut p1 = sem.try_acquire_many.unwrap; let p2 = p1.split.unwrap; assert_eq!; assert_eq!;fn num_permits(self: &Self) -> usizeReturns the number of permits held by
self.
impl Drop for SemaphorePermit<'_>
fn drop(self: &mut Self)
impl<'a> Debug for SemaphorePermit<'a>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl<'a> Freeze for SemaphorePermit<'a>
impl<'a> RefUnwindSafe for SemaphorePermit<'a>
impl<'a> Send for SemaphorePermit<'a>
impl<'a> Sync for SemaphorePermit<'a>
impl<'a> Unpin for SemaphorePermit<'a>
impl<'a> UnsafeUnpin for SemaphorePermit<'a>
impl<'a> UnwindSafe for SemaphorePermit<'a>
impl<T> Any for SemaphorePermit<'a>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for SemaphorePermit<'a>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for SemaphorePermit<'a>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for SemaphorePermit<'a>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for SemaphorePermit<'a>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for SemaphorePermit<'a>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for SemaphorePermit<'a>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>