feat: add support for named enum variant fields (#15)

This commit is contained in:
2026-01-24 14:09:07 +01:00
parent 017080244a
commit ce70ea4365
5 changed files with 132 additions and 48 deletions

20
tests/enum.rs Normal file
View 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 })
}

View File

@@ -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);