diff rust/hg-cpython/src/parsers.rs @ 45613:496537c9c1b4

rust: start plugging the dirstate tree behind a feature gate The previous patch added the `dirstate-tree` feature gate to enable the two dirstate implementations to co-habit while the tree-based one gets better. This patch copies over the code that differs, be it because the algorithm changed or because the borrowing rules are different. Indeed, `DirstateTree` is not observationally equivalent to the std `HashMap` in the APIs we use: it does not have the `Entry` API (yet?) and its iterator returns owned values instead of references. This last point is because the implementation needs to be changed to a more clever and efficient solution. Differential Revision: https://phab.mercurial-scm.org/D9133
author Rapha?l Gom?s <rgomes@octobus.net>
date Wed, 30 Sep 2020 18:10:29 +0200
parents 27424779c5b8
children 68a15b5a7e58
line wrap: on
line diff
--- a/rust/hg-cpython/src/parsers.rs	Wed Sep 30 18:10:53 2020 +0200
+++ b/rust/hg-cpython/src/parsers.rs	Wed Sep 30 18:10:29 2020 +0200
@@ -119,11 +119,11 @@
         Duration::from_secs(now.as_object().extract::<u64>(py)?),
     ) {
         Ok(packed) => {
-            for (filename, entry) in &dirstate_map {
+            for (filename, entry) in dirstate_map.iter() {
                 dmap.set_item(
                     py,
                     PyBytes::new(py, filename.as_bytes()),
-                    make_dirstate_tuple(py, entry)?,
+                    make_dirstate_tuple(py, &entry)?,
                 )?;
             }
             Ok(PyBytes::new(py, &packed))