datahobbit/
lib.rs

1mod csv_generators;
2use crate::csv_generators::{generate_csv, generate_parquet};
3
4use pyo3::exceptions::PyValueError;
5use pyo3::prelude::*;
6
7#[pyfunction]
8fn py_entry_point(
9    input: &str,
10    output: &str,
11    records: usize,
12    delimiter: u8,
13    data_format: &str,
14    max_file_size: usize,
15) -> PyResult<()> {
16    let result = match data_format {
17        "csv" => generate_csv(&input, &output, records, delimiter),
18        "parquet" => generate_parquet(&input, &output, records, max_file_size),
19        _ => unreachable!(),
20    };
21
22    match result {
23        Err(e) => Err(PyErr::new::<PyValueError, _>(format!("Error: {}", e))),
24        Ok(_) => Ok(()),
25    }
26}
27
28#[pymodule]
29fn native(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
30    m.add_function(wrap_pyfunction!(py_entry_point, m)?)?;
31
32    Ok(())
33}