radix_engine_interface/types/
wasm.rs1pub type BufferId = u32;
2
3#[repr(C)]
4pub struct Buffer(pub u64);
5
6impl Buffer {
7 pub fn new(id: u32, len: u32) -> Self {
8 Self((id as u64) << 32 | (len as u64))
9 }
10
11 pub fn id(&self) -> u32 {
12 (self.0 >> 32) as u32
13 }
14
15 #[allow(clippy::len_without_is_empty)]
16 pub fn len(&self) -> u32 {
17 (self.0 & 0xffffffff) as u32
18 }
19
20 pub fn transmute_i64(n: i64) -> Self {
21 Self(n as u64)
22 }
23
24 pub fn as_i64(&self) -> i64 {
25 self.0 as i64
26 }
27}
28
29#[repr(C)]
30pub struct Slice(pub u64);
31
32impl Slice {
33 pub fn new(ptr: u32, len: u32) -> Self {
34 Self((ptr as u64) << 32 | (len as u64))
35 }
36
37 pub fn ptr(&self) -> u32 {
38 (self.0 >> 32) as u32
39 }
40
41 #[allow(clippy::len_without_is_empty)]
42 pub fn len(&self) -> u32 {
43 (self.0 & 0xffffffff) as u32
44 }
45
46 pub fn transmute_i64(n: i64) -> Self {
47 Self(n as u64)
48 }
49
50 pub fn as_i64(&self) -> i64 {
51 self.0 as i64
52 }
53}