elm_rs 0.2.3

Generate Elm bindings for your Rust types
Documentation
use crate::{Elm, ElmDecode, ElmEncode};
use serde::{Deserialize, Serialize};

#[derive(Debug, PartialEq, Deserialize, Serialize, Elm, ElmEncode, ElmDecode)]
#[serde(rename = "renamed")]
struct Unit;

#[derive(Debug, PartialEq, Deserialize, Serialize, Elm, ElmEncode, ElmDecode)]
#[serde(rename = "renamed")]
struct Newtype(i32);

#[derive(Debug, PartialEq, Deserialize, Serialize, Elm, ElmEncode, ElmDecode)]
#[serde(rename = "renamed")]
struct Tuple(i32, i32);

#[derive(Debug, PartialEq, Deserialize, Serialize, Elm, ElmEncode, ElmDecode)]
#[serde(rename = "renamed")]
#[serde(rename_all = "UPPERCASE")]
struct Named {
    field: i32,
    #[serde(rename = "another-field")]
    renamed: i32,
}

#[test]
fn unit() {
    super::test_json(Unit);
}

#[test]
fn newtype() {
    super::test_json(Newtype(123));
}

#[test]
fn tuple() {
    super::test_json(Tuple(123, 234));
}

#[test]
fn named() {
    super::test_json(Named {
        field: 123,
        renamed: 0,
    });
}