Skip to main content

OwnedSemaphorePermit

Struct OwnedSemaphorePermit 

Source
pub struct OwnedSemaphorePermit { /* private fields */ }
Expand description

Permits taken from a Semaphore held through an Arc. The release makes the progress SemaphorePermit’s does.

Implementations§

Source§

impl OwnedSemaphorePermit

Source

pub fn forget(self)

Keeps the permits out of the semaphore for good.

Source

pub fn merge(&mut self, other: Self)

Merges other into this permit, so one drop returns both.

§Panics

When the permits come from different semaphores, or their total overflows usize.

Source

pub fn split(&mut self, n: usize) -> Option<Self>

Splits n permits off this one, or returns None when it holds fewer than n.

Source

pub fn semaphore(&self) -> &Arc<Semaphore> ⓘ

The semaphore these permits came from.

Source

pub fn num_permits(&self) -> usize

How many permits this holds.

Source

pub fn count(&self) -> usize

How many permits this holds; the same as num_permits.

Trait Implementations§

Source§

impl Debug for OwnedSemaphorePermit

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for OwnedSemaphorePermit

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.