# HG changeset patch # User Pierre-Yves David # Date 1625420523 -7200 # Node ID f6f25ab6bfc8c85d52ae28cc279ab9c60c023572 # Parent 28632eb3ca3e2183a73016a30c90ed5f50ea6c66 rust-dirstatemap: expand the wrapping code a bit This is easier to read. Differential Revision: https://phab.mercurial-scm.org/D10960 diff -r 28632eb3ca3e -r f6f25ab6bfc8 rust/hg-cpython/src/dirstate/dirstate_map.rs --- a/rust/hg-cpython/src/dirstate/dirstate_map.rs Sun Jul 04 01:14:15 2021 +0200 +++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs Sun Jul 04 19:42:03 2021 +0200 @@ -112,23 +112,31 @@ size: PyObject, mtime: PyObject ) -> PyResult { + let f = f.extract::(py)?; + let filename = HgPath::new(f.data(py)); + let oldstate = oldstate.extract::(py)?.data(py)[0] + .try_into() + .map_err(|e: HgError| { + PyErr::new::(py, e.to_string()) + })?; + let state = state.extract::(py)?.data(py)[0] + .try_into() + .map_err(|e: HgError| { + PyErr::new::(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::(py)?.data(py)), - oldstate.extract::(py)?.data(py)[0] - .try_into() - .map_err(|e: HgError| { - PyErr::new::(py, e.to_string()) - })?, - DirstateEntry { - state: state.extract::(py)?.data(py)[0] - .try_into() - .map_err(|e: HgError| { - PyErr::new::(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::(py, e.to_string())) })