calimero_sys/
types.rs

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