Skip to content
Snippets Groups Projects
Commit f5f0269e authored by Mitchell Kember's avatar Mitchell Kember
Browse files

hg-core: add methods that take checked revisions

This continues the work done in a3fa37bdb7ec,
turning more methods into checked/unchecked pairs of methods.
parent 491cc207
No related merge requests found
......@@ -53,7 +53,7 @@
}
/// Same as [`Self::entry_for_unchecked_rev`] for a checked revision
fn entry(&self, rev: Revision) -> Result<ChangelogEntry, RevlogError> {
pub fn entry(&self, rev: Revision) -> Result<ChangelogEntry, RevlogError> {
let revlog_entry = self.revlog.get_entry(rev)?;
Ok(ChangelogEntry { revlog_entry })
}
......@@ -71,7 +71,11 @@
self.entry_for_unchecked_rev(rev)?.data()
}
pub fn node_from_rev(&self, rev: Revision) -> &Node {
self.revlog.node_from_rev(rev)
}
pub fn node_from_unchecked_rev(
&self,
rev: UncheckedRevision,
) -> Option<&Node> {
......@@ -74,8 +78,8 @@
pub fn node_from_unchecked_rev(
&self,
rev: UncheckedRevision,
) -> Option<&Node> {
self.revlog.node_from_rev(rev)
self.revlog.node_from_unchecked_rev(rev)
}
pub fn rev_from_node(
......
......@@ -343,7 +343,8 @@
/// Returns the node ID for the given revision number, if it exists in this
/// revlog
pub fn node_from_rev(&self, rev: UncheckedRevision) -> Option<&Node> {
if rev == NULL_REVISION.into() {
return Some(&NULL_NODE);
pub fn node_from_rev(&self, rev: Revision) -> &Node {
match self.index().get_entry(rev) {
None => &NULL_NODE,
Some(entry) => entry.hash(),
}
......@@ -349,6 +350,12 @@
}
let rev = self.index().check_revision(rev)?;
Some(self.index().get_entry(rev)?.hash())
}
/// Like [`Self::node_from_rev`] but checks `rev` first.
pub fn node_from_unchecked_rev(
&self,
rev: UncheckedRevision,
) -> Option<&Node> {
Some(self.node_from_rev(self.index().check_revision(rev)?))
}
/// Return the revision number for the given node ID, if it exists in this
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment