pub struct File { /* private fields */ }Expand description
An index file whose state was read from a file on disk.
Implementations
sourceimpl File
impl File
Consumption
sourcepub fn into_state(self) -> State
pub fn into_state(self) -> State
Take the state and discard the rest.
sourcepub fn into_parts(self) -> (State, PathBuf)
pub fn into_parts(self) -> (State, PathBuf)
Take all non-copy parts of the index.
sourceimpl File
impl File
Access
sourcepub fn path(&self) -> &Path
pub fn path(&self) -> &Path
The path from which the index was read or to which it is supposed to be written when used with File::from_state().
sourceimpl File
impl File
Initialization
sourcepub fn at(
path: impl Into<PathBuf>,
object_hash: Kind,
options: Options
) -> Result<Self, Error>
pub fn at(
path: impl Into<PathBuf>,
object_hash: Kind,
options: Options
) -> Result<Self, Error>
Open an index file at path with options, assuming object_hash is used throughout the file.
sourcepub fn from_state(state: State, path: impl Into<PathBuf>) -> Self
pub fn from_state(state: State, path: impl Into<PathBuf>) -> Self
Consume state and pretend it was read from path, setting our checksum to null.
File instances created like that should be written to disk to set the correct checksum via [File::write()].
sourceimpl File
impl File
sourcepub fn verify_integrity(&self) -> Result<(), Error>
pub fn verify_integrity(&self) -> Result<(), Error>
Verify the integrity of the index to assure its consistency.
Methods from Deref<Target = State>
sourcepub fn version(&self) -> Version
pub fn version(&self) -> Version
Return the version used to store this state’s information on disk.
sourcepub fn object_hash(&self) -> Kind
pub fn object_hash(&self) -> Kind
Return the kind of hashes used in this instance.
sourcepub fn path_backing(&self) -> &PathStorage
pub fn path_backing(&self) -> &PathStorage
Return our path backing, the place which keeps all paths one after another, with entries storing only the range to access them.
sourcepub fn take_path_backing(&mut self) -> PathStorage
pub fn take_path_backing(&mut self) -> PathStorage
Sometimes it’s needed to remove the path backing to allow certain mutation to happen in the state while supporting reading the entry’s path.
sourcepub fn return_path_backing(&mut self, backing: PathStorage)
pub fn return_path_backing(&mut self, backing: PathStorage)
After usage of the storage obtained by take_path_backing(), return it here.
Note that it must not be empty.
sourcepub fn entries_with_paths_by_filter_map<'a, T>(
&'a self,
filter_map: impl FnMut(&'a BStr, &Entry) -> Option<T> + 'a
) -> impl Iterator<Item = (&'a BStr, T)> + 'a
pub fn entries_with_paths_by_filter_map<'a, T>(
&'a self,
filter_map: impl FnMut(&'a BStr, &Entry) -> Option<T> + 'a
) -> impl Iterator<Item = (&'a BStr, T)> + 'a
Runs filter_map on all entries, returning an iterator over all paths along with the result of filter_map.
sourcepub fn entries_mut(&mut self) -> &mut [Entry]
pub fn entries_mut(&mut self) -> &mut [Entry]
Return mutable entries in a slice.
sourcepub fn entries_mut_with_paths(
&mut self
) -> impl Iterator<Item = (&mut Entry, &BStr)>
pub fn entries_mut_with_paths(
&mut self
) -> impl Iterator<Item = (&mut Entry, &BStr)>
Return mutable entries along with their paths in an iterator.
sourcepub fn entries_mut_with_paths_in<'state, 'backing>(
&'state mut self,
backing: &'backing PathStorage
) -> impl Iterator<Item = (&'state mut Entry, &'backing BStr)>
pub fn entries_mut_with_paths_in<'state, 'backing>(
&'state mut self,
backing: &'backing PathStorage
) -> impl Iterator<Item = (&'state mut Entry, &'backing BStr)>
Return mutable entries along with their path, as obtained from backing.
sourcepub fn entry_index_by_path_and_stage(
&self,
path: &BStr,
stage: Stage
) -> Option<usize>
pub fn entry_index_by_path_and_stage(
&self,
path: &BStr,
stage: Stage
) -> Option<usize>
Find the entry index in entries() matching the given repository-relative
path and stage, or None.
Use the index for accessing multiple stages if they exists, but at least the single matching entry.
sourcepub fn entry_by_path_and_stage(&self, path: &BStr, stage: Stage) -> Option<&Entry>
pub fn entry_by_path_and_stage(&self, path: &BStr, stage: Stage) -> Option<&Entry>
Like entry_index_by_path_and_stage(),
but returns the entry instead of the index.
sourcepub fn entry(&self, idx: usize) -> &Entry
pub fn entry(&self, idx: usize) -> &Entry
Return the entry at idx or panic if the index is out of bounds.
The idx is typically returned by entry_by_path_and_stage().
sourcepub fn resolve_undo(&self) -> Option<&Vec<ResolvePath>>
pub fn resolve_undo(&self) -> Option<&Vec<ResolvePath>>
Obtain the resolve-undo extension.
sourcepub fn untracked(&self) -> Option<&UntrackedCache>
pub fn untracked(&self) -> Option<&UntrackedCache>
Obtain the untracked extension.
sourcepub fn fs_monitor(&self) -> Option<&FsMonitor>
pub fn fs_monitor(&self) -> Option<&FsMonitor>
Obtain the fsmonitor extension.
sourcepub fn verify_entries(&self) -> Result<(), Error>
pub fn verify_entries(&self) -> Result<(), Error>
Assure our entries are consistent.