comparison rust/hg-cpython/src/dirstate/dirstate_map.rs @ 49124:d9a66d62c604

rust-dirstatemap: use `&HgPath` instead of `HgPathBuf` in `copy_map_insert` No reason to require an owned path here. Differential Revision: https://phab.mercurial-scm.org/D12522
author Raphaël Gomès <rgomes@octobus.net>
date Wed, 30 Mar 2022 11:39:53 +0200
parents 861dd252e2dc
children a1fce5003ff4
comparison
equal deleted inserted replaced
49123:afe60def963d 49124:d9a66d62c604
21 dirstate::copymap::{CopyMap, CopyMapItemsIterator, CopyMapKeysIterator}, 21 dirstate::copymap::{CopyMap, CopyMapItemsIterator, CopyMapKeysIterator},
22 dirstate::item::DirstateItem, 22 dirstate::item::DirstateItem,
23 pybytes_deref::PyBytesDeref, 23 pybytes_deref::PyBytesDeref,
24 }; 24 };
25 use hg::{ 25 use hg::{
26 dirstate::StateMapIter, 26 dirstate::StateMapIter, dirstate_tree::on_disk::DirstateV2ParseError,
27 dirstate_tree::on_disk::DirstateV2ParseError, 27 dirstate_tree::owning::OwningDirstateMap, revlog::Node,
28 dirstate_tree::owning::OwningDirstateMap, 28 utils::files::normalize_case, utils::hg_path::HgPath, DirstateEntry,
29 revlog::Node, 29 DirstateError, DirstateParents, EntryState,
30 utils::files::normalize_case,
31 utils::hg_path::{HgPath, HgPathBuf},
32 DirstateEntry, DirstateError, DirstateParents, EntryState,
33 }; 30 };
34 31
35 // TODO 32 // TODO
36 // This object needs to share references to multiple members of its Rust 33 // This object needs to share references to multiple members of its Rust
37 // inner struct, namely `copy_map`, `dirs` and `all_dirs`. 34 // inner struct, namely `copy_map`, `dirs` and `all_dirs`.
409 let key = key.extract::<PyBytes>(py)?; 406 let key = key.extract::<PyBytes>(py)?;
410 let value = value.extract::<PyBytes>(py)?; 407 let value = value.extract::<PyBytes>(py)?;
411 self.inner(py) 408 self.inner(py)
412 .borrow_mut() 409 .borrow_mut()
413 .copy_map_insert( 410 .copy_map_insert(
414 HgPathBuf::from_bytes(key.data(py)), 411 HgPath::new(key.data(py)),
415 HgPathBuf::from_bytes(value.data(py)), 412 HgPath::new(value.data(py)),
416 ) 413 )
417 .map_err(|e| v2_error(py, e))?; 414 .map_err(|e| v2_error(py, e))?;
418 Ok(py.None()) 415 Ok(py.None())
419 } 416 }
420 def copymappop( 417 def copymappop(