multiversx_sc/io/
signal_error.rs

1use super::ArgId;
2use crate::{
3    api::{ErrorApi, ErrorApiImpl, ManagedTypeApi},
4    codec::DecodeError,
5    err_msg,
6    types::{ManagedBuffer, ManagedType},
7};
8
9pub fn signal_arg_de_error<EA>(arg_id: ArgId, decode_err: DecodeError) -> !
10where
11    EA: ManagedTypeApi + ErrorApi,
12{
13    let mut message_buffer =
14        ManagedBuffer::<EA>::new_from_bytes(err_msg::ARG_DECODE_ERROR_1.as_bytes());
15    message_buffer.append_bytes(arg_id.as_bytes());
16    message_buffer.append_bytes(err_msg::ARG_DECODE_ERROR_2.as_bytes());
17    message_buffer.append_bytes(decode_err.message_bytes());
18    EA::error_api_impl().signal_error_from_buffer(message_buffer.get_handle())
19}