rust/hg-cpython/src/revlog.rs
changeset 51217 f95f70cf2ee2
parent 51216 f6403bcd9f96
child 51218 4e6620b7fbbb
equal deleted inserted replaced
51216:f6403bcd9f96 51217:f95f70cf2ee2
    72     /// in case of ambiguity, same as C version does
    72     /// in case of ambiguity, same as C version does
    73     def get_rev(&self, node: PyBytes) -> PyResult<Option<PyRevision>> {
    73     def get_rev(&self, node: PyBytes) -> PyResult<Option<PyRevision>> {
    74         let opt = self.get_nodetree(py)?.borrow();
    74         let opt = self.get_nodetree(py)?.borrow();
    75         let nt = opt.as_ref().unwrap();
    75         let nt = opt.as_ref().unwrap();
    76         let idx = &*self.cindex(py).borrow();
    76         let idx = &*self.cindex(py).borrow();
       
    77         let ridx = &*self.index(py).borrow();
    77         let node = node_from_py_bytes(py, &node)?;
    78         let node = node_from_py_bytes(py, &node)?;
    78         let res = nt.find_bin(idx, node.into());
    79         let rust_rev =
    79         Ok(res.map_err(|e| nodemap_error(py, e))?.map(Into::into))
    80             nt.find_bin(ridx, node.into()).map_err(|e| nodemap_error(py, e))?;
       
    81         let c_rev =
       
    82             nt.find_bin(idx, node.into()).map_err(|e| nodemap_error(py, e))?;
       
    83         assert_eq!(rust_rev, c_rev);
       
    84         Ok(rust_rev.map(Into::into))
       
    85 
    80     }
    86     }
    81 
    87 
    82     /// same as `get_rev()` but raises a bare `error.RevlogError` if node
    88     /// same as `get_rev()` but raises a bare `error.RevlogError` if node
    83     /// is not found.
    89     /// is not found.
    84     ///
    90     ///