Struct ResourceToken

Source
pub struct ResourceToken<'a> { /* private fields */ }
Expand description

An opaque token associated with a resource.

It can be used to create debug and trace identifiers for the resource, but it should not be used as a unique identifier of the resource inside the netstack.

By default the lifetime of a token is bound the resource that token belongs to, but it can be extended by calling ResourceToken::extend_lifetime.

Implementations§

Source§

impl<'a> ResourceToken<'a>

Source

pub fn extend_lifetime(self) -> ResourceToken<'static>

Extends lifetime of the token.

§Discussion

It’s generally okay to extend the lifetime of the token, but prefer to use tokens bound to the resource’s lifetime whenever possible, since it provides guardrails against identifiers that outlive the resource itself.

Source

pub fn export_value(self) -> u64

Returns internal value. Consumes self.

§Discussion

Export to u64 when a representation is needed for interaction with other processes or components such as trace identifiers and eBPF socket cookies.

Refrain from using the returned value within the netstack otherwise.

Trait Implementations§

Source§

impl<'a> Debug for ResourceToken<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for ResourceToken<'a>

§

impl<'a> RefUnwindSafe for ResourceToken<'a>

§

impl<'a> Send for ResourceToken<'a>

§

impl<'a> Sync for ResourceToken<'a>

§

impl<'a> Unpin for ResourceToken<'a>

§

impl<'a> UnwindSafe for ResourceToken<'a>

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.

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.
Source§

impl<L, T> UnlockedAccess<L> for T

Source§

type Data = <L as UnlockedAccessMarkerFor<T>>::Data

The type of state being accessed.
Source§

type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l

A guard providing read access to the data.
Source§

fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>

How to access the state.
Source§

impl<B, A> LockBefore<B> for A
where B: LockAfter<A>,