1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::api::ErrorApi;
use crate::err_msg;
use crate::types::BoxedBytes;
use alloc::vec::Vec;
pub trait EndpointArgumentApi: ErrorApi {
fn get_num_arguments(&self) -> i32;
fn check_num_arguments(&self, expected: i32) {
let nr_args = self.get_num_arguments();
if nr_args != expected {
self.signal_error(err_msg::ARG_WRONG_NUMBER);
}
}
fn get_argument_len(&self, arg_index: i32) -> usize;
fn copy_argument_to_slice(&self, arg_index: i32, slice: &mut [u8]);
fn get_argument_vec_u8(&self, arg_index: i32) -> Vec<u8>;
fn get_argument_boxed_bytes(&self, arg_index: i32) -> BoxedBytes {
self.get_argument_vec_u8(arg_index).into()
}
fn get_argument_big_int_raw(&self, arg_id: i32) -> i32;
fn get_argument_big_uint_raw(&self, arg_id: i32) -> i32;
fn get_argument_u64(&self, arg_id: i32) -> u64;
fn get_argument_i64(&self, arg_id: i32) -> i64;
}