mirror of https://git.sr.ht/~stygianentity/bincode
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:
parent
b7f944816b
commit
70b22d4dc0
|
|
@ -514,11 +514,7 @@ impl<T> Decode for core::marker::PhantomData<T> {
|
||||||
Ok(core::marker::PhantomData)
|
Ok(core::marker::PhantomData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl<'de, T> BorrowDecode<'de> for core::marker::PhantomData<T> {
|
impl_borrow_decode!(core::marker::PhantomData<T>, T);
|
||||||
fn borrow_decode<D: BorrowDecoder<'de>>(_: &mut D) -> Result<Self, DecodeError> {
|
|
||||||
Ok(core::marker::PhantomData)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<T> Decode for Option<T>
|
impl<T> Decode for Option<T>
|
||||||
where
|
where
|
||||||
|
|
|
||||||
|
|
@ -100,8 +100,8 @@ pub trait BorrowDecode<'de>: Sized {
|
||||||
/// Helper macro to implement `BorrowDecode` for any type that implements `Decode`.
|
/// Helper macro to implement `BorrowDecode` for any type that implements `Decode`.
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! impl_borrow_decode {
|
macro_rules! impl_borrow_decode {
|
||||||
($ty:ty) => {
|
($ty:ty $(, $param:ident),*) => {
|
||||||
impl<'de> $crate::BorrowDecode<'de> for $ty {
|
impl<'de $(, $param)*> $crate::BorrowDecode<'de> for $ty {
|
||||||
fn borrow_decode<D: $crate::de::BorrowDecoder<'de>>(
|
fn borrow_decode<D: $crate::de::BorrowDecoder<'de>>(
|
||||||
decoder: &mut D,
|
decoder: &mut D,
|
||||||
) -> core::result::Result<Self, $crate::error::DecodeError> {
|
) -> core::result::Result<Self, $crate::error::DecodeError> {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue