Struct Participation

Source
pub struct Participation(/* private fields */);
Expand description

Handle onto a participant’s participation in a tracker

Participation is a handle. All clones are for use by the same conceptual Participant. It doesn’t keep the underlying Account alive.

Participations are created by registering new participants, for example using Account::register_participant.

Variables of this type are often named partn.

Implementations§

Source§

impl Participation

Source

pub fn claim(&mut self, want: usize) -> Result<()>

Record that some memory has been (or will be) allocated

Source

pub fn release(&mut self, have: usize)

Record that some memory has been (or will be) freed by a participant

Source

pub fn account(&self) -> WeakAccount

Obtain a handle onto the account

The returned handle is weak, and needs to be upgraded before use, since a Participation doesn’t keep its Account alive.

The returned WeakAccount is equivalent to all the other account handles for the same account.

Source

pub fn destroy_participant(self)

Destroy this participant

Treat as freed all the memory allocated via this Participation and its clones. After this, other clones of this Participation are no longer usable: attempts to do so will give errors. (although they can still be used to get at the Account, if it still exists).

The actual memory should be freed promptly.

(It is not necessary to call this function in order to get the memory tracker to free its handle onto the IsParticipant, because the memory quota system holds only a Weak reference.)

Source

pub fn new_dangling() -> Self

Creates a new dangling, dummy, Participation

This can be used as a standin where a value of type Participation is needed. The returned value cannot be used to claim memory, or find an Account or MemoryQuotaTracker.

Trait Implementations§

Source§

impl Clone for Participation

Source§

fn clone(&self) -> Participation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Participation

Source§

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

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

impl Drop for Participation

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T> From<Participation> for TypedParticipation<T>

Source§

fn from(untyped: Participation) -> TypedParticipation<T>

Converts to this type from the input type.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T