evm-coder 0.4.3

EVM call decoding/encoding proc macros
Documentation
use std::marker::PhantomData;

use evm_coder::{dummy_contract, generate_stubgen, solidity_interface, types::*};
use primitive_types::U256;

type Result<T> = core::result::Result<T, String>;

pub struct Generic<T>(PhantomData<T>);

dummy_contract! {
	macro_rules! Generic_result {...}
	impl<T> Contract for Generic<T> {...}
}

#[solidity_interface(name = GenericIs)]
impl<T> Generic<T> {
	fn test_1(&self) -> Result<U256> {
		unreachable!()
	}
}

#[solidity_interface(name = Generic, is(GenericIs))]
impl<T: Into<u32>> Generic<T> {
	fn test_2(&self) -> Result<U256> {
		unreachable!()
	}
}

generate_stubgen!(gen_iface, GenericCall<()>, false);

#[solidity_interface(name = GenericWhere)]
impl<T> Generic<T>
where
	T: core::fmt::Debug,
{
	fn test_3(&self) -> U256 {
		unreachable!()
	}
}

generate_stubgen!(gen_where_iface, GenericWhereCall<()>, false);