Patchwork D10960: rust-dirstatemap: expand the wrapping code a bit

login
register
mail settings
Submitter phabricator
Date July 4, 2021, 9:53 p.m.
Message ID <differential-rev-PHID-DREV-ybykoyk7mv4sicmiu66l-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/49273/
State Superseded
Headers show

Comments

phabricator - July 4, 2021, 9:53 p.m.
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  This is easier to read.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D10960

AFFECTED FILES
  rust/hg-cpython/src/dirstate/dirstate_map.rs

CHANGE DETAILS




To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/rust/hg-cpython/src/dirstate/dirstate_map.rs b/rust/hg-cpython/src/dirstate/dirstate_map.rs
--- a/rust/hg-cpython/src/dirstate/dirstate_map.rs
+++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs
@@ -112,23 +112,31 @@ 
         size: PyObject,
         mtime: PyObject
     ) -> PyResult<PyObject> {
+        let f = f.extract::<PyBytes>(py)?;
+        let filename = HgPath::new(f.data(py));
+        let oldstate = oldstate.extract::<PyBytes>(py)?.data(py)[0]
+            .try_into()
+            .map_err(|e: HgError| {
+                PyErr::new::<exc::ValueError, _>(py, e.to_string())
+            })?;
+        let state = state.extract::<PyBytes>(py)?.data(py)[0]
+            .try_into()
+            .map_err(|e: HgError| {
+                PyErr::new::<exc::ValueError, _>(py, e.to_string())
+            })?;
+        let mode = mode.extract(py)?;
+        let size = size.extract(py)?;
+        let mtime = mtime.extract(py)?;
+        let entry = DirstateEntry {
+            state: state,
+            mode: mode,
+            size: size,
+            mtime: mtime,
+        };
         self.inner(py).borrow_mut().add_file(
-            HgPath::new(f.extract::<PyBytes>(py)?.data(py)),
-            oldstate.extract::<PyBytes>(py)?.data(py)[0]
-                .try_into()
-                .map_err(|e: HgError| {
-                    PyErr::new::<exc::ValueError, _>(py, e.to_string())
-                })?,
-            DirstateEntry {
-                state: state.extract::<PyBytes>(py)?.data(py)[0]
-                    .try_into()
-                    .map_err(|e: HgError| {
-                        PyErr::new::<exc::ValueError, _>(py, e.to_string())
-                    })?,
-                mode: mode.extract(py)?,
-                size: size.extract(py)?,
-                mtime: mtime.extract(py)?,
-            },
+            filename,
+            oldstate,
+            entry,
         ).and(Ok(py.None())).or_else(|e: DirstateError| {
             Err(PyErr::new::<exc::ValueError, _>(py, e.to_string()))
         })