(
&self,
obj: *mut tk_sys::Tcl_Obj,
vm: &VirtualMachine,
)
| 191 | } |
| 192 | |
| 193 | fn tcl_obj_to_pyobject( |
| 194 | &self, |
| 195 | obj: *mut tk_sys::Tcl_Obj, |
| 196 | vm: &VirtualMachine, |
| 197 | ) -> PyResult<PyObjectRef> { |
| 198 | let type_ptr = unsafe { (*obj).typePtr }; |
| 199 | if type_ptr.is_null() { |
| 200 | return self.unicode_from_object(obj, vm); |
| 201 | } else if type_ptr == self.old_boolean_type || type_ptr == self.boolean_type { |
| 202 | return Ok(vm.ctx.new_bool(self.tcl_obj_to_bool(obj)).into()); |
| 203 | } else if type_ptr == self.string_type |
| 204 | || type_ptr == self.utf32_string_type |
| 205 | || type_ptr == self.pixel_type |
| 206 | { |
| 207 | return self.unicode_from_object(obj, vm); |
| 208 | } |
| 209 | // TODO: handle other types |
| 210 | |
| 211 | Ok(TclObject { value: obj }.into_pyobject(vm)) |
| 212 | } |
| 213 | |
| 214 | fn unicode_from_string( |
| 215 | s: *mut ffi::c_char, |
no test coverage detected