Я новичок в pyo3, и мне хотелось бы добиться следующего. Мой основной код написан на Python, но я хотел бы вызвать функцию Rust из этого кода Python. Хитрость в том, что функция Rust должна иметь возможность вызывать функцию Python, предоставленную в качестве аргумента.
Предположим, у меня есть функция Python, которую нельзя встроить внутрь модуля Rust:
Я хочу создать функцию Rust, принимая эту функцию в качестве аргумента:
Код: Выделить всё
use pyo3::prelude::*;
fn my_rust_function(a: usize, f: ...) -> PyResult {
...
}
Наконец, эта функция Rust будет использоваться где-то в том же коде Python, что и выше:
Код: Выделить всё
import rust_module
def double(x):
return 2*x
def main():
return rust_module.my_rust_function(3, double)
Возможно ли такое поведение? Я читал часть документации о том, как вызывать Rust из Python и Python из Rust, но никогда не использовал такого двустороннего использования.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ython-code