serde_fields 0.1.0

Macro making rendered serde field-names available as `&'static str`
Documentation
use serde::{Deserialize, Serialize};
use serde_fields::SerdeField;

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "camelCase")]
struct Camel {
    first_field: i32,
    second_field: String,
}

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "snake_case")]
struct Snake {
    first_field: i32,
    second_field: String,
}

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "kebab-case")]
struct Kebab {
    first_field: i32,
    second_field: String,
}

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
struct ScreamSnake {
    first_field: i32,
    second_field: String,
}

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "SCREAMING-KEBAB-CASE")]
struct ScreamKebab {
    first_field: i32,
    second_field: String,
}

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "lowercase")]
struct Lower {
    first_field: i32,
    second_field: String,
}

#[allow(dead_code)]
#[derive(Serialize, Deserialize, SerdeField)]
#[serde(rename_all = "UPPERCASE")]
struct Upper {
    first_field: i32,
    second_field: String,
}

#[test]
fn should_respect_rename_all_camel() {
    assert_eq!(CamelSerdeField::FirstField.as_str(), "firstField");
}

#[test]
fn should_respect_rename_all_snake() {
    assert_eq!(SnakeSerdeField::FirstField.as_str(), "first_field");
}

#[test]
fn should_respect_rename_all_kebab() {
    assert_eq!(KebabSerdeField::FirstField.as_str(), "first-field");
}

#[test]
fn should_respect_rename_all_scream_snake() {
    assert_eq!(ScreamSnakeSerdeField::FirstField.as_str(), "FIRST_FIELD");
}

#[test]
fn should_respect_rename_all_scream_kebab() {
    assert_eq!(ScreamKebabSerdeField::FirstField.as_str(), "FIRST-FIELD");
}

#[test]
fn should_respect_rename_all_lower() {
    assert_eq!(LowerSerdeField::FirstField.as_str(), "firstfield");
}

#[test]
fn should_respect_rename_all_upper() {
    assert_eq!(UpperSerdeField::FirstField.as_str(), "FIRSTFIELD");
}