[][src]Trait nop_json::OrDefault

pub trait OrDefault {
    fn or_default(self) -> Self;
}

This is like std::default::Default, but optional. I auto-implement this trait for Option for all types. Types that implement std::default::Default return Some(default), and others return None. I need this to provide default value for omitted fields during JSON deserialization.

Examples

use nop_json::OrDefault;

#[derive(PartialEq, Debug)]
struct NoFallback {x: i32, y: i32}

#[derive(PartialEq, Debug, Default)]
struct Fallback {x: i32, y: i32}

let no: Option<NoFallback> = None;
let yes: Option<Fallback> = None;
assert_eq!(no.or_default(), None);
assert_eq!(yes.or_default(), Some(Fallback {x: 0, y: 0}));

Required methods

fn or_default(self) -> Self

Loading content...

Implementations on Foreign Types

impl<T> OrDefault for Option<T> where
    T: OptionalDefault, 
[src]

Loading content...

Implementors

Loading content...