serde_alias 0.0.2

An attribute macro to apply serde aliases to all struct fields
Documentation
extern crate serde_alias;

use serde::{Deserialize, Serialize};
use serde_alias::serde_alias;

#[serde_alias(
    CamelCase,
    PascalCase,
    LowerCase,
    UpperCase,
    SnakeCase,
    ScreamingSnakeCase,
    KebabCase,
    ScreamingKebabCase
)]
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
struct Foo {
    bar: String,
    bar1: String,
    bar2: String,
    bar3: String,
    bar4: String,
}

#[test]
fn de_camel_pascal() {
    let got: Foo = serde_json::from_str(
        r#"{"Bar": "Bar", "bar1": "bar1", "Bar2": "Bar2", "bar_3": "bar_3", "bar-4": "bar-4"}"#,
    )
    .unwrap();

    let expected = Foo {
        bar: "Bar".to_string(),
        bar1: "bar1".to_string(),
        bar2: "Bar2".to_string(),
        bar3: "bar_3".to_string(),
        bar4: "bar-4".to_string(),
    };

    assert_eq!(got, expected);
}