1use proc_macro::TokenStream;
2
3mod impls;
4
5#[proc_macro_derive(Encode, attributes(storekey))]
6pub fn encode(input: TokenStream) -> TokenStream {
7 match impls::encode(input.into()) {
8 Ok(x) => x.into(),
9 Err(e) => e.into_compile_error().into(),
10 }
11}
12
13#[proc_macro_derive(Decode, attributes(storekey))]
14pub fn decode(input: TokenStream) -> TokenStream {
15 match impls::decode(input.into()) {
16 Ok(x) => x.into(),
17 Err(e) => e.into_compile_error().into(),
18 }
19}
20
21#[proc_macro_derive(BorrowDecode, attributes(storekey))]
22pub fn borrow_decode(input: TokenStream) -> TokenStream {
23 match impls::borrow_decode(input.into()) {
24 Ok(x) => x.into(),
25 Err(e) => e.into_compile_error().into(),
26 }
27}
28
29#[proc_macro_derive(ToEscaped)]
30pub fn to_escaped(input: TokenStream) -> TokenStream {
31 match impls::to_escaped(input.into()) {
32 Ok(x) => x.into(),
33 Err(e) => e.into_compile_error().into(),
34 }
35}