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 {