@@ -50,19 +50,17 @@ impl PyConfig {
5050
5151    /// Get a configuration option 
5252     pub  fn  get < ' py > ( & self ,  key :  & str ,  py :  Python < ' py > )  -> PyResult < Bound < ' py ,  PyAny > >  { 
53-         let  value = { 
53+         let  value:   Option < Option < String > >  = { 
5454            let  options = self . config . read ( ) ; 
5555            options
5656                . entries ( ) 
57-                 . iter ( ) 
58-                 . find ( |entry| entry. key  == key) 
59-                 . map ( |entry| entry. value . clone ( ) ) 
57+                 . into_iter ( ) 
58+                 . find_map ( |entry| ( entry. key  == key) . then_some ( entry. value . clone ( ) ) ) 
6059        } ; 
6160
62-         if  let  Some ( value)  = value { 
63-             Ok ( value. into_pyobject ( py) ?) 
64-         }  else  { 
65-             Ok ( None :: < String > . into_pyobject ( py) ?) 
61+         match  value { 
62+             Some ( value)  => Ok ( value. into_pyobject ( py) ?) , 
63+             None  => Ok ( None :: < String > . into_pyobject ( py) ?) , 
6664        } 
6765    } 
6866
@@ -76,13 +74,13 @@ impl PyConfig {
7674
7775    /// Get all configuration options 
7876     pub  fn  get_all ( & self ,  py :  Python )  -> PyResult < PyObject >  { 
79-         let  entries = { 
77+         let  entries:   Vec < ( String ,   Option < String > ) >  = { 
8078            let  options = self . config . read ( ) ; 
8179            options
8280                . entries ( ) 
8381                . into_iter ( ) 
84-                 . map ( |entry| ( entry. key . to_string ( ) ,  entry. value . clone ( ) ) ) 
85-                 . collect :: < Vec < _ > > ( ) 
82+                 . map ( |entry| ( entry. key . clone ( ) ,  entry. value . clone ( ) ) ) 
83+                 . collect ( ) 
8684        } ; 
8785
8886        let  dict = PyDict :: new ( py) ; 
0 commit comments