diff rust/hg-cpython/src/revlog.rs @ 44513:887d0f921b34

rust-index: moved constructor in separate impl block with the upcoming addition of the nodemap logic, it's going to become more complicated. Being in the separate impl block has the advantage to be subject to rustfmt, whereas code inside macro calls isn't. Differential Revision: https://phab.mercurial-scm.org/D8153
author Georges Racinet <georges.racinet@octobus.net>
date Mon, 13 Jan 2020 19:56:16 +0100
parents 451d22174b5f
children 26dd35ac59b8
line wrap: on
line diff
--- a/rust/hg-cpython/src/revlog.rs	Mon Jan 13 19:31:33 2020 +0100
+++ b/rust/hg-cpython/src/revlog.rs	Mon Jan 13 19:56:16 2020 +0100
@@ -28,8 +28,7 @@
     data cindex: RefCell<cindex::Index>;
 
     def __new__(_cls, cindex: PyObject) -> PyResult<MixedIndex> {
-        Self::create_instance(py, RefCell::new(
-            cindex::Index::new(py, cindex)?))
+        Self::new(py, cindex)
     }
 
     /// Compatibility layer used for Python consumers needing access to the C index
@@ -199,6 +198,13 @@
 });
 
 impl MixedIndex {
+    fn new(py: Python, cindex: PyObject) -> PyResult<MixedIndex> {
+        Self::create_instance(
+            py,
+            RefCell::new(cindex::Index::new(py, cindex)?),
+        )
+    }
+
     /// forward a method call to the underlying C index
     fn call_cindex(
         &self,