parker wanted associated type

main
Brett 2024-01-30 11:00:28 -05:00
parent c67d9294d2
commit ce53aace34
1 changed files with 38 additions and 36 deletions

View File

@ -19,7 +19,8 @@ pub struct Bruh {
weights_capacity: usize,
}
fn create_bruh(result: Result<ShapiroWilkTest, ShapiroWilkError>) -> Bruh {
impl Bruh {
pub fn from_result(result: Result<ShapiroWilkTest, ShapiroWilkError>) -> Self {
match result {
Ok(results) => {
let (weights, weights_len, weights_capacity) = {
@ -57,6 +58,7 @@ fn create_bruh(result: Result<ShapiroWilkTest, ShapiroWilkError>) -> Bruh {
}
}
}
}
/// # Safety
/// data must be a valid unique ptr to len f64's
@ -65,19 +67,19 @@ fn create_bruh(result: Result<ShapiroWilkTest, ShapiroWilkError>) -> Bruh {
pub extern "C-unwind" fn willbert(data: *const f64, len: usize) -> Bruh {
let slice = unsafe { std::slice::from_raw_parts(data, len) };
let result = ShapiroWilkTest::new_sorted(slice);
create_bruh(result)
Bruh::from_result(result)
}
#[no_mangle]
pub extern "C-unwind" fn willbert_unsorted(data: *mut f64, len: usize) -> Bruh {
let slice = unsafe { std::slice::from_raw_parts_mut(data, len) };
let result = ShapiroWilkTest::new(slice);
create_bruh(result)
Bruh::from_result(result)
}
#[no_mangle]
pub extern "C-unwind" fn willbert_unsorted_copy(data: *const f64, len: usize) -> Bruh {
let slice = unsafe { std::slice::from_raw_parts(data, len) };
let result = ShapiroWilkTest::new_copy(slice);
create_bruh(result)
Bruh::from_result(result)
}