use pyo3::prelude::*;
use pyo3::types::PyDict;
use pyo3::wrap_pymodule;
mod submodule;
pub fn greet(name: &str) -> String {
format!("Hello, {name} from Ruida Rust!")
}
#[pyclass]
struct ExampleClass {
#[pyo3(get, set)]
value: i32,
}
#[pymethods]
impl ExampleClass {
#[new]
pub fn new(value: i32) -> Self {
ExampleClass { value }
}
}
#[pymodule]
fn ruida(py: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add_class::<ExampleClass>()?;
m.add_wrapped(wrap_pymodule!(submodule::submodule))?;
let sys = PyModule::import(py, "sys")?;
let sys_modules: Bound<'_, PyDict> = sys.getattr("modules")?.downcast_into()?;
sys_modules.set_item("maturin_starter.submodule", m.getattr("submodule")?)?;
Ok(())
}