@@ -103,40 +103,38 @@ fn map_key_cmp(a: &[u8], b: &[u8]) -> std::cmp::Ordering {
103103
104104fn 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
142140fn 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