我是 Rust 和 PyO3(来自 Python)的新手,所以这对于更有经验的人来说可能是显而易见的。
我在 PyO3 中声明了一个 pyclass 结构。
#[pyclass]
struct Block {
start: i32,
stop: i32,
}
然后我Block
在一个 rust 函数中使用,它接受一个向量Block
并输出一个 int 向量(下面的签名)
#[pyfunction]
fn from_blocks(block_list: Vec<Block>) -> Vec<i32>
当我使用编译时nightly-x86_64-apple-darwin
,出现以下错误:
#[pyfunction]
^^^^^^^^^^^^^ the trait `pyo3::FromPyObject<'_>` is not implemented for `std::vec::Vec<Block>`
我该如何解决这个问题?
编辑: Caio 是对的。我在追溯错误时犯了一个错误。以前我写过
然后我在一个 rust 函数中使用 Block,该函数接受一个 int 向量并输出一个 Block 向量(下面的签名)
#[pyfunction]
fn to_blocks(list: Vec<i32>) -> Vec<Block>
但实际的违规功能是:
#[pyfunction]
fn from_blocks(block_list: Vec<Block>) -> Vec<i32>
我已经更新了问题以使其更清楚。