History

feat: add `Index::entries_mut_and_pathbacking()`.

With it one can read entries and read paths at the same time.

Sebastian Thiel committed 3 years ago

Commit 9af47c31 parent 691758a2 files · +8 −3Browse files

Unified · Split

2 files
  1. gix-index/src/access/mod.rs +6 −0
  2. gix-index/src/lib.rs +2 −3
gix-index/src/access/mod.rs+6−0
@@ -132,6 +132,12 @@ impl State { · 131 unmodified lines
132132 pub fn entries_mut(&mut self) -> &mut [Entry] {
133133 &mut self.entries
134134 }
135+
136+ /// Return a writable slice to entries and read-access to their path storage at the same time.
137+ pub fn entries_mut_and_pathbacking(&mut self) -> (&mut [Entry], &PathStorage) {
138+ (&mut self.entries, &self.path_backing)
139+ }
140+
135141 /// Return mutable entries along with their paths in an iterator.
136142 pub fn entries_mut_with_paths(&mut self) -> impl Iterator<Item = (&mut Entry, &BStr)> {
137143 let paths = &self.path_backing;
gix-index/src/lib.rs+2−3
@@ -93,12 +93,11 @@ pub struct State { · 92 unmodified lines
9393 /// same timestamp as this as potentially changed, checking more thoroughly if a change actually happened.
9494 timestamp: FileTime,
9595 version: Version,
96− ///
97− pub entries: Vec<Entry>,
96+ entries: Vec<Entry>,
9897 /// A memory area keeping all index paths, in full length, independently of the index version.
9998 ///
10099 /// Ranges into this storage are referred to by parts of `entries`.
101− pub path_backing: PathStorage,
100+ path_backing: PathStorage,
102101 /// True if one entry in the index has a special marker mode
103102 is_sparse: bool,
104103