90 default: Option<PyObject> = None |
90 default: Option<PyObject> = None |
91 ) -> PyResult<Option<PyObject>> { |
91 ) -> PyResult<Option<PyObject>> { |
92 let key = key.extract::<PyBytes>(py)?; |
92 let key = key.extract::<PyBytes>(py)?; |
93 match self.inner(py).borrow().get(HgPath::new(key.data(py))) { |
93 match self.inner(py).borrow().get(HgPath::new(key.data(py))) { |
94 Some(entry) => { |
94 Some(entry) => { |
95 Ok(Some(make_dirstate_tuple(py, entry)?)) |
95 Ok(Some(make_dirstate_tuple(py, &entry)?)) |
96 }, |
96 }, |
97 None => Ok(default) |
97 None => Ok(default) |
98 } |
98 } |
99 } |
99 } |
100 |
100 |
346 def __getitem__(&self, key: PyObject) -> PyResult<PyObject> { |
346 def __getitem__(&self, key: PyObject) -> PyResult<PyObject> { |
347 let key = key.extract::<PyBytes>(py)?; |
347 let key = key.extract::<PyBytes>(py)?; |
348 let key = HgPath::new(key.data(py)); |
348 let key = HgPath::new(key.data(py)); |
349 match self.inner(py).borrow().get(key) { |
349 match self.inner(py).borrow().get(key) { |
350 Some(entry) => { |
350 Some(entry) => { |
351 Ok(make_dirstate_tuple(py, entry)?) |
351 Ok(make_dirstate_tuple(py, &entry)?) |
352 }, |
352 }, |
353 None => Err(PyErr::new::<exc::KeyError, _>( |
353 None => Err(PyErr::new::<exc::KeyError, _>( |
354 py, |
354 py, |
355 String::from_utf8_lossy(key.as_bytes()), |
355 String::from_utf8_lossy(key.as_bytes()), |
356 )), |
356 )), |
523 ) -> RefMut<'a, Box<dyn DirstateMapMethods + Send>> { |
523 ) -> RefMut<'a, Box<dyn DirstateMapMethods + Send>> { |
524 self.inner(py).borrow_mut() |
524 self.inner(py).borrow_mut() |
525 } |
525 } |
526 fn translate_key( |
526 fn translate_key( |
527 py: Python, |
527 py: Python, |
528 res: (&HgPath, &DirstateEntry), |
528 res: (&HgPath, DirstateEntry), |
529 ) -> PyResult<Option<PyBytes>> { |
529 ) -> PyResult<Option<PyBytes>> { |
530 Ok(Some(PyBytes::new(py, res.0.as_bytes()))) |
530 Ok(Some(PyBytes::new(py, res.0.as_bytes()))) |
531 } |
531 } |
532 fn translate_key_value( |
532 fn translate_key_value( |
533 py: Python, |
533 py: Python, |
534 res: (&HgPath, &DirstateEntry), |
534 res: (&HgPath, DirstateEntry), |
535 ) -> PyResult<Option<(PyBytes, PyObject)>> { |
535 ) -> PyResult<Option<(PyBytes, PyObject)>> { |
536 let (f, entry) = res; |
536 let (f, entry) = res; |
537 Ok(Some(( |
537 Ok(Some(( |
538 PyBytes::new(py, f.as_bytes()), |
538 PyBytes::new(py, f.as_bytes()), |
539 make_dirstate_tuple(py, &entry)?, |
539 make_dirstate_tuple(py, &entry)?, |