22 lines
721 B
Rust
22 lines
721 B
Rust
#![cfg(feature = "python")]
|
|
use pyo3::prelude::*;
|
|
|
|
#[pymodinit(pythonmeli)]
|
|
fn pythonmeli(py: Python, m: &PyModule) -> PyResult<()> {
|
|
// pyo3 aware function. All of our python interface could be declared in a separate module.
|
|
// Note that the `#[pyfn()]` annotation automatically converts the arguments from
|
|
// Python objects to Rust values; and the Rust return value back into a Python object.
|
|
#[pyfn(m, "sum_as_string")]
|
|
fn sum_as_string_py(_py: Python, a: i64, b: i64) -> PyResult<String> {
|
|
let out = sum_as_string(a, b);
|
|
Ok(out)
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
|
|
// logic implemented as a normal rust function
|
|
fn sum_as_string(a: i64, b: i64) -> String {
|
|
format!("{}", a + b).to_string()
|
|
}
|