mod descriptor_pool; mod error; mod merging; mod py_any_extras; use descriptor_pool::create_cached_descriptor; use error::Result; use merging::merge_msg_into_pyobj; use prost_reflect::DynamicMessage; use pyo3::prelude::*; #[pyfunction] fn deserialize(obj: &PyAny, buf: &[u8]) -> Result<()> { let desc = create_cached_descriptor(obj)?; let msg = DynamicMessage::decode(desc, buf)?; merge_msg_into_pyobj(obj, msg)?; Ok(()) } #[pymodule] fn betterproto_extras(_py: Python, m: &PyModule) -> PyResult<()> { m.add_function(wrap_pyfunction!(deserialize, m)?)?; Ok(()) }