[][src]Struct maybe_serde::MaybeSerde

pub struct MaybeSerde<T>(pub Option<T>);

Helper type for connect serde and maybe-serde

This type implement both serde::{Serialize, Deserialize} for all T

It's just helper type and not necessary

you could define your own type using MaybeSer and MaybeDe

When Serialize

if T: Serialize and Option is Some then just serialize T itself (doesn't serialize as Option!)

and T: !Serialize or Option is None then serialize None

maybe #[serde(skip_serializing_if = "T::IMPL_SERIALIZE")] attribute could be help

When Deserialize

if T: Deserialize then get Some

and T: !Deserialize just None

Trait Implementations

impl<T> Into<Option<T>> for MaybeSerde<T>[src]

impl<T: MaybeSer> Serialize for MaybeSerde<T>[src]

impl<'de, T: MaybeDe<'de>> Deserialize<'de> for MaybeSerde<T>[src]

Auto Trait Implementations

impl<T> Send for MaybeSerde<T> where
    T: Send

impl<T> Sync for MaybeSerde<T> where
    T: Sync

Blanket Implementations

impl<T> MaybeSer for T[src]

const IMPL_SERIALIZE: bool[src]

Always return false

impl<T> MaybeSer for T where
    T: Serialize
[src]

const IMPL_SERIALIZE: bool[src]

Always return true

impl<'de, T> MaybeDe for T[src]

const IMPL_DESERIALIZE: bool[src]

Always return false

impl<'de, T> MaybeDe for T where
    T: Deserialize<'de>, 
[src]

const IMPL_DESERIALIZE: bool[src]

Always return true

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]