nibblet 0.1.0

Byte-focussed alternative ser/de derives
Documentation
#![cfg(test)]

use crate::tests::utils::Expected;

use super::super::derive_deserialize_impl;

use pretty_assertions::assert_eq;
use quote::quote;

#[test]
fn variant_types_deserialization() {
    let r#enum = quote! {
        enum VariantTypes {
            Unit,
            Newtype(u8),
            Unnamed(u8, u16),
            Field{ a: u8, b: u16 },
        }
    };
    let expected = crate::tests::utils::str_to_expected(include_str!("../../tests/objects/enum_variant_types.rs"), &Expected::Deserialize);
    let result = derive_deserialize_impl(r#enum);
    assert_eq!(result.to_string(), expected);
}

#[test]
fn unnamed_field_deserialization() {
    let r#enum = quote! {
        enum UnnamedField {
            Array([u16; 12]),
        }
    };
    let expected = crate::tests::utils::str_to_expected(include_str!("../../tests/objects/enum_unnamed_field.rs"), &Expected::Deserialize);
    let result = derive_deserialize_impl(r#enum);
    assert_eq!(result.to_string(), expected);
}

#[test]
fn named_field_deserialization() {
    let r#enum = quote! {
        enum NamedField {
            Array { inner: [u16; 12] },
        }
    };
    let expected = crate::tests::utils::str_to_expected(include_str!("../../tests/objects/enum_named_field.rs"), &Expected::Deserialize);
    let result = derive_deserialize_impl(r#enum);
    assert_eq!(result.to_string(), expected);
}