tauri_types/
lib.rs

1mod command;
2mod file;
3mod invoke;
4mod ty;
5
6use command::Command;
7use invoke::Invoke;
8use proc_macro::TokenStream;
9use quote::{quote, ToTokens};
10use syn::parse_macro_input;
11use ty::Ty;
12
13#[proc_macro_attribute]
14pub fn command(_args: TokenStream, s: TokenStream) -> TokenStream {
15  let cmd = parse_macro_input!(s as Command);
16
17  cmd.item.into_token_stream().into()
18}
19
20#[proc_macro_derive(TauriType, attributes(namespace))]
21pub fn ty(s: TokenStream) -> TokenStream {
22  parse_macro_input!(s as Ty);
23
24  TokenStream::new()
25}
26
27#[proc_macro]
28pub fn generate_invoke(s: TokenStream) -> TokenStream {
29  let Invoke { item } = parse_macro_input!(s as Invoke);
30
31  quote! {
32    tauri::generate_handler![#item]
33  }
34  .into()
35}