twitter_v2/data/
verb.rs

1use serde::{Deserialize, Serialize};
2
3macro_rules! verb {
4    ($vis:vis struct $class:ident { $verb:ident }) => {
5        #[derive(Deserialize, Serialize, Clone, Copy, Debug, Eq, PartialEq)]
6        $vis struct $class {
7            pub $verb: bool
8        }
9
10        impl $class {
11            pub fn as_bool(&self) -> bool {
12                self.$verb
13            }
14        }
15
16        impl From<$class> for bool {
17            fn from($verb: $class) -> bool {
18                $verb.$verb
19            }
20        }
21
22        impl From<bool> for $class {
23            fn from($verb: bool) -> $class {
24                $class { $verb }
25            }
26        }
27    };
28}
29
30verb! { pub struct Deleted { deleted } }
31verb! { pub struct Updated { updated } }
32verb! { pub struct Retweeted { retweeted } }
33verb! { pub struct Liked { liked } }
34verb! { pub struct Bookmarked { bookmarked } }
35verb! { pub struct Hidden { hidden } }
36verb! { pub struct Following { following } }
37verb! { pub struct Blocking { blocking } }
38verb! { pub struct Muting { muting } }
39verb! { pub struct IsMember { is_member } }
40verb! { pub struct Pinned { pinned } }