##// END OF EJS Templates
rust-dirstatemap: expand the wrapping code a bit...
marmoute -
r48307:f6f25ab6 default
parent child Browse files
Show More
@@ -112,23 +112,31 b' py_class!(pub class DirstateMap |py| {'
112 size: PyObject,
112 size: PyObject,
113 mtime: PyObject
113 mtime: PyObject
114 ) -> PyResult<PyObject> {
114 ) -> PyResult<PyObject> {
115 self.inner(py).borrow_mut().add_file(
115 let f = f.extract::<PyBytes>(py)?;
116 HgPath::new(f.extract::<PyBytes>(py)?.data(py)),
116 let filename = HgPath::new(f.data(py));
117 oldstate.extract::<PyBytes>(py)?.data(py)[0]
117 let oldstate = oldstate.extract::<PyBytes>(py)?.data(py)[0]
118 .try_into()
119 .map_err(|e: HgError| {
120 PyErr::new::<exc::ValueError, _>(py, e.to_string())
121 })?;
122 let state = state.extract::<PyBytes>(py)?.data(py)[0]
118 .try_into()
123 .try_into()
119 .map_err(|e: HgError| {
124 .map_err(|e: HgError| {
120 PyErr::new::<exc::ValueError, _>(py, e.to_string())
125 PyErr::new::<exc::ValueError, _>(py, e.to_string())
121 })?,
126 })?;
122 DirstateEntry {
127 let mode = mode.extract(py)?;
123 state: state.extract::<PyBytes>(py)?.data(py)[0]
128 let size = size.extract(py)?;
124 .try_into()
129 let mtime = mtime.extract(py)?;
125 .map_err(|e: HgError| {
130 let entry = DirstateEntry {
126 PyErr::new::<exc::ValueError, _>(py, e.to_string())
131 state: state,
127 })?,
132 mode: mode,
128 mode: mode.extract(py)?,
133 size: size,
129 size: size.extract(py)?,
134 mtime: mtime,
130 mtime: mtime.extract(py)?,
135 };
131 },
136 self.inner(py).borrow_mut().add_file(
137 filename,
138 oldstate,
139 entry,
132 ).and(Ok(py.None())).or_else(|e: DirstateError| {
140 ).and(Ok(py.None())).or_else(|e: DirstateError| {
133 Err(PyErr::new::<exc::ValueError, _>(py, e.to_string()))
141 Err(PyErr::new::<exc::ValueError, _>(py, e.to_string()))
134 })
142 })
General Comments 0
You need to be logged in to leave comments. Login now