pub struct File(/* 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.
Trait Implementations§
impl Copy for File
impl Eq for File
impl StructuralPartialEq for File
Auto Trait Implementations§
impl Freeze for File
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.