plexcryptool/src/lib.rs

30 lines
954 B
Rust
Raw Normal View History

2023-04-25 18:09:04 +02:00
use pyo3::prelude::*;
mod binary;
2023-05-02 15:17:17 +02:00
mod modular_exponentiation;
2023-04-25 18:09:04 +02:00
#[pymodule]
fn register_binary_module(py: Python, parent_module: &PyModule) -> PyResult<()> {
let binary_module = PyModule::new(py, "binary")?;
binary_module.add_function(wrap_pyfunction!(binary::rotl32, binary_module)?)?;
binary_module.add_function(wrap_pyfunction!(binary::rotr32, binary_module)?)?;
parent_module.add_submodule(binary_module)?;
Ok(())
}
2023-05-02 15:17:17 +02:00
#[pymodule]
fn register_math_module(py: Python, parent_module: &PyModule) -> PyResult<()> {
let math_module = PyModule::new(py, "math")?;
math_module.add_function(wrap_pyfunction!(modular_exponentiation::py_modular_exponentiation, math_module)?)?;
2023-05-02 15:17:17 +02:00
parent_module.add_submodule(math_module)?;
Ok(())
}
2023-04-25 18:09:04 +02:00
/// A Python module implemented in Rust.
#[pymodule]
fn plexcryptool(py: Python, m: &PyModule) -> PyResult<()> {
register_binary_module(py, m)?;
2023-05-02 15:17:17 +02:00
register_math_module(py, m)?;
2023-04-25 18:09:04 +02:00
Ok(())
}