use std::marker::PhantomData; use evm_coder::{dummy_contract, generate_stubgen, solidity_interface, types::*}; use primitive_types::U256; type Result = core::result::Result; pub struct Generic(PhantomData); dummy_contract! { macro_rules! Generic_result {...} impl Contract for Generic {...} } #[solidity_interface(name = GenericIs)] impl Generic { fn test_1(&self) -> Result { unreachable!() } } #[solidity_interface(name = Generic, is(GenericIs))] impl> Generic { fn test_2(&self) -> Result { unreachable!() } } generate_stubgen!(gen_iface, GenericCall<()>, false); #[solidity_interface(name = GenericWhere)] impl Generic where T: core::fmt::Debug, { fn test_3(&self) -> U256 { unreachable!() } } generate_stubgen!(gen_where_iface, GenericWhereCall<()>, false);