Mercurial > hg
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 |