1234567891011121314151617use std::marker::PhantomData;18use evm_coder::{execution::Result, generate_stubgen, solidity_interface, types::*};19use evm_coder::{20 make_signature,21 custom_signature::{22 SIGNATURE_SIZE_LIMIT, SignatureUnit, SignaturePreferences, FunctionSignature,23 },24};2526pub struct Generic<T>(PhantomData<T>);2728#[solidity_interface(name = GenericIs)]29impl<T> Generic<T> {30 fn test_1(&self) -> Result<uint256> {31 unreachable!()32 }33}3435#[solidity_interface(name = Generic, is(GenericIs))]36impl<T: Into<u32>> Generic<T> {37 fn test_2(&self) -> Result<uint256> {38 unreachable!()39 }40}4142generate_stubgen!(gen_iface, GenericCall<()>, false);4344#[solidity_interface(name = GenericWhere)]45impl<T> Generic<T>46where47 T: core::fmt::Debug,48{49 fn test_3(&self) -> Result<uint256> {50 unreachable!()51 }52}5354generate_stubgen!(gen_where_iface, GenericWhereCall<()>, false);