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
impl RawFile
sourcepub 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,
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