38 lines
942 B
Rust
38 lines
942 B
Rust
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")]
|
|
/// Description from comment
|
|
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());
|
|
}
|