serde-saphyr 1.0.1

YAML (de)serializer for Serde, emphasizing panic-free parsing, fast builds and good error reporting. Supports properties, comments, include
Documentation
#![cfg(all(feature = "serialize", feature = "deserialize"))]

use serde::Deserialize;

#[test]
fn deserialize_bool() {
    let v: bool = serde_saphyr::from_str("true").unwrap();
    assert!(v);
}

#[test]
fn deserialize_i128() {
    let v: i128 = serde_saphyr::from_str("170141183460469231731687303715884105727").unwrap();
    assert_eq!(v, 170_141_183_460_469_231_731_687_303_715_884_105_727_i128);
}

#[test]
fn deserialize_u128() {
    let v: u128 = serde_saphyr::from_str("340282366920938463463374607431768211455").unwrap();
    assert_eq!(v, 340_282_366_920_938_463_463_374_607_431_768_211_455_u128);
}

#[test]
fn deserialize_char() {
    let v: char = serde_saphyr::from_str("Z").unwrap();
    assert_eq!(v, 'Z');
}

#[test]
fn deserialize_unit() {
    let _: () = serde_saphyr::from_str("null").unwrap();
}

#[test]
fn deserialize_unit_struct() {
    #[derive(Deserialize, Debug)]
    struct Unit;
    let _: Unit = serde_saphyr::from_str("null").unwrap();
}

#[test]
fn deserialize_newtype_struct() {
    #[derive(Deserialize, Debug, PartialEq)]
    struct Wrapper(i32);
    let v: Wrapper = serde_saphyr::from_str("42").unwrap();
    assert_eq!(v, Wrapper(42));
}

#[test]
fn deserialize_tuple() {
    let v: (i32, String, bool) = serde_saphyr::from_str("- 1\n- two\n- true").unwrap();
    assert_eq!(v, (1, "two".to_string(), true));
}

#[test]
fn deserialize_tuple_struct() {
    #[derive(Deserialize, Debug, PartialEq)]
    struct Pair(i32, String);
    let v: Pair = serde_saphyr::from_str("- 1\n- hello").unwrap();
    assert_eq!(v, Pair(1, "hello".into()));
}

#[test]
fn deserialize_enum_variants() {
    #[derive(Deserialize, Debug, PartialEq)]
    enum E {
        Unit,
        Newtype(i32),
        Tuple(i32, bool),
        Struct { x: i32 },
    }
    let v: E = serde_saphyr::from_str("Unit").unwrap();
    assert_eq!(v, E::Unit);

    let v: E = serde_saphyr::from_str("Newtype: 5").unwrap();
    assert_eq!(v, E::Newtype(5));

    let v: E = serde_saphyr::from_str("Tuple:\n  - 1\n  - true").unwrap();
    assert_eq!(v, E::Tuple(1, true));

    let v: E = serde_saphyr::from_str("Struct:\n  x: 10").unwrap();
    assert_eq!(v, E::Struct { x: 10 });
}