git.delta.rocks / unique-network / refs/commits / 14eb87cf32d1

difftreelog

path: Impl AbiWrite for tuples

Trubnikov Sergey2022-08-04parent: #f96d484.patch.diff
in: master

1 file changed

modifiedcrates/evm-coder/src/abi.rsdiffbeforeafterboth
328 }328 }
329}329}
330330
331macro_rules! impl_tuples {331macro_rules! impl_tuples_abi_reader {
332 ($($ident:ident)+) => {332 ($($ident:ident)+) => {
333 impl<$($ident),+> sealed::CanBePlacedInVec for ($($ident,)+) {}333 impl<$($ident),+> sealed::CanBePlacedInVec for ($($ident,)+) {}
334 impl<$($ident),+> AbiRead<($($ident,)+)> for AbiReader<'_>334 impl<$($ident),+> AbiRead<($($ident,)+)> for AbiReader<'_>
345 };345 };
346}346}
347347
348impl_tuples! {A}348impl_tuples_abi_reader! {A}
349impl_tuples! {A B}349impl_tuples_abi_reader! {A B}
350impl_tuples! {A B C}350impl_tuples_abi_reader! {A B C}
351impl_tuples! {A B C D}351impl_tuples_abi_reader! {A B C D}
352impl_tuples! {A B C D E}352impl_tuples_abi_reader! {A B C D E}
353impl_tuples! {A B C D E F}353impl_tuples_abi_reader! {A B C D E F}
354impl_tuples! {A B C D E F G}354impl_tuples_abi_reader! {A B C D E F G}
355impl_tuples! {A B C D E F G H}355impl_tuples_abi_reader! {A B C D E F G H}
356impl_tuples! {A B C D E F G H I}356impl_tuples_abi_reader! {A B C D E F G H I}
357impl_tuples! {A B C D E F G H I J}357impl_tuples_abi_reader! {A B C D E F G H I J}
358358
359pub trait AbiWrite {359pub trait AbiWrite {
360 fn abi_write(&self, writer: &mut AbiWriter);360 fn abi_write(&self, writer: &mut AbiWriter);
422 fn abi_write(&self, _writer: &mut AbiWriter) {}422 fn abi_write(&self, _writer: &mut AbiWriter) {}
423}423}
424
425macro_rules! impl_tuples_abi_writer {
426 ($($ident:ident)+) => {
427 #[allow(non_snake_case)]
428 impl<$($ident),+> AbiWrite for &($($ident,)+)
429 where
430 $($ident: AbiWrite,)+
431 {
432 fn abi_write(&self, writer: &mut AbiWriter) {
433 let ($($ident,)+) = self;
434 $($ident.abi_write(writer);)+
435 }
436 }
437 };
438}
439
440impl_tuples_abi_writer! {A}
441impl_tuples_abi_writer! {A B}
442impl_tuples_abi_writer! {A B C}
443impl_tuples_abi_writer! {A B C D}
444impl_tuples_abi_writer! {A B C D E}
445impl_tuples_abi_writer! {A B C D E F}
446impl_tuples_abi_writer! {A B C D E F G}
447impl_tuples_abi_writer! {A B C D E F G H}
448impl_tuples_abi_writer! {A B C D E F G H I}
449impl_tuples_abi_writer! {A B C D E F G H I J}
424450
425#[macro_export]451#[macro_export]
426macro_rules! abi_decode {452macro_rules! abi_decode {