Skip to content

Commit 3934809

Browse files
committed
f
1 parent 69afce3 commit 3934809

1 file changed

Lines changed: 11 additions & 14 deletions

File tree

bindings/rust/src/lib.rs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ pub fn validate<T: AsRef<[u8]>>(input: T) -> bool {
1313
unsafe { sys::fizzy_validate(input.as_ref().as_ptr(), input.as_ref().len()) }
1414
}
1515

16-
pub struct Module {
17-
ptr: NonNull<sys::FizzyModule>,
18-
}
16+
pub struct Module(*const sys::FizzyModule);
1917

2018
impl Drop for Module {
2119
fn drop(&mut self) {
22-
unsafe { sys::fizzy_free_module(self.ptr.as_ptr()) }
20+
unsafe { sys::fizzy_free_module(self.0) }
2321
}
2422
}
2523

@@ -28,32 +26,31 @@ pub fn parse<T: AsRef<[u8]>>(input: &T) -> Result<Module, ()> {
2826
if ptr.is_null() {
2927
return Err(());
3028
}
31-
Ok(Module {
32-
ptr: unsafe { NonNull::new_unchecked(ptr as *mut sys::FizzyModule) },
33-
})
29+
Ok(Module { 0: ptr })
3430
}
3531

36-
pub struct Instance {
37-
ptr: NonNull<sys::FizzyInstance>,
38-
}
32+
pub struct Instance(NonNull<sys::FizzyInstance>);
3933

4034
impl Drop for Instance {
4135
fn drop(&mut self) {
42-
unsafe { sys::fizzy_free_instance(self.ptr.as_ptr()) }
36+
unsafe { sys::fizzy_free_instance(self.0.as_ptr()) }
4337
}
4438
}
4539

4640
impl Module {
4741
// TODO: support imported functions
4842
pub fn instantiate(self) -> Result<Instance, ()> {
49-
let ptr = unsafe { sys::fizzy_instantiate(self.ptr.as_ptr(), std::ptr::null(), 0) };
43+
if self.0.is_null() {
44+
return Err(());
45+
}
46+
let ptr = unsafe { sys::fizzy_instantiate(self.0, std::ptr::null(), 0) };
5047
// Forget Module (and avoid calling drop) because it has been consumed by instantiate (even if it failed).
5148
core::mem::forget(self);
5249
if ptr.is_null() {
5350
return Err(());
5451
}
5552
Ok(Instance {
56-
ptr: unsafe { NonNull::new_unchecked(ptr) },
53+
0: unsafe { NonNull::new_unchecked(ptr) },
5754
})
5855
}
5956
}
@@ -148,7 +145,7 @@ impl Instance {
148145
depth: i32,
149146
) -> ExecutionResult {
150147
ExecutionResult {
151-
0: sys::fizzy_execute(self.ptr.as_ptr(), func_idx, args.as_ptr(), depth),
148+
0: sys::fizzy_execute(self.0.as_ptr(), func_idx, args.as_ptr(), depth),
152149
}
153150
}
154151
}

0 commit comments

Comments
 (0)