我将使用rust-cpython编写Rust函数,以便在Python中调用。我有一个现有的作为输出使用的结构体。如何将其转换为rust-cpython可以理解的PyObject?
我的结构体如下:
我的结构体如下:
struct Block {
start: i32,
stop: i32,
}
struct Block {
start: i32,
stop: i32,
}
我的编译错误提示我需要在我的结构体上实现ToPyObject trait。 为了将我的结构体表示为PyObject类型之一,我决定使用PyDict。
我查看了rust-cpython如何处理HashMap,然后将其复制到我的代码中。
impl ToPyObject for Block {
type ObjectType = PyDict;
fn to_py_object(&self, py: Python) -> PyDict {
let dict = PyDict::new(py);
dict.set_item(py, "start", self.start).unwrap();
dict.set_item(py, "stop", self.stop).unwrap();
dict
}
}