From 380bd861be0c26dc249e3888129c476cfa3a5680 Mon Sep 17 00:00:00 2001 From: Siddharth Agarwal Date: Tue, 12 Sep 2017 11:46:57 -0700 Subject: [PATCH] for RevlogManifest, ensure public API always has repo set Summary: Remove the unused `empty()` constructor, and make the `parse` APIs private. Reviewed By: lukaspiatkowski Differential Revision: D5796734 fbshipit-source-id: 84e7b146ca89334fbdfda917d5d8eebf04a3e474 --- mercurial/src/manifest/revlog.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/mercurial/src/manifest/revlog.rs b/mercurial/src/manifest/revlog.rs index bfb029a822..9475d52e65 100644 --- a/mercurial/src/manifest/revlog.rs +++ b/mercurial/src/manifest/revlog.rs @@ -28,6 +28,7 @@ pub struct Details { /// Revlog Manifest v1 #[derive(Debug, PartialEq)] pub struct RevlogManifest { + // This is None for testing only -- the public API ensures `repo` always exists. repo: Option, files: BTreeMap, } @@ -82,13 +83,6 @@ pub fn parse_with_prefix(data: &[u8], prefix: &Path) -> Result RevlogManifest { - RevlogManifest { - repo: None, - files: BTreeMap::new(), - } - } - pub fn new(repo: RevlogRepo, node: BlobNode) -> Result { node.as_blob() .as_slice() @@ -96,15 +90,17 @@ impl RevlogManifest { .and_then(|blob| Self::parse(Some(repo), blob)) } - pub fn parse(repo: Option, data: &[u8]) -> Result { + fn parse(repo: Option, data: &[u8]) -> Result { + // This is private because it allows one to create a RevlogManifest with repo set to None. parse(data).map(|files| RevlogManifest { repo, files }) } - pub fn parse_with_prefix( + fn parse_with_prefix( repo: Option, data: &[u8], prefix: &Path, ) -> Result { + // This is private because it allows one to create a RevlogManifest with repo set to None. parse_with_prefix(data, prefix).map(|files| RevlogManifest { repo, files }) }