openrtb_native1/
event_type.rs1#[derive(Debug, PartialEq, Eq, Clone, Copy)]
3pub enum EventType {
4 Impression,
6 ViewableMrc50,
8 ViewableMrc100,
10 ViewableVideo50,
12 ExchangeSpecific(i32),
14}
15
16crate::impl_enum_serde!(
17 #[exchange(ident = ExchangeSpecific, greater = 500)]
18 EventType {
19 Impression = 1,
20 ViewableMrc50 = 2,
21 ViewableMrc100 = 3,
22 ViewableVideo50 = 4,
23 }
24);
25
26#[cfg(test)]
27mod test {
28 use super::*;
29
30 #[test]
31 fn json() -> serde_json::Result<()> {
32 assert!(serde_json::from_str::<EventType>("0").is_err());
33 assert!(serde_json::from_str::<EventType>("500").is_err());
34
35 let json = "[1,2,501]";
36 let e1: Vec<EventType> = serde_json::from_str(json)?;
37 assert_eq!(serde_json::to_string(&e1)?, json);
38 assert_eq!(
39 e1,
40 vec![
41 EventType::Impression,
42 EventType::ViewableMrc50,
43 EventType::ExchangeSpecific(501),
44 ]
45 );
46
47 Ok(())
48 }
49}