pub struct File { /* private fields */ }
Expand description
A single commit-graph file.
All operations on a File
are local to that graph file. Since a commit graph can span multiple
files, all interesting graph operations belong on Graph
.
Implementations§
Source§impl File
impl File
Access
Sourcepub fn base_graph_count(&self) -> u8
pub fn base_graph_count(&self) -> u8
The number of base graphs that this file depends on.
Sourcepub fn commit_at(&self, pos: Position) -> Commit<'_>
pub fn commit_at(&self, pos: Position) -> Commit<'_>
Returns the commit data for the commit located at the given lexicographical position.
pos
must range from 0 to self.num_commits()
.
§Panics
Panics if pos
is out of bounds.
Sourcepub fn object_hash(&self) -> Kind
pub fn object_hash(&self) -> Kind
The kind of hash used in this File.
Note that it is always conforming to the hash used in the owning repository.
Sourcepub fn id_at(&self, pos: Position) -> &oid
pub fn id_at(&self, pos: Position) -> &oid
Returns an object id at the given index in our list of (sorted) hashes.
The position ranges from 0 to self.num_commits()
Sourcepub fn iter_base_graph_ids(&self) -> impl Iterator<Item = &oid>
pub fn iter_base_graph_ids(&self) -> impl Iterator<Item = &oid>
Return an iterator over all object hashes stored in the base graph.
Sourcepub fn iter_commits(&self) -> impl Iterator<Item = Commit<'_>>
pub fn iter_commits(&self) -> impl Iterator<Item = Commit<'_>>
return an iterator over all commits in this file.
Sourcepub fn iter_ids(&self) -> impl Iterator<Item = &oid>
pub fn iter_ids(&self) -> impl Iterator<Item = &oid>
Return an iterator over all object hashes stored in this file.
Sourcepub fn lookup(&self, id: impl AsRef<oid>) -> Option<Position>
pub fn lookup(&self, id: impl AsRef<oid>) -> Option<Position>
Translate the given object hash to its position within this file, if present.
Sourcepub fn num_commits(&self) -> u32
pub fn num_commits(&self) -> u32
Returns the number of commits in this graph file.
The maximum valid file::Position
that can be used with this file is one less than
num_commits()
.
Source§impl File
impl File
Sourcepub fn at(path: impl AsRef<Path>) -> Result<File, Error>
pub fn at(path: impl AsRef<Path>) -> Result<File, Error>
Try to parse the commit graph file at path
.
Sourcepub fn new(data: Mmap, path: PathBuf) -> Result<File, Error>
pub fn new(data: Mmap, path: PathBuf) -> Result<File, Error>
A lower-level constructor which constructs a new instance directly from the mapping in data
,
assuming that it originated from path
.
Note that path
is only used for verification of the hash its basename contains, but otherwise
is not of importance.
Source§impl File
impl File
Verification
Sourcepub fn checksum(&self) -> &oid
pub fn checksum(&self) -> &oid
Returns the trailing checksum over the entire content of this file.
Sourcepub fn traverse<'a, E, Processor>(
&'a self,
processor: Processor,
) -> Result<Outcome, Error<E>>
pub fn traverse<'a, E, Processor>( &'a self, processor: Processor, ) -> Result<Outcome, Error<E>>
Traverse all commits stored in this file and call processor(commit) -> Result<(), Error>
on it.
If the processor
fails, the iteration will be stopped and the entire call results in the respective error.