diff rust/hg-core/src/dirstate/mod.rs @ 42536:2dcee6497b0b

rust-dirstate: add "dirs" Rust implementation Following the work done in d1786c1d34fa and working towards the goal of a complete Rust implementation of the dirstate, this rewrites the `dirs` class. There is already a C implementation, which relies heavily on CPython hacks and protocol violations for performance, so I don't expect this to perform as well for now, as this is very straight-forward code. The immediate benefits are new high-level documentation and some unit tests. Differential Revision: https://phab.mercurial-scm.org/D6393
author Rapha?l Gom?s <rgomes@octobus.net>
date Thu, 16 May 2019 18:03:06 +0200
parents d3b5cbe311d9
children
line wrap: on
line diff
--- a/rust/hg-core/src/dirstate/mod.rs	Fri Jun 21 00:26:07 2019 +0530
+++ b/rust/hg-core/src/dirstate/mod.rs	Thu May 16 18:03:06 2019 +0200
@@ -1,3 +1,4 @@
+pub mod dirs_multiset;
 pub mod parsers;
 
 #[derive(Debug, PartialEq, Copy, Clone)]
@@ -26,3 +27,10 @@
 }
 
 pub type CopyVec<'a> = Vec<CopyVecEntry<'a>>;
+
+/// The Python implementation passes either a mapping (dirstate) or a flat
+/// iterable (manifest)
+pub enum DirsIterable {
+    Dirstate(DirstateVec),
+    Manifest(Vec<Vec<u8>>),
+}