pub struct RawDirectory(/* 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.

Implementations§

source§

impl RawDirectory

source

pub fn to_directory<D, T, const MAX_DIRS: usize, const MAX_FILES: usize, const MAX_VOLUMES: usize>( self, volume_mgr: &mut VolumeManager<D, T, MAX_DIRS, MAX_FILES, MAX_VOLUMES> ) -> Directory<'_, D, T, MAX_DIRS, MAX_FILES, MAX_VOLUMES>
where D: BlockDevice, T: TimeSource,

Convert a raw directory into a droppable Directory

Trait Implementations§

source§

impl Clone for RawDirectory

source§

fn clone(&self) -> RawDirectory

Returns a copy 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 RawDirectory

source§

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

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

impl PartialEq for RawDirectory

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for RawDirectory

source§

impl Eq for RawDirectory

source§

impl StructuralPartialEq for RawDirectory

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.

source§

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

§

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>,

§

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.