1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
use crate::DynArgOutput;
use elrond_codec::TopEncode;

/// Trait that specifies how arguments are serialized in contract calls.
pub trait ContractCallArg: Sized {
    fn push_dyn_arg<O: DynArgOutput>(&self, output: &mut O);
}

impl<T> ContractCallArg for T
where
    T: TopEncode,
{
    #[inline]
    fn push_dyn_arg<O: DynArgOutput>(&self, output: &mut O) {
        output.push_single_arg(self);
    }
}