gecko-dev/third_party/rust/serde_repr
Emilio Cobos Álvarez b151f69581 Bug 1587468 - Update serde and related crates. r=nical
We are no longer using a pinned version of serde, so update to avoid the
dependency on older syn / quote / etc.

Differential Revision: https://phabricator.services.mozilla.com/D53375

--HG--
extra : moz-landing-system : lando
2019-11-19 15:20:39 +00:00
..
src
tests
.cargo-checksum.json
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
README.md

README.md

Serde repr derive

Build Status Latest Version Rust Documentation

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

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.