ts_bind_macros/
lib.rs

1use error::ToCompileError;
2use proc_macro::TokenStream;
3use syn::{parse_macro_input, DeriveInput};
4use ts_bind::handle_ts_bind;
5
6mod error;
7mod files;
8mod parsers;
9mod rename_all;
10mod struct_attrs;
11mod ts;
12mod ts_bind;
13
14#[proc_macro_derive(TsBind, attributes(ts_bind))]
15pub fn ts_bind_derive(input: TokenStream) -> TokenStream {
16    let input = parse_macro_input!(input as DeriveInput);
17
18    match handle_ts_bind(&input) {
19        Ok(ts) => ts,
20        Err(e) => e.to_compile_error(),
21    }
22}