Mercurial > public > mercurial-scm > hg-stable
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))