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
This commit is contained in:
dullbananas 2023-06-19 06:46:45 -07:00 committed by GitHub
parent b7f944816b
commit 70b22d4dc0
2 changed files with 3 additions and 7 deletions

View File

@ -514,11 +514,7 @@ impl<T> Decode for core::marker::PhantomData<T> {
Ok(core::marker::PhantomData)
}
}
impl<'de, T> BorrowDecode<'de> for core::marker::PhantomData<T> {
fn borrow_decode<D: BorrowDecoder<'de>>(_: &mut D) -> Result<Self, DecodeError> {
Ok(core::marker::PhantomData)
}
}
impl_borrow_decode!(core::marker::PhantomData<T>, T);
impl<T> Decode for Option<T>
where

View File

@ -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<D: $crate::de::BorrowDecoder<'de>>(
decoder: &mut D,
) -> core::result::Result<Self, $crate::error::DecodeError> {