use crate::prelude::*;
use schemars::JsonSchema_repr;
use serde_repr::{Deserialize_repr, Serialize_repr};
#[derive(JsonSchema_repr, Deserialize_repr, Serialize_repr)]
#[repr(u8)]
#[serde(rename = "EnumWithReprAttr")]
pub enum Enum {
Zero,
One,
Five = 5,
Six,
Three = 3,
}
#[test]
fn enum_repr() {
test!(Enum)
.assert_snapshot()
.assert_allows_ser_roundtrip([Enum::Zero, Enum::One, Enum::Five, Enum::Six, Enum::Three])
.assert_allows_de_roundtrip([
Value::from(0),
Value::from(1),
Value::from(5),
Value::from(6),
Value::from(3),
])
.assert_rejects_de([
Value::from("Zero"),
Value::from("One"),
Value::from("Five"),
Value::from("Six"),
Value::from("Three"),
])
.assert_matches_de_roundtrip(arbitrary_values());
}