File tree Expand file tree Collapse file tree 4 files changed +44
-0
lines changed Expand file tree Collapse file tree 4 files changed +44
-0
lines changed Original file line number Diff line number Diff line change 2
2
3
3
members = [
4
4
" cloudflare" ,
5
+ " cloudflare-derive-macros" ,
5
6
" cloudflare-examples" ,
6
7
" cloudflare-e2e-test" ,
7
8
]
Original file line number Diff line number Diff line change
1
+ [package ]
2
+ name = " cloudflare-derive-macros"
3
+ version = " 0.1.0"
4
+ edition = " 2018"
5
+ description = " Internal macros for the Cloudflare crate"
6
+ license = " BSD-3-Clause"
7
+
8
+ [lib ]
9
+ proc-macro = true
10
+
11
+ [dependencies ]
12
+ syn = " 1.0"
13
+ quote = " 1.0"
Original file line number Diff line number Diff line change
1
+ extern crate proc_macro;
2
+
3
+ use proc_macro:: TokenStream ;
4
+ use quote:: quote;
5
+ use syn:: { parse_macro_input, DeriveInput } ;
6
+
7
+ #[ proc_macro_derive( ApiResult ) ]
8
+ pub fn api_result_derive ( input : TokenStream ) -> TokenStream {
9
+ let ast = parse_macro_input ! ( input as DeriveInput ) ;
10
+ let name = & ast. ident ;
11
+
12
+ let gen = quote ! {
13
+ impl crate :: framework:: response:: ApiResult for #name { }
14
+ } ;
15
+
16
+ gen. into ( )
17
+ }
18
+
19
+ #[ proc_macro_derive( VecApiResult ) ]
20
+ pub fn vec_api_result_derive ( input : TokenStream ) -> TokenStream {
21
+ let ast = parse_macro_input ! ( input as DeriveInput ) ;
22
+ let name = & ast. ident ;
23
+
24
+ let gen = quote ! {
25
+ impl crate :: framework:: response:: ApiResult for Vec <#name> { }
26
+ } ;
27
+
28
+ gen. into ( )
29
+ }
Original file line number Diff line number Diff line change @@ -33,3 +33,4 @@ serde_urlencoded = "0.7.1"
33
33
thiserror = " 1"
34
34
url = " 2.2"
35
35
uuid = { version = " 1.0" , features = [" serde" ] }
36
+ cloudflare-derive-macros = { path = " ../cloudflare-derive-macros" }
You can’t perform that action at this time.
0 commit comments