git.delta.rocks / unique-network / refs/commits / 4747e9477427

difftreelog

misk: Refactor tuple generation

Trubnikov Sergey2022-08-05parent: #b87343e.patch.diff
in: master

1 file changed

modifiedcrates/evm-coder/src/abi.rsdiffbeforeafterboth
328 }328 }
329}329}
330330
331macro_rules! impl_tuples_abi_reader {331macro_rules! impl_tuples {
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<'_>
342 ))342 ))
343 }343 }
344 }344 }
345 #[allow(non_snake_case)]
346 impl<$($ident),+> AbiWrite for &($($ident,)+)
347 where
348 $($ident: AbiWrite,)+
349 {
350 fn abi_write(&self, writer: &mut AbiWriter) {
351 let ($($ident,)+) = self;
352 $($ident.abi_write(writer);)+
353 }
354 }
345 };355 };
346}356}
347357
348impl_tuples_abi_reader! {A}358impl_tuples! {A}
349impl_tuples_abi_reader! {A B}359impl_tuples! {A B}
350impl_tuples_abi_reader! {A B C}360impl_tuples! {A B C}
351impl_tuples_abi_reader! {A B C D}361impl_tuples! {A B C D}
352impl_tuples_abi_reader! {A B C D E}362impl_tuples! {A B C D E}
353impl_tuples_abi_reader! {A B C D E F}363impl_tuples! {A B C D E F}
354impl_tuples_abi_reader! {A B C D E F G}364impl_tuples! {A B C D E F G}
355impl_tuples_abi_reader! {A B C D E F G H}365impl_tuples! {A B C D E F G H}
356impl_tuples_abi_reader! {A B C D E F G H I}366impl_tuples! {A B C D E F G H I}
357impl_tuples_abi_reader! {A B C D E F G H I J}367impl_tuples! {A B C D E F G H I J}
358368
359pub trait AbiWrite {369pub trait AbiWrite {
360 fn abi_write(&self, writer: &mut AbiWriter);370 fn abi_write(&self, writer: &mut AbiWriter);
422 fn abi_write(&self, _writer: &mut AbiWriter) {}432 fn abi_write(&self, _writer: &mut AbiWriter) {}
423}433}
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}
450434
451#[macro_export]435#[macro_export]
452macro_rules! abi_decode {436macro_rules! abi_decode {