INNER CODE UNIT · Rust
slice
xoofx/Blake3.NET · lib/blake3_dotnet/src/lib.rs:19
let slice = unsafe { std::slice::from_raw_parts(ptr as *const u8, size as usize) };
let st = std::string::String::from_utf8_lossy(slice).into_owned();
return Box::into_raw(Box::new(blake3::Hasher::new_derive_key(&st)));
}
// Deletes an existing a new instance of Blake3 Hasher
#[no_mangle]
pub extern "C" fn blake3_delete(hasher: *mut blake3::Hasher) {
unsafe { drop(Box::from_raw(hasher)); }
}
// Resets Blake3 hasher
#[no_mangle]
pub extern "C" fn blake3_reset(
hasher: *mut blake3::Hasher)
{
let hasher = unsafe { &mut *hasher };
hasher.reset();