diff src/python_dump.rs @ 1:b90e49ab734b

Factorise conversion of Python str into Rust String.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Tue, 31 May 2016 00:52:00 +0100
parents 211b0df72e64
children ddf372373a77
line wrap: on
line diff
--- a/src/python_dump.rs
+++ b/src/python_dump.rs
@@ -52,6 +52,12 @@ fn dump(py: Python, indent: usize, ast: 
     };
     */
 
+    fn get_str(py: Python, object: PyObject) -> String {
+        let pystring = object.str(py).unwrap();
+        let mut string = pystring.to_string(py).unwrap();
+        string.to_mut().to_string()
+    }
+
     if is_instance(&ast, &function_def_type) {
         let name = ast.getattr(py, "name").unwrap();
         let args = ast.getattr(py, "args").unwrap();
@@ -181,17 +187,8 @@ fn dump(py: Python, indent: usize, ast: 
         let name = ast.getattr(py, "name").unwrap();
         let asname = ast.getattr(py, "asname").unwrap();
 
-        let name = {
-            let name = name.str(py).unwrap();
-            let mut name = name.to_string(py).unwrap();
-            name.to_mut().to_string()
-        };
-
-        let asname = {
-            let asname = asname.str(py).unwrap();
-            let mut asname = asname.to_string(py).unwrap();
-            asname.to_mut().to_string()
-        };
+        let name = get_str(py, name);
+        let asname = get_str(py, asname);
 
         if asname == "None" {
             format!("{}", name)