equal
deleted
inserted
replaced
35 let mut copies = HashMap::new(); |
35 let mut copies = HashMap::new(); |
36 |
36 |
37 match parse_dirstate(&mut dirstate_map, &mut copies, st.data(py)) { |
37 match parse_dirstate(&mut dirstate_map, &mut copies, st.data(py)) { |
38 Ok(parents) => { |
38 Ok(parents) => { |
39 for (filename, entry) in dirstate_map { |
39 for (filename, entry) in dirstate_map { |
|
40 // Explicitly go through u8 first, then cast to |
|
41 // platform-specific `c_char` because Into<u8> has a specific |
|
42 // implementation while `as c_char` would just do a naive enum |
|
43 // cast. |
|
44 let state: u8 = entry.state.into(); |
|
45 |
40 dmap.set_item( |
46 dmap.set_item( |
41 py, |
47 py, |
42 PyBytes::new(py, &filename), |
48 PyBytes::new(py, &filename), |
43 decapsule_make_dirstate_tuple(py)?( |
49 decapsule_make_dirstate_tuple(py)?( |
44 entry.state as c_char, |
50 state as c_char, |
45 entry.mode, |
51 entry.mode, |
46 entry.size, |
52 entry.size, |
47 entry.mtime, |
53 entry.mtime, |
48 ), |
54 ), |
49 )?; |
55 )?; |
128 size, |
134 size, |
129 mtime, |
135 mtime, |
130 }, |
136 }, |
131 ) in dirstate_map |
137 ) in dirstate_map |
132 { |
138 { |
|
139 // Explicitly go through u8 first, then cast to |
|
140 // platform-specific `c_char` because Into<u8> has a specific |
|
141 // implementation while `as c_char` would just do a naive enum |
|
142 // cast. |
|
143 let state: u8 = state.into(); |
133 dmap.set_item( |
144 dmap.set_item( |
134 py, |
145 py, |
135 PyBytes::new(py, &filename[..]), |
146 PyBytes::new(py, &filename[..]), |
136 decapsule_make_dirstate_tuple(py)?( |
147 decapsule_make_dirstate_tuple(py)?( |
137 state as c_char, |
148 state as c_char, |