I want to create deserialize function for Option<T>
where I already have a custom deserializer for T
and I want to use that deserializer for T, when deserializing Option<T>
:
pub fn deserialize(deserializer: D) -> Result<T, D::Error>
{
...
}
That is null
in JSON to be deserialized to None
and non-null to Some(deserialize(deserializer)?)
.
How to define:
pub fn deserialize(deserializer: D) -> Result<Option<T>, D::Error>
{
... // What here?
}
Create type Wrap
:
struct Wrap(T);
Define Deserialize
for Wrap
.
Now I can define the deserialize
function for T
as deserializing Wrap
and unwrapping the value of T
.