Struct Scope

Source
pub struct Scope<T> { /* private fields */ }
Expand description

Handle to a DebugFS scope, which ensures that attached data will outlive the DebugFS entry without moving.

This is internally used to back File, and used in the API to represent the attachment of a directory lifetime to a data structure which may be jointly accessed by a number of different files.

When dropped, a Scope will remove all directories and files in the filesystem backed by the attached data structure prior to releasing the attached data.

Implementations§

Source§

impl<T> Scope<T>

Source

pub fn project<'__pin>( self: Pin<&'__pin mut Self>, ) -> ScopeProjection<'__pin, T>

Pin-projects all fields of Self.

These fields are structurally pinned:

  • data
  • _pin

These fields are not structurally pinned:

  • _entry
Source§

impl<'a, T: 'a> Scope<T>

Source

pub fn dir<E: 'a, F>( data: impl PinInit<T, E> + 'a, name: &'a CStr, init: F, ) -> impl PinInit<Self, E> + 'a
where F: for<'data, 'dir> FnOnce(&'data T, &'dir ScopedDir<'data, 'dir>) + 'a,

Creates a new scope, which is a directory at the root of the debugfs filesystem, associated with some data T.

The init closure is called to populate the directory with files and subdirectories. These files can reference the data stored in the scope.

The entire directory tree created within the scope will be removed when the returned Scope handle is dropped.

Trait Implementations§

Source§

impl<T> Deref for Scope<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<T> HasPinData for Scope<T>

Source§

type PinData = __ThePinData<T>

Source§

unsafe fn __pin_data() -> Self::PinData

Auto Trait Implementations§

§

impl<T> Freeze for Scope<T>
where T: Freeze,

§

impl<T> !RefUnwindSafe for Scope<T>

§

impl<T> Send for Scope<T>
where T: Send,

§

impl<T> Sync for Scope<T>
where T: Sync,

§

impl<T> !UnwindSafe for Scope<T>

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> Init<T> for T

Source§

unsafe fn __init(self, slot: *mut T) -> Result<(), Infallible>

Initializes slot. Read more
Source§

fn chain<F>(self, f: F) -> ChainInit<Self, F, T, E>
where F: FnOnce(&mut T) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. 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> PinInit<T> for T

Source§

unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>

Initializes slot. Read more
Source§

fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>
where F: FnOnce(Pin<&mut T>) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.