mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-29 17:37:55 +00:00
Auto merge of #457 - serde-rs:phantom, r=oli-obk
Impl Deserialize for PhantomData<T> for all T
This commit is contained in:
@@ -356,7 +356,7 @@ pub struct PhantomDataVisitor<T> {
|
|||||||
marker: PhantomData<T>,
|
marker: PhantomData<T>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Visitor for PhantomDataVisitor<T> where T: Deserialize {
|
impl<T> Visitor for PhantomDataVisitor<T> {
|
||||||
type Value = PhantomData<T>;
|
type Value = PhantomData<T>;
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
@@ -367,7 +367,7 @@ impl<T> Visitor for PhantomDataVisitor<T> where T: Deserialize {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> Deserialize for PhantomData<T> where T: Deserialize {
|
impl<T> Deserialize for PhantomData<T> {
|
||||||
fn deserialize<D>(deserializer: &mut D) -> Result<PhantomData<T>, D::Error>
|
fn deserialize<D>(deserializer: &mut D) -> Result<PhantomData<T>, D::Error>
|
||||||
where D: Deserializer,
|
where D: Deserializer,
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ extern crate serde;
|
|||||||
use self::serde::ser::{Serialize, Serializer};
|
use self::serde::ser::{Serialize, Serializer};
|
||||||
use self::serde::de::{Deserialize, Deserializer};
|
use self::serde::de::{Deserialize, Deserializer};
|
||||||
|
|
||||||
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
@@ -23,6 +25,11 @@ struct WithRef<'a, T: 'a> {
|
|||||||
x: X,
|
x: X,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
struct PhantomX {
|
||||||
|
x: PhantomData<X>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
struct Bounds<T: Serialize + Deserialize> {
|
struct Bounds<T: Serialize + Deserialize> {
|
||||||
t: T,
|
t: T,
|
||||||
|
|||||||
Reference in New Issue
Block a user