git.delta.rocks / unique-network / refs/commits / 5a3fe2c70832

difftreelog

source

crates/evm-coder/tests/generics.rs1.5 KiBsourcehistory
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use 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);