gecko-dev/third_party/rust/serde_repr
Nupur Baghel b541ef6ea1 Bug 1564416 - marionette subcrate: vendor crates. r=ato
Depends on D37703

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

--HG--
extra : moz-landing-system : lando
2019-07-11 12:50:40 +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.