[PATCH 2 of 7] rust-dirstate: provide CopyMapIter and StateMapIter types

Yuya Nishihara yuya at tcha.org
Sun Sep 8 06:05:42 EDT 2019


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1567911626 -32400
#      Sun Sep 08 12:00:26 2019 +0900
# Node ID 06763fe8317d686dba58464ec4ed74f8325ae825
# Parent  2c5b7c68ea1cc5141d12bd26dd6effe18fe30f44
rust-dirstate: provide CopyMapIter and StateMapIter types

They will be used in the declaration of Python iterator types.

diff --git a/rust/hg-core/src/dirstate.rs b/rust/hg-core/src/dirstate.rs
--- a/rust/hg-core/src/dirstate.rs
+++ b/rust/hg-core/src/dirstate.rs
@@ -6,6 +6,7 @@
 // GNU General Public License version 2 or any later version.
 
 use crate::DirstateParseError;
+use std::collections::hash_map;
 use std::collections::HashMap;
 use std::convert::TryFrom;
 
@@ -31,7 +32,9 @@ pub struct DirstateEntry {
 }
 
 pub type StateMap = HashMap<Vec<u8>, DirstateEntry>;
+pub type StateMapIter<'a> = hash_map::Iter<'a, Vec<u8>, DirstateEntry>;
 pub type CopyMap = HashMap<Vec<u8>, Vec<u8>>;
+pub type CopyMapIter<'a> = hash_map::Iter<'a, Vec<u8>, Vec<u8>>;
 
 #[derive(Copy, Clone, Debug, Eq, PartialEq)]
 pub enum EntryState {
diff --git a/rust/hg-core/src/lib.rs b/rust/hg-core/src/lib.rs
--- a/rust/hg-core/src/lib.rs
+++ b/rust/hg-core/src/lib.rs
@@ -12,7 +12,8 @@ pub use dirstate::{
     dirs_multiset::{DirsMultiset, DirsMultisetIter},
     dirstate_map::DirstateMap,
     parsers::{pack_dirstate, parse_dirstate, PARENT_SIZE},
-    CopyMap, DirstateEntry, DirstateParents, EntryState, StateMap,
+    CopyMap, CopyMapIter, DirstateEntry, DirstateParents, EntryState,
+    StateMap, StateMapIter,
 };
 mod filepatterns;
 pub mod utils;


More information about the Mercurial-devel mailing list