Я новичок в Rust и PyO3 (из Python), так что это может быть очевидно для более опытных людей.
Я объявил структуру Pyclass в PyO3.
#[pyclass]
struct Block {
start: i32,
stop: i32,
}
Затем я использую Block
в функции ржавчины, которая берет вектор 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>`
Как мне решить эту проблему?
EDIT:
Кайо прав. Я сделал ошибку в отслеживании ошибки.
Ранее я писал
Затем я использую Block в функции ржавчины, которая берет вектор int и выводит вектор Block (подпись ниже)
#[pyfunction]
fn to_blocks(list: Vec<i32>) -> Vec<Block>
Но фактическая нарушающая функция:
#[pyfunction]
fn from_blocks(block_list: Vec<Block>) -> Vec<i32>
Я обновил вопрос, чтобы сделать его более понятным.