pub struct InodeTable { /* private fields */ }Expand description
Bidirectional mapping between FUSE inodes and MTP objects, with cached metadata.
Implementations§
Source§impl InodeTable
impl InodeTable
Sourcepub fn add_storage(&mut self, storage_id: StorageId, name: String) -> u64
pub fn add_storage(&mut self, storage_id: StorageId, name: String) -> u64
Adds a storage as a child of root. Returns the new inode number.
Sourcepub fn add_object(
&mut self,
parent_inode: u64,
handle: ObjectHandle,
name: String,
is_dir: bool,
size: u64,
mtime: SystemTime,
) -> u64
pub fn add_object( &mut self, parent_inode: u64, handle: ObjectHandle, name: String, is_dir: bool, size: u64, mtime: SystemTime, ) -> u64
Adds a file or directory under the given parent. Returns the new inode number.
Sourcepub fn get(&self, inode: u64) -> Option<&InodeEntry>
pub fn get(&self, inode: u64) -> Option<&InodeEntry>
Looks up an entry by inode number.
Sourcepub fn get_mut(&mut self, inode: u64) -> Option<&mut InodeEntry>
pub fn get_mut(&mut self, inode: u64) -> Option<&mut InodeEntry>
Mutable lookup by inode number.
Sourcepub fn lookup(&self, parent_inode: u64, name: &str) -> Option<u64>
pub fn lookup(&self, parent_inode: u64, name: &str) -> Option<u64>
Finds a child inode by parent inode and name.
Sourcepub fn children(&self, parent_inode: u64) -> Vec<u64>
pub fn children(&self, parent_inode: u64) -> Vec<u64>
Returns the inodes of all children of the given parent.
Sourcepub fn remove(&mut self, inode: u64) -> Option<InodeEntry>
pub fn remove(&mut self, inode: u64) -> Option<InodeEntry>
Removes an entry and its index entries. Does not remove descendants.
Sourcepub fn rename(&mut self, inode: u64, new_parent: u64, new_name: String)
pub fn rename(&mut self, inode: u64, new_parent: u64, new_name: String)
Updates an entry’s parent and name (for rename/move operations).
Sourcepub fn find_parent_by_handle(&self, handle: ObjectHandle) -> Option<u64>
pub fn find_parent_by_handle(&self, handle: ObjectHandle) -> Option<u64>
Finds the parent inode of an entry identified by its MTP object handle.
Returns None if the handle is not in the table.
Sourcepub fn clear_children(&mut self, parent_inode: u64)
pub fn clear_children(&mut self, parent_inode: u64)
Removes all children of the given parent (for cache invalidation).
Trait Implementations§
Source§impl Debug for InodeTable
impl Debug for InodeTable
Auto Trait Implementations§
impl Freeze for InodeTable
impl RefUnwindSafe for InodeTable
impl Send for InodeTable
impl Sync for InodeTable
impl Unpin for InodeTable
impl UnsafeUnpin for InodeTable
impl UnwindSafe for InodeTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more