Struct multiversx_sc::types::FunctionCall
source · pub struct FunctionCall<Api>where
Api: ManagedTypeApi,{
pub function_name: ManagedBuffer<Api>,
pub arg_buffer: ManagedArgBuffer<Api>,
}Expand description
Encodes a function call on the blockchain, composed of a function name and its encoded arguments.
Can be used as a multi-argument, to embed a call within a call.
Fields§
§function_name: ManagedBuffer<Api>§arg_buffer: ManagedArgBuffer<Api>Implementations§
source§impl<Api> FunctionCall<Api>where
Api: ManagedTypeApi,
impl<Api> FunctionCall<Api>where
Api: ManagedTypeApi,
sourcepub fn new<N: Into<ManagedBuffer<Api>>>(function_name: N) -> Self
pub fn new<N: Into<ManagedBuffer<Api>>>(function_name: N) -> Self
Initializes a new function call with a function call name.
The arguments will need to be added afterwards.
sourcepub fn empty() -> Self
pub fn empty() -> Self
Initializes a new empty function call, this means no function name and no arguments.
sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Empty function calls have empty function names.
There should be no function call with empty function call but with arguments.
sourcepub fn argument<T: TopEncodeMulti>(self, arg: &T) -> Self
pub fn argument<T: TopEncodeMulti>(self, arg: &T) -> Self
Adds an argument of any serializable type.
Multi-values are accepted. No type checking performed.
pub fn to_call_data_string(&self) -> ManagedBuffer<Api>
Trait Implementations§
source§impl<Api> TopDecodeMulti for FunctionCall<Api>where
Api: ManagedTypeApi,
impl<Api> TopDecodeMulti for FunctionCall<Api>where
Api: ManagedTypeApi,
fn multi_decode_or_handle_err<I, H>(
input: &mut I,
h: H
) -> Result<Self, H::HandledErr>where
I: TopDecodeMultiInput,
H: DecodeErrorHandler,
source§const IS_SINGLE_VALUE: bool = false
const IS_SINGLE_VALUE: bool = false
Used to optimize single value loading of endpoint arguments.
fn multi_decode<I>(input: &mut I) -> Result<Self, DecodeError>where
I: TopDecodeMultiInput,
source§impl<Api> TopEncodeMulti for FunctionCall<Api>where
Api: ManagedTypeApi,
impl<Api> TopEncodeMulti for FunctionCall<Api>where
Api: ManagedTypeApi,
source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
Version of
top_encode that can handle errors as soon as they occur.
For instance in can exit immediately and make sure that if it returns, it is a success.
By not deferring error handling, this can lead to somewhat smaller bytecode.source§fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Attempt to serialize the value to ouput.
source§impl<Api> TypeAbi for FunctionCall<Api>where
Api: ManagedTypeApi,
impl<Api> TypeAbi for FunctionCall<Api>where
Api: ManagedTypeApi,
fn type_name() -> TypeName
source§fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC
)
fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC )
A type can provide more than its own name.
For instance, a struct can also provide the descriptions of the type of its fields.
TypeAbi doesn’t care for the exact accumulator type,
which is abstracted by the TypeDescriptionContainer trait.
Auto Trait Implementations§
impl<Api> CodecFromSelf for FunctionCall<Api>
impl<Api> RefUnwindSafe for FunctionCall<Api>
impl<Api> Send for FunctionCall<Api>
impl<Api> Sync for FunctionCall<Api>
impl<Api> Unpin for FunctionCall<Api>
impl<Api> UnwindSafe for FunctionCall<Api>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more