scylla_macros_flex/
lib.rs1use proc_macro::TokenStream;
2
3mod from_row;
4mod from_user_type;
5mod into_cql_select;
6mod parser;
7
8#[proc_macro_derive(FromRowLax)]
11pub fn from_row_derive(tokens_input: TokenStream) -> TokenStream {
12 from_row::from_row_derive(tokens_input)
13}
14
15#[proc_macro_derive(FromUserTypeLax)]
18pub fn from_user_type_derive(tokens_input: TokenStream) -> TokenStream {
19 from_user_type::from_user_type_derive(tokens_input)
20}
21
22#[proc_macro_derive(IntoCQLSelect)]
23pub fn into_cql_select_derive(tokens_input: TokenStream) -> TokenStream {
24 into_cql_select::into_cql_select_derive(tokens_input)
25}
26
27cfg_if::cfg_if! {
28 if #[cfg(feature = "speedy")] {
29 mod ext_speedy;
30 #[proc_macro_derive(FromSpeedy)]
32 pub fn from_speedy_derive(tokens_input: TokenStream) -> TokenStream {
33 ext_speedy::from_speedy_derive(tokens_input)
34 }
35
36 #[proc_macro_derive(IntoSpeedy)]
38 pub fn into_speedy_derive(tokens_input: TokenStream) -> TokenStream {
39 ext_speedy::into_speedy_derive(tokens_input)
40 }
41 }
42}
43
44cfg_if::cfg_if! {
45 if #[cfg(feature = "serde_json")] {
46 mod ext_serde_json;
47 #[proc_macro_derive(FromJson)]
50 pub fn from_json_derive(tokens_input: TokenStream) -> TokenStream {
51 ext_serde_json::from_json_derive(tokens_input)
52 }
53
54 #[proc_macro_derive(IntoJson)]
57 pub fn into_json_derive(tokens_input: TokenStream) -> TokenStream {
58 ext_serde_json::into_json_derive(tokens_input)
59 }
60 }
61}
62
63cfg_if::cfg_if! {
64 if #[cfg(feature = "rmp-serde")] {
65 mod ext_rmp_serde;
66 #[proc_macro_derive(FromMessagePack)]
69 pub fn from_mp_derive(tokens_input: TokenStream) -> TokenStream {
70 ext_rmp_serde::from_mp_derive(tokens_input)
71 }
72
73 #[proc_macro_derive(IntoMessagePack)]
76 pub fn into_mp_derive(tokens_input: TokenStream) -> TokenStream {
77 ext_rmp_serde::into_mp_derive(tokens_input)
78 }
79 }
80}
81
82cfg_if::cfg_if! {
83 if #[cfg(feature = "protobuf")]{
84 mod ext_protobuf;
85 #[proc_macro_derive(FromProtobuf)]
88 pub fn from_protobuf_derive(tokens_input: TokenStream) -> TokenStream {
89 ext_protobuf::from_protobuf_derive(tokens_input)
90 }
91
92 #[proc_macro_derive(IntoProtobuf)]
95 pub fn into_protobuf_derive(tokens_input: TokenStream) -> TokenStream {
96 ext_protobuf::into_protobuf_derive(tokens_input)
97 }
98 }
99}