RustのStructにPythonのObjectのReferenceを格納したいです。
以下に簡略化したコードで書きました。ただし、PyObjRef
, to_py_ref
, to_py_obj
は実際には存在しないメソッド・ストラクトです。名前からこのような機能を有しているのを推測してもらう為に書きました。
rust
1#[pyclass] 2pub struct PythonStore { 3 // store python object reference 4 obj: Vec<PyObjRef>, 5} 6 7#[pymethods] 8impl PythonStore { 9 #[new] 10 fn new() -> Self { 11 PythonStore {obj: Vec::new()} 12 } 13 14 // push python object reference to vec 15 fn push(&mut self, obj: &PyAny) { 16 self.obj.push(obj.to_py_ref()); 17 } 18 19 // return last inserted object 20 fn get(&mut self, py: Python) -> PyObject { 21 match self.obj.pop() { 22 Some(obj) => obj.to_py_obj(py), 23 None => py.None(), 24 } 25 } 26}
PyO3内でObjectの操作は考えていません、内部に格納し搬出するだけです。ただPyO3のサイトを見てみましたがやり方がわかりませんでした。
何かわかる方は回答の方をよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/24 04:51
2020/03/24 05:47 編集