diff --git a/.cargo/config b/.cargo/config deleted file mode 100644 index e69de29..0000000 diff --git a/build.rs b/build.rs index 1a1a644..43b1004 100644 --- a/build.rs +++ b/build.rs @@ -1,7 +1,7 @@ fn main() -> miette::Result<()> { let path = std::path::PathBuf::from("src/cpp"); // include path - let mut b = autocxx_build::Builder::new("src/main.rs", &[&path]).build()?; + let mut b = autocxx_build::Builder::new("src/lib.rs", &[&path]).build()?; // This assumes all your C++ bindings are in main.rs b.flag_if_supported("-std=c++14") .flag("-fopenmp") diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..805b357 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,24 @@ +use autocxx::prelude::*; + +include_cpp! { + #include "data.hpp" + safety!(unsafe) + generate!("Data") +} + +use ffi::Data as Data_; + +pub fn generate_data(samples: &[i8]) -> UniquePtr { + let samples_length = samples.len() as i32; + let bits_per_symbol = 8; + + unsafe { + ffi::Data::new2( + samples.as_ptr(), + samples_length.into(), + bits_per_symbol.into(), + false, + ) + .within_unique_ptr() + } +} diff --git a/src/main.rs b/src/main.rs index 878d2fc..ac1495a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,29 +1,16 @@ -use autocxx::prelude::*; +use SP800_90B_rs::generate_data; use rand::Rng; -include_cpp! { - #include "data.hpp" - safety!(unsafe) - generate!("Data") -} + fn main() { // println!("Hello, world!"); let mut rng = rand::thread_rng(); let samples: [i8; 1_000_000] = rng.gen(); - let samples_length = samples.len() as i32; - let bits_per_symbol = 8; + + let data = generate_data(&samples); - let data = unsafe { - ffi::Data::new2( - samples.as_ptr(), - samples_length.into(), - bits_per_symbol.into(), - false, - ) - .within_unique_ptr() - }; let a = data.iid_tests(); println!("{a:?}");