В моей ошибке компиляции сказано, что мне нужно реализовать черту ToPyObject в моей структуре.
Чтобы представить мою структуру в одном из типов 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
}
}
Это своего рода хак, но он позволяет мне передавать данные с именованными полями в качестве ключей.