D10960: rust-dirstatemap: expand the wrapping code a bit
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Sun Jul 4 21:53:21 UTC 2021
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
This is easier to read.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D10960
AFFECTED FILES
rust/hg-cpython/src/dirstate/dirstate_map.rs
CHANGE DETAILS
diff --git a/rust/hg-cpython/src/dirstate/dirstate_map.rs b/rust/hg-cpython/src/dirstate/dirstate_map.rs
--- a/rust/hg-cpython/src/dirstate/dirstate_map.rs
+++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs
@@ -112,23 +112,31 @@
size: PyObject,
mtime: PyObject
) -> PyResult<PyObject> {
+ let f = f.extract::<PyBytes>(py)?;
+ let filename = HgPath::new(f.data(py));
+ let oldstate = oldstate.extract::<PyBytes>(py)?.data(py)[0]
+ .try_into()
+ .map_err(|e: HgError| {
+ PyErr::new::<exc::ValueError, _>(py, e.to_string())
+ })?;
+ let state = state.extract::<PyBytes>(py)?.data(py)[0]
+ .try_into()
+ .map_err(|e: HgError| {
+ PyErr::new::<exc::ValueError, _>(py, e.to_string())
+ })?;
+ let mode = mode.extract(py)?;
+ let size = size.extract(py)?;
+ let mtime = mtime.extract(py)?;
+ let entry = DirstateEntry {
+ state: state,
+ mode: mode,
+ size: size,
+ mtime: mtime,
+ };
self.inner(py).borrow_mut().add_file(
- HgPath::new(f.extract::<PyBytes>(py)?.data(py)),
- oldstate.extract::<PyBytes>(py)?.data(py)[0]
- .try_into()
- .map_err(|e: HgError| {
- PyErr::new::<exc::ValueError, _>(py, e.to_string())
- })?,
- DirstateEntry {
- state: state.extract::<PyBytes>(py)?.data(py)[0]
- .try_into()
- .map_err(|e: HgError| {
- PyErr::new::<exc::ValueError, _>(py, e.to_string())
- })?,
- mode: mode.extract(py)?,
- size: size.extract(py)?,
- mtime: mtime.extract(py)?,
- },
+ filename,
+ oldstate,
+ entry,
).and(Ok(py.None())).or_else(|e: DirstateError| {
Err(PyErr::new::<exc::ValueError, _>(py, e.to_string()))
})
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list