Function pyo3_asyncio::generic::into_future[][src]

pub fn into_future<R>(
    awaitable: &PyAny
) -> PyResult<impl Future<Output = PyResult<PyObject>> + Send> where
    R: Runtime
Expand description

Convert a Python awaitable into a Rust Future

This function simply forwards the future and the event_loop returned by get_current_loop to into_future_with_loop. See into_future_with_loop for more details.

Arguments

  • awaitable - The Python awaitable to be converted

Examples

const PYTHON_CODE: &'static str = r#"
import asyncio

async def py_sleep(duration):
    await asyncio.sleep(duration)
"#;

async fn py_sleep(seconds: f32) -> PyResult<()> {
    let test_mod = Python::with_gil(|py| -> PyResult<PyObject> {
        Ok(
            PyModule::from_code(
                py,
                PYTHON_CODE,
                "test_into_future/test_mod.py",
                "test_mod"
            )?
            .into()
        )
    })?;

    Python::with_gil(|py| {
        pyo3_asyncio::generic::into_future::<MyCustomRuntime>(
            test_mod
                .call_method1(py, "py_sleep", (seconds.into_py(py),))?
                .as_ref(py),
        )
    })?
    .await?;
    Ok(())    
}