sel4_async_block_io_fat::filesystem

Struct Directory

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

Represents an open directory on disk.

Do NOT drop this object! It doesn’t hold a reference to the Volume Manager it was created from and if you drop it, the VolumeManager will think you still have the directory open, and it won’t let you open the directory again.

Instead you must pass it to [crate::VolumeManager::close_dir] to close it cleanly.

If you want your directories to close themselves on drop, create your own Directory type that wraps this one and also holds a VolumeManager reference. You’ll then also need to put your VolumeManager in some kind of Mutex or RefCell, and deal with the fact you can’t put them both in the same struct any more because one refers to the other. Basically, it’s complicated and there’s a reason we did it this way.

Trait Implementations§

Source§

impl Clone for Directory

Source§

fn clone(&self) -> Directory

Returns a copy of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Directory

Source§

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

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

impl PartialEq for Directory

Source§

fn eq(&self, other: &Directory) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Directory

Source§

impl Eq for Directory

Source§

impl StructuralPartialEq for Directory

Auto Trait Implementations§

§

impl Freeze for Directory

§

impl RefUnwindSafe for Directory

§

impl Send for Directory

§

impl Sync for Directory

§

impl Unpin for Directory

§

impl UnwindSafe for Directory

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

unsafe fn clone_to_uninit(&self, dst: *mut T)

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

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.