1mod bool;
2mod buffer;
3mod event;
4mod location;
5mod pointer;
6mod r#ref;
7mod register;
8mod xcall;
9
10pub use bool::*;
11pub use buffer::*;
12pub use event::*;
13pub use location::*;
14pub use pointer::*;
15pub use r#ref::*;
16pub use register::*;
17pub use xcall::*;
18
19#[repr(C, u64)]
20#[derive(Clone, Copy, Debug, Eq, PartialEq)]
21pub enum ValueReturn<'a> {
22 Ok(Buffer<'a>),
23 Err(Buffer<'a>),
24}
25
26impl<'a, T, E> From<Result<&'a T, &'a E>> for ValueReturn<'a>
27where
28 T: AsRef<[u8]>,
29 E: AsRef<[u8]>,
30{
31 #[inline]
32 fn from(result: Result<&'a T, &'a E>) -> Self {
33 match result {
34 Ok(value) => ValueReturn::Ok(Buffer::new(value)),
35 Err(value) => ValueReturn::Err(Buffer::new(value)),
36 }
37 }
38}
39
40#[cfg(not(any(target_pointer_width = "64", target_arch = "wasm32")))]
41compile_error!(
42 "calimero-sys assumes you're compiling for a 64-bit target or wasm32, which you are not. Please file an issue"
43);