comparison rust/hg-cpython/src/dirstate/dirs_multiset.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 776b97179c06
children ed1583a845d2
comparison
equal deleted inserted replaced
47331:0252600fd1cf 47332:4ee9f419c52e
43 })?, 43 })?,
44 ); 44 );
45 } 45 }
46 let inner = if let Ok(map) = map.cast_as::<PyDict>(py) { 46 let inner = if let Ok(map) = map.cast_as::<PyDict>(py) {
47 let dirstate = extract_dirstate(py, &map)?; 47 let dirstate = extract_dirstate(py, &map)?;
48 DirsMultiset::from_dirstate(&dirstate, skip_state) 48 let dirstate = dirstate.iter().map(|(k, v)| (k, *v));
49 DirsMultiset::from_dirstate(dirstate, skip_state)
49 .map_err(|e: DirstateMapError| { 50 .map_err(|e: DirstateMapError| {
50 PyErr::new::<exc::ValueError, _>(py, e.to_string()) 51 PyErr::new::<exc::ValueError, _>(py, e.to_string())
51 })? 52 })?
52 } else { 53 } else {
53 let map: Result<Vec<HgPathBuf>, PyErr> = map 54 let map: Result<Vec<HgPathBuf>, PyErr> = map