onechatsocial_models/
lib.rs

1#[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
51/// Utility function to check if a boolean value is false
52pub fn if_false(t: &bool) -> bool {
53    !t
54}
55
56/// Utility function to check if an u32 is zero
57pub fn if_zero_u32(t: &u32) -> bool {
58    t == &0
59}