From 70b22d4dc0a3ea1fd9f2627ddfe7f42c8c4244ec Mon Sep 17 00:00:00 2001 From: dullbananas Date: Mon, 19 Jun 2023 06:46:45 -0700 Subject: [PATCH] Allow generics in impl_borrow_decode (#635) * Allow generics in impl_borrow_decode * Use impl_borrow_decode for PhantomData * Update impls.rs * Update mod.rs --- src/de/impls.rs | 6 +----- src/de/mod.rs | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/de/impls.rs b/src/de/impls.rs index b1c80b0..93154f0 100644 --- a/src/de/impls.rs +++ b/src/de/impls.rs @@ -514,11 +514,7 @@ impl Decode for core::marker::PhantomData { Ok(core::marker::PhantomData) } } -impl<'de, T> BorrowDecode<'de> for core::marker::PhantomData { - fn borrow_decode>(_: &mut D) -> Result { - Ok(core::marker::PhantomData) - } -} +impl_borrow_decode!(core::marker::PhantomData, T); impl Decode for Option where diff --git a/src/de/mod.rs b/src/de/mod.rs index 07f35e3..061f5b4 100644 --- a/src/de/mod.rs +++ b/src/de/mod.rs @@ -100,8 +100,8 @@ pub trait BorrowDecode<'de>: Sized { /// Helper macro to implement `BorrowDecode` for any type that implements `Decode`. #[macro_export] macro_rules! impl_borrow_decode { - ($ty:ty) => { - impl<'de> $crate::BorrowDecode<'de> for $ty { + ($ty:ty $(, $param:ident),*) => { + impl<'de $(, $param)*> $crate::BorrowDecode<'de> for $ty { fn borrow_decode>( decoder: &mut D, ) -> core::result::Result {