testnumbat_wasm_derive/
lib.rs

1#![allow(stable_features)]
2// ensure we don't run out of macro stack
3#![recursion_limit = "1024"]
4
5#[macro_use]
6extern crate syn;
7
8#[macro_use]
9extern crate quote;
10
11mod contract_impl;
12mod generate;
13mod macro_contract;
14mod macro_module;
15mod macro_proxy;
16mod model;
17mod parse;
18mod preprocessing;
19mod type_abi_derive;
20mod validate;
21
22#[proc_macro_attribute]
23pub fn contract(
24    args: proc_macro::TokenStream,
25    input: proc_macro::TokenStream,
26) -> proc_macro::TokenStream {
27    macro_contract::process_contract(args, input)
28}
29
30#[proc_macro_attribute]
31pub fn module(
32    args: proc_macro::TokenStream,
33    input: proc_macro::TokenStream,
34) -> proc_macro::TokenStream {
35    macro_module::process_module(args, input)
36}
37
38#[proc_macro_attribute]
39pub fn proxy(
40    args: proc_macro::TokenStream,
41    input: proc_macro::TokenStream,
42) -> proc_macro::TokenStream {
43    macro_proxy::process_proxy(args, input)
44}
45
46#[proc_macro_derive(TypeAbi)]
47pub fn type_abi_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
48    let ast = syn::parse(input).unwrap();
49
50    type_abi_derive::type_abi_derive(&ast)
51}