Mercurial > python-compiler.rs
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)