onechatsocial_models/
lib.rs1#[cfg(feature = "serde")]
2#[macro_use]
3extern crate serde;
4
5#[cfg(feature = "schemas")]
6#[macro_use]
7extern crate schemars;
8
9#[cfg(feature = "partials")]
10#[macro_use]
11extern crate revolt_optional_struct;
12
13#[cfg(feature = "validator")]
14pub use validator;
15
16macro_rules! auto_derived {
17 ( $( $item:item )+ ) => {
18 $(
19 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
20 #[cfg_attr(feature = "schemas", derive(JsonSchema))]
21 #[derive(Debug, Clone, Eq, PartialEq)]
22 $item
23 )+
24 };
25}
26
27#[cfg(feature = "partials")]
28macro_rules! auto_derived_partial {
29 ( $item:item, $name:expr ) => {
30 #[derive(
31 OptionalStruct, Debug, Clone, Eq, PartialEq, Serialize, Deserialize, JsonSchema,
32 )]
33 #[optional_derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize, JsonSchema)]
34 #[optional_name = $name]
35 #[opt_skip_serializing_none]
36 #[opt_some_priority]
37 $item
38 };
39}
40
41#[cfg(not(feature = "partials"))]
42macro_rules! auto_derived_partial {
43 ( $item:item, $name:expr ) => {
44 #[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize, JsonSchema)]
45 $item
46 };
47}
48
49pub mod v0;
50
51pub fn if_false(t: &bool) -> bool {
53 !t
54}
55
56pub fn if_zero_u32(t: &u32) -> bool {
58 t == &0
59}