tree: c4b1c556a6fd160f95db988d1edbf93cc15b7747 [path history] [tgz]
  1. .github/
  2. src/
  3. tests/
  4. .android-checksum.json
  5. .cargo-checksum.json
  6. .cargo_vcs_info.json
  7. Android.bp
  8. Cargo.lock
  9. Cargo.toml
  10. Cargo.toml.orig
  11. cargo_embargo.json
  12. LICENSE-APACHE
  13. METADATA
  14. MODULE_LICENSE_APACHE2
  15. README.md
crates/serde_repr/README.md

Serde repr derive

This crate provides a derive macro to derive Serde's Serialize and Deserialize traits in a way that delegates to the underlying repr of a C-like enum.

[dependencies]
serde = "1.0"
serde_repr = "0.1"
use serde_repr::{Serialize_repr, Deserialize_repr};

#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)]
#[repr(u8)]
enum SmallPrime {
    Two = 2,
    Three = 3,
    Five = 5,
    Seven = 7,
}

fn main() -> serde_json::Result<()> {
    let j = serde_json::to_string(&SmallPrime::Seven)?;
    assert_eq!(j, "7");

    let p: SmallPrime = serde_json::from_str("2")?;
    assert_eq!(p, SmallPrime::Two);

    Ok(())
}

License