Skip to content

Commit 5b52f03

Browse files
committed
code cleanup
1 parent 3114d4b commit 5b52f03

1 file changed

Lines changed: 32 additions & 36 deletions

File tree

src/lib.rs

Lines changed: 32 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -103,40 +103,38 @@ fn map_key_cmp(a: &[u8], b: &[u8]) -> std::cmp::Ordering {
103103

104104
fn sort_map_keys(keys: &Bound<PyList>, len: usize) -> Result<Vec<(PyBackedStr, usize)>> {
105105
// Returns key and index.
106-
unsafe {
107-
let mut keys_str = Vec::with_capacity(len);
108-
for i in 0..len {
109-
let item = keys.get_item_unchecked(i);
110-
let key = match item.cast::<PyString>() {
111-
Ok(k) => k.to_owned(),
112-
Err(_) => return Err(anyhow!("Map keys must be strings")),
113-
};
114-
let backed_str = match PyBackedStr::try_from(key) {
115-
Ok(bs) => bs,
116-
Err(_) => return Err(anyhow!("Failed to convert PyString to PyBackedStr")),
117-
};
118-
keys_str.push((backed_str, i));
119-
}
106+
let mut keys_str = Vec::with_capacity(len);
107+
for i in 0..len {
108+
let item = unsafe { keys.get_item_unchecked(i) };
109+
let key = match item.cast::<PyString>() {
110+
Ok(k) => k.to_owned(),
111+
Err(_) => return Err(anyhow!("Map keys must be strings")),
112+
};
113+
let backed_str = match PyBackedStr::try_from(key) {
114+
Ok(bs) => bs,
115+
Err(_) => return Err(anyhow!("Failed to convert PyString to PyBackedStr")),
116+
};
117+
keys_str.push((backed_str, i));
118+
}
120119

121-
if keys_str.len() < 2 {
122-
return Ok(keys_str);
123-
}
120+
if keys_str.len() < 2 {
121+
return Ok(keys_str);
122+
}
124123

125-
keys_str.sort_by(|a, b| {
126-
// sort_unstable_by performs bad
127-
let (s1, _) = a;
128-
let (s2, _) = b;
124+
keys_str.sort_by(|a, b| {
125+
// sort_unstable_by performs bad
126+
let (s1, _) = a;
127+
let (s2, _) = b;
129128

130-
// sorted length-first by the byte representation of the string keys
131-
if s1.len() != s2.len() {
132-
s1.len().cmp(&s2.len())
133-
} else {
134-
s1.cmp(s2)
135-
}
136-
});
129+
// sorted length-first by the byte representation of the string keys
130+
if s1.len() != s2.len() {
131+
s1.len().cmp(&s2.len())
132+
} else {
133+
s1.cmp(s2)
134+
}
135+
});
137136

138-
Ok(keys_str)
139-
}
137+
Ok(keys_str)
140138
}
141139

142140
fn get_bytes_from_py_any<'py>(obj: &'py Bound<'py, PyAny>) -> PyResult<&'py [u8]> {
@@ -356,9 +354,8 @@ where
356354
types::Array::bounded(len, w)?;
357355

358356
for i in 0..len {
359-
unsafe {
360-
encode_dag_cbor_from_pyobject(_py, &l.get_item_unchecked(i), w)?;
361-
}
357+
let item = unsafe { l.get_item_unchecked(i) };
358+
encode_dag_cbor_from_pyobject(_py, &item, w)?;
362359
}
363360

364361
Ok(())
@@ -373,9 +370,8 @@ where
373370
key.get(..)
374371
.expect("whole range is a valid string")
375372
.encode(w)?;
376-
unsafe {
377-
encode_dag_cbor_from_pyobject(_py, &values.get_item_unchecked(i), w)?;
378-
}
373+
let value = unsafe { values.get_item_unchecked(i) };
374+
encode_dag_cbor_from_pyobject(_py, &value, w)?;
379375
}
380376

381377
Ok(())

0 commit comments

Comments
 (0)