From ea4a2a082e61e905bb31879a61c8e820f3d5f61d Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Mon, 20 Mar 2023 18:46:27 -0600 Subject: [PATCH] wip: ffi --- src/ffi.rs | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/ffi.rs b/src/ffi.rs index 5b3e2fb..ab9f605 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -1,30 +1,30 @@ -// use crate::storageproofs::StorageProofs; -// use std::str; +use crate::storageproofs::StorageProofs; +use std::str; -// #[no_mangle] -// pub extern "C" fn init( -// r1cs: *const u8, -// r1cs_len: usize, -// wasm: *const u8, -// wasm_len: usize, -// ) -> *mut StorageProofs { -// let r1cs = unsafe { -// let slice = std::slice::from_raw_parts(r1cs, r1cs_len); -// str::from_utf8(slice).unwrap() -// }; +#[no_mangle] +pub extern "C" fn init( + r1cs: *const u8, + r1cs_len: usize, + wasm: *const u8, + wasm_len: usize, +) -> *mut StorageProofs { + let r1cs = unsafe { + let slice = std::slice::from_raw_parts(r1cs, r1cs_len); + str::from_utf8(slice).unwrap() + }; -// let wasm = unsafe { -// let slice = std::slice::from_raw_parts(wasm, wasm_len); -// str::from_utf8(slice).unwrap() -// }; + let wasm = unsafe { + let slice = std::slice::from_raw_parts(wasm, wasm_len); + str::from_utf8(slice).unwrap() + }; -// let storage_proofs = Box::into_raw(Box::new(StorageProofs::new( -// wasm.to_string(), -// r1cs.to_string(), -// ))); + let storage_proofs = Box::into_raw(Box::new(StorageProofs::new( + wasm.to_string(), + r1cs.to_string(), + ))); -// return storage_proofs; -// } + return storage_proofs; +} // #[cfg(test)] // mod tests {