Struct embedded_sdmmc::RawFile

source ·
pub struct RawFile(/* private fields */);
Expand description

Represents an open file on disk.

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

Instead you must pass it to crate::VolumeManager::close_file to close it cleanly.

If you want your files to close themselves on drop, create your own File 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 RawFile

source

pub fn to_file<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> ) -> File<'_, D, T, MAX_DIRS, MAX_FILES, MAX_VOLUMES>
where D: BlockDevice, T: TimeSource,

Convert a raw file into a droppable File

Trait Implementations§

source§

impl Clone for RawFile

source§

fn clone(&self) -> RawFile

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 RawFile

source§

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

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

impl PartialEq for RawFile

source§

fn eq(&self, other: &RawFile) -> 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 RawFile

source§

impl Eq for RawFile

source§

impl StructuralPartialEq for RawFile

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.