Skip to content

Commit 3fbd67e

Browse files
committed
Add is_account_empty as experimental method
Mv isAccountEmpty to experimental namespace Add experimental as a cargo feature Make experimental native methods private
1 parent 9cc0d51 commit 3fbd67e

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ wee_alloc = "0.4.4"
1414
default = [ "std" ]
1515
std = []
1616
debug = []
17+
experimental = []

src/experimental.rs

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//! Experimental methods.
2+
3+
use super::*;
4+
5+
mod native {
6+
extern "C" {
7+
pub fn experimental_isAccountEmpty(addressOffset: *const u32) -> u32;
8+
}
9+
}
10+
11+
pub fn is_account_empty(address: &Address) -> bool {
12+
let ret = unsafe { native::experimental_isAccountEmpty(address.bytes.as_ptr() as *const u32) };
13+
if ret != 0 && ret != 1 {
14+
panic!();
15+
}
16+
17+
ret == 1
18+
}

src/lib.rs

+3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ pub mod debug;
3232
#[cfg(not(feature = "std"))]
3333
pub mod convert;
3434

35+
#[cfg(feature = "experimental")]
36+
pub mod experimental;
37+
3538
#[cfg(feature = "std")]
3639
use std::vec::Vec;
3740

0 commit comments

Comments
 (0)