Anki/rs/pybridge/src/lib.rs
Damien Elmes 252a0cb54f use protobuf for python/rust bridge
If we go ahead with betterproto on the Python side, it will mean
bumping the minimum Python dependency to 3.7.
2019-12-24 19:57:54 +10:00

33 lines
685 B
Rust

use ankirs::bridge::Bridge as RustBridge;
use pyo3::prelude::*;
use pyo3::types::PyBytes;
#[pyclass]
struct Bridge {
bridge: RustBridge,
}
#[pymethods]
impl Bridge {
#[new]
fn init(obj: &PyRawObject) {
obj.init({
Bridge {
bridge: Default::default(),
}
});
}
fn command(&mut self, py: Python, input: &PyBytes) -> PyResult<PyObject> {
let out_bytes = self.bridge.run_command_bytes(input.as_bytes());
let out_obj = PyBytes::new(py, &out_bytes);
Ok(out_obj.into())
}
}
#[pymodule]
fn _ankirs(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_class::<Bridge>()?;
Ok(())
}