rust-index: moved constructor in separate impl block
authorGeorges Racinet <georges.racinet@octobus.net>
Mon, 13 Jan 2020 19:56:16 +0100
changeset 44503 887d0f921b34
parent 44502 166349510398
child 44504 cefd130c98be
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
rust/hg-cpython/src/revlog.rs
--- 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,