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 pub fn len(&self) -> u32 {
16 (self.0 & 0xffffffff) as u32
17 }
18
19 pub fn transmute_i64(n: i64) -> Self {
20 Self(n as u64)
21 }
22
23 pub fn as_i64(&self) -> i64 {
24 self.0 as i64
25 }
26}
27
28#[repr(C)]
29pub struct Slice(pub u64);
30
31impl Slice {
32 pub fn new(ptr: u32, len: u32) -> Self {
33 Self((ptr as u64) << 32 | (len as u64))
34 }
35
36 pub fn ptr(&self) -> u32 {
37 (self.0 >> 32) as u32
38 }
39
40 pub fn len(&self) -> u32 {
41 (self.0 & 0xffffffff) as u32
42 }
43
44 pub fn transmute_i64(n: i64) -> Self {
45 Self(n as u64)
46 }
47
48 pub fn as_i64(&self) -> i64 {
49 self.0 as i64
50 }
51}