rustcpython中的Rust struct into PyObject

2024-04-27 03:21:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用rust cpython编写在Python中可调用的rust函数。在

我有一个用作输出的现有结构。如何将其转换为rust cpython可以理解的PyObject?在

我的结构如下:

struct Block {
    start: i32,
    stop: i32,
}

Tags: 函数rustcpythonblock结构startstructpyobject
1条回答
网友
1楼 · 发布于 2024-04-27 03:21:42

我的编译错误说我需要在我的结构上实现ToPyObject特性。 为了在一个PyObject类型中表示我的结构,我决定使用PyDict。在

我看了rustcpython是如何为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
    }
}

这是一种黑客攻击,但它允许我以命名字段作为键传递数据。在

相关问题 更多 >