1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::DynArgOutput;
use dharitri_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);
    }
}