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,

source

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.

source

pub fn empty() -> Self

Initializes a new empty function call, this means no function name and no arguments.

source

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.

source

pub fn argument<T: TopEncodeMulti>(self, arg: &T) -> Self

Adds an argument of any serializable type.

Multi-values are accepted. No type checking performed.

source

pub fn to_call_data_string(&self) -> ManagedBuffer<Api>

Trait Implementations§

source§

impl<Api> TopDecodeMulti for FunctionCall<Api>
where Api: ManagedTypeApi,

source§

fn multi_decode_or_handle_err<I, H>( input: &mut I, h: H ) -> Result<Self, H::HandledErr>

source§

const IS_SINGLE_VALUE: bool = false

Used to optimize single value loading of endpoint arguments.
source§

fn multi_decode<I>(input: &mut I) -> Result<Self, DecodeError>

source§

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>

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>

Attempt to serialize the value to ouput.
source§

impl<Api> TypeAbi for FunctionCall<Api>
where Api: ManagedTypeApi,

source§

fn type_name() -> TypeName

source§

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§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> CodecFrom<PlaceholderInput> for T

source§

impl<T> CodecFrom<T> for T

source§

impl<F, I> CodecInto<F> for I
where I: TopEncodeMulti, F: CodecFrom<I>,