Mercurial > hg
diff rust/hg-cpython/src/dirstate/dirstate_map.rs @ 47332:4ee9f419c52e
rust: Return owned instead of borrowed DirstateEntry in DirstateMap APIs
This will enable the tree-based DirstateMap to not always have an actual
DirstateEntry in memory for all nodes, but construct it on demand.
Differential Revision: https://phab.mercurial-scm.org/D10746
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Wed, 19 May 2021 13:15:00 +0200 |
parents | 1766130fe9ba |
children | ed1583a845d2 |
line wrap: on
line diff
--- a/rust/hg-cpython/src/dirstate/dirstate_map.rs Wed May 19 13:15:00 2021 +0200 +++ b/rust/hg-cpython/src/dirstate/dirstate_map.rs Wed May 19 13:15:00 2021 +0200 @@ -92,7 +92,7 @@ let key = key.extract::<PyBytes>(py)?; match self.inner(py).borrow().get(HgPath::new(key.data(py))) { Some(entry) => { - Ok(Some(make_dirstate_tuple(py, entry)?)) + Ok(Some(make_dirstate_tuple(py, &entry)?)) }, None => Ok(default) } @@ -348,7 +348,7 @@ let key = HgPath::new(key.data(py)); match self.inner(py).borrow().get(key) { Some(entry) => { - Ok(make_dirstate_tuple(py, entry)?) + Ok(make_dirstate_tuple(py, &entry)?) }, None => Err(PyErr::new::<exc::KeyError, _>( py, @@ -525,13 +525,13 @@ } fn translate_key( py: Python, - res: (&HgPath, &DirstateEntry), + res: (&HgPath, DirstateEntry), ) -> PyResult<Option<PyBytes>> { Ok(Some(PyBytes::new(py, res.0.as_bytes()))) } fn translate_key_value( py: Python, - res: (&HgPath, &DirstateEntry), + res: (&HgPath, DirstateEntry), ) -> PyResult<Option<(PyBytes, PyObject)>> { let (f, entry) = res; Ok(Some((