diff --git a/src/lib.rs b/src/lib.rs index 071b997..b3568f3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -105,7 +105,7 @@ fn sort_map_keys(keys: &Bound, len: usize) -> Result() { Ok(k) => k.to_owned(), Err(_) => return Err(anyhow!("Map keys must be strings")), @@ -354,7 +354,8 @@ where types::Array::bounded(len, w)?; for i in 0..len { - encode_dag_cbor_from_pyobject(_py, &l.get_item(i)?, w)?; + let item = unsafe { l.get_item_unchecked(i) }; + encode_dag_cbor_from_pyobject(_py, &item, w)?; } Ok(()) @@ -369,7 +370,8 @@ where key.get(..) .expect("whole range is a valid string") .encode(w)?; - encode_dag_cbor_from_pyobject(_py, &values.get_item(i)?, w)?; + let value = unsafe { values.get_item_unchecked(i) }; + encode_dag_cbor_from_pyobject(_py, &value, w)?; } Ok(())