Mercurial > public > mercurial-scm > hg
diff rust/hg-cpython/src/dirstate/dirstate_map.rs @ 48022:f2a9db29cb2d
rust: Make the fields of DirstateEntry private
This is a first step toward making its internal structure equivalent to
Python?s DirstateItem.
Differential Revision: https://phab.mercurial-scm.org/D11461
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Fri, 17 Sep 2021 13:33:45 +0200 |
parents | 1194394510ba |
children | 357307feaf61 |
line wrap: on
line diff
--- a/rust/hg-cpython/src/dirstate/dirstate_map.rs Mon Sep 20 13:16:36 2021 +0200 +++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs Fri Sep 17 13:33:45 2021 +0200 @@ -135,12 +135,12 @@ let filename = HgPath::new(f.data(py)); let state = item.getattr(py, "state")?.extract::<PyBytes>(py)?; let state = state.data(py)[0]; - let entry = DirstateEntry { - state: state.try_into().expect("state is always valid"), - mtime: item.getattr(py, "mtime")?.extract(py)?, - size: item.getattr(py, "size")?.extract(py)?, - mode: item.getattr(py, "mode")?.extract(py)?, - }; + let entry = DirstateEntry::from_v1_data( + state.try_into().expect("state is always valid"), + item.getattr(py, "mode")?.extract(py)?, + item.getattr(py, "size")?.extract(py)?, + item.getattr(py, "mtime")?.extract(py)?, + ); self.inner(py).borrow_mut().set_v1(filename, entry); Ok(py.None()) } @@ -176,13 +176,7 @@ } else { mtime.extract(py)? }; - let entry = DirstateEntry { - // XXX Arbitrary default value since the value is determined later - state: EntryState::Normal, - mode: mode, - size: size, - mtime: mtime, - }; + let entry = DirstateEntry::new_for_add_file(mode, size, mtime); let added = added.extract::<PyBool>(py)?.is_true(); let merged = merged.extract::<PyBool>(py)?.is_true(); let from_p2 = from_p2.extract::<PyBool>(py)?.is_true(); @@ -422,7 +416,7 @@ let dict = PyDict::new(py); for item in self.inner(py).borrow_mut().iter() { let (path, entry) = item.map_err(|e| v2_error(py, e))?; - if entry.state != EntryState::Removed { + if entry.state() != EntryState::Removed { let key = normalize_case(path); let value = path; dict.set_item(