mirror of
https://github.com/bytedream/serde-inline-default.git
synced 2026-02-04 05:16:26 +01:00
feat: add support for named enum variant fields (#15)
This commit is contained in:
20
tests/enum.rs
Normal file
20
tests/enum.rs
Normal file
@@ -0,0 +1,20 @@
|
||||
use serde::Deserialize;
|
||||
use serde_inline_default::serde_inline_default;
|
||||
use serde_json::json;
|
||||
|
||||
#[test]
|
||||
fn enum_default() {
|
||||
#[serde_inline_default]
|
||||
#[derive(Debug, PartialEq, Eq, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
enum Test {
|
||||
VariantWithFields {
|
||||
#[serde_inline_default(255)]
|
||||
test_int: u8,
|
||||
},
|
||||
}
|
||||
|
||||
let enum_test: Test = serde_json::from_value(json!({"VariantWithFields": {}})).unwrap();
|
||||
|
||||
assert_eq!(enum_test, Test::VariantWithFields { test_int: 255 })
|
||||
}
|
||||
@@ -1,10 +1,11 @@
|
||||
use std::borrow::Cow;
|
||||
|
||||
use serde::Deserialize;
|
||||
use serde_inline_default::serde_inline_default;
|
||||
use serde_json::json;
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[test]
|
||||
fn test_serde_inline_default() {
|
||||
fn struct_normal() {
|
||||
fn native_default() -> u32 {
|
||||
69
|
||||
}
|
||||
@@ -31,7 +32,7 @@ fn test_serde_inline_default() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_lifetime() {
|
||||
fn lifetime() {
|
||||
#[serde_inline_default]
|
||||
#[derive(Deserialize)]
|
||||
struct LifetimeTest<'a> {
|
||||
@@ -46,7 +47,7 @@ fn test_lifetime() {
|
||||
|
||||
#[test]
|
||||
#[allow(dead_code)]
|
||||
fn test_conditional_compilation() {
|
||||
fn conditional_compilation() {
|
||||
#[cfg(debug_assertions)]
|
||||
#[derive(Deserialize)]
|
||||
struct TypeA(u8);
|
||||
Reference in New Issue
Block a user