我是一个Rust和PyO3的新手(来自Python),对于更有经验的人可能很明显。
我在PyO3中声明了一个pyclass结构体。
#[pyclass]
struct Block {
start: i32,
stop: i32,
}
然后我在一个接受 Block
向量并输出整数向量的 Rust 函数中使用 Block
(签名如下)
#[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是正确的。我在追溯错误时犯了一个错误。 之前我写道:
然后我在一个接受整数向量并输出Block向量的Rust函数中使用了Block(下面是签名)
#[pyfunction]
fn to_blocks(list: Vec<i32>) -> Vec<Block>
但实际上有问题的函数是:
#[pyfunction]
fn from_blocks(block_list: Vec<Block>) -> Vec<i32>
我已经更新了问题,使其更加清晰明了。