rust/hg-cpython/src/dirstate/dirs_multiset.rs
changeset 43863 bc7d8f45c3b6
parent 43788 1fe2e574616e
child 44203 2a24ead003f0
equal deleted inserted replaced
43862:5606e1cb4685 43863:bc7d8f45c3b6
    45             );
    45             );
    46         }
    46         }
    47         let inner = if let Ok(map) = map.cast_as::<PyDict>(py) {
    47         let inner = if let Ok(map) = map.cast_as::<PyDict>(py) {
    48             let dirstate = extract_dirstate(py, &map)?;
    48             let dirstate = extract_dirstate(py, &map)?;
    49             DirsMultiset::from_dirstate(&dirstate, skip_state)
    49             DirsMultiset::from_dirstate(&dirstate, skip_state)
       
    50                 .map_err(|e| {
       
    51                     PyErr::new::<exc::ValueError, _>(py, e.to_string())
       
    52                 })?
    50         } else {
    53         } else {
    51             let map: Result<Vec<HgPathBuf>, PyErr> = map
    54             let map: Result<Vec<HgPathBuf>, PyErr> = map
    52                 .iter(py)?
    55                 .iter(py)?
    53                 .map(|o| {
    56                 .map(|o| {
    54                     Ok(HgPathBuf::from_bytes(
    57                     Ok(HgPathBuf::from_bytes(
    55                         o?.extract::<PyBytes>(py)?.data(py),
    58                         o?.extract::<PyBytes>(py)?.data(py),
    56                     ))
    59                     ))
    57                 })
    60                 })
    58                 .collect();
    61                 .collect();
    59             DirsMultiset::from_manifest(&map?)
    62             DirsMultiset::from_manifest(&map?)
       
    63                 .map_err(|e| {
       
    64                     PyErr::new::<exc::ValueError, _>(py, e.to_string())
       
    65                 })?
    60         };
    66         };
    61 
    67 
    62         Self::create_instance(
    68         Self::create_instance(
    63             py,
    69             py,
    64             PySharedRefCell::new(inner),
    70             PySharedRefCell::new(inner),