pub struct InodeTable {
inodes: HashMap<u64, InodeEntry>,
path_to_ino: HashMap<PathBuf, u64>,
real_ino_map: HashMap<u64, u64>,
query_to_ino: HashMap<String, u64>,
next_ino: u64,
}Expand description
Inode table managing virtual and real file mappings.
Fields§
§inodes: HashMap<u64, InodeEntry>Inode number -> entry
path_to_ino: HashMap<PathBuf, u64>Path -> inode for real files
real_ino_map: HashMap<u64, u64>Underlying inode -> our inode (for real files)
query_to_ino: HashMap<String, u64>Query string -> inode (for query results)
next_ino: u64Next available inode
Implementations§
Source§impl InodeTable
impl InodeTable
fn init_virtual_inodes(&mut self)
Sourcepub fn get(&self, ino: u64) -> Option<&InodeEntry>
pub fn get(&self, ino: u64) -> Option<&InodeEntry>
Get an inode entry.
Sourcepub fn get_or_create_real(&mut self, path: PathBuf, underlying_ino: u64) -> u64
pub fn get_or_create_real(&mut self, path: PathBuf, underlying_ino: u64) -> u64
Get or create inode for a real path.
Sourcepub fn get_or_create_query_result(&mut self, parent: u64, query: String) -> u64
pub fn get_or_create_query_result(&mut self, parent: u64, query: String) -> u64
Get or create inode for a query result.
Sourcepub fn is_virtual(&self, ino: u64) -> bool
pub fn is_virtual(&self, ino: u64) -> bool
Check if inode is virtual (part of .ragfs).
Sourcepub fn get_by_path(&self, path: &PathBuf) -> Option<u64>
pub fn get_by_path(&self, path: &PathBuf) -> Option<u64>
Get inode by path (for real files).
Sourcepub fn remove(&mut self, ino: u64)
pub fn remove(&mut self, ino: u64)
Remove an inode entry (for deleted files). Only removes real files and query results, not virtual inodes.
Sourcepub fn update_path(&mut self, ino: u64, new_path: PathBuf)
pub fn update_path(&mut self, ino: u64, new_path: PathBuf)
Update the path for an existing inode (for renames).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InodeTable
impl RefUnwindSafe for InodeTable
impl Send for InodeTable
impl Sync for InodeTable
impl Unpin 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