changeset 52397:42bd36bbed67

hg-core: refactor rev parsing in operations::status_rev_rev This is in preparation for a follow-up changeset that will implement rhg status --change.
author Mitchell Kember <mkember@janestreet.com>
date Tue, 03 Dec 2024 09:37:34 -0500
parents b0b6c28b340b
children bde718849153
files rust/rhg/src/commands/status.rs
diffstat 1 files changed, 9 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/rust/rhg/src/commands/status.rs	Tue Dec 03 09:31:24 2024 -0500
+++ b/rust/rhg/src/commands/status.rs	Tue Dec 03 09:37:34 2024 -0500
@@ -162,22 +162,17 @@
     repo: &Repo,
     revs: Option<Vec<String>>,
 ) -> Result<Option<(Revision, Revision)>, CommandError> {
-    let revs = match revs {
-        None => return Ok(None),
-        Some(revs) => revs,
+    let Some(revs) = revs else {
+        return Ok(None);
     };
-    if revs.is_empty() {
-        return Ok(None);
+    match revs.as_slice() {
+        [] => Ok(None),
+        [rev1, rev2] => Ok(Some((
+            hg::revset::resolve_single(rev1, repo)?,
+            hg::revset::resolve_single(rev2, repo)?,
+        ))),
+        _ => Err(CommandError::unsupported("expected 0 or 2 --rev flags")),
     }
-    if revs.len() != 2 {
-        return Err(CommandError::unsupported("expected 0 or 2 --rev flags"));
-    }
-
-    let rev1 = &revs[0];
-    let rev2 = &revs[1];
-    let rev1 = hg::revset::resolve_single(rev1, repo)?;
-    let rev2 = hg::revset::resolve_single(rev2, repo)?;
-    Ok(Some((rev1, rev2)))
 }
 
 /// Pure data type allowing the caller to specify file states to display