123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
- // SPDX-License-Identifier: Apache-2.0
- // SPDX-License-Identifier: MIT
- extern crate proc_macro;
- use crate::context::ContextItems;
- use proc_macro::TokenStream;
- use syn::parse_macro_input;
- mod command;
- #[macro_use]
- mod context;
- /// Mark a function as a command handler. It creates a wrapper function with the necessary glue code.
- ///
- /// # Stability
- /// The output of this macro is managed internally by Tauri,
- /// and should not be accessed directly on normal applications.
- /// It may have breaking changes in the future.
- #[proc_macro_attribute]
- pub fn command(attributes: TokenStream, item: TokenStream) -> TokenStream {
- command::wrapper(attributes, item)
- }
- #[proc_macro]
- pub fn generate_handler(item: TokenStream) -> TokenStream {
- parse_macro_input!(item as command::Handler).into()
- }
- /// Reads a Tauri config file and generates a `::tauri::Context` based on the content.
- ///
- /// # Stability
- /// The output of this macro is managed internally by Tauri,
- /// and should not be accessed directly on normal applications.
- /// It may have breaking changes in the future.
- #[proc_macro]
- pub fn generate_context(items: TokenStream) -> TokenStream {
- // this macro is exported from the context module
- let path = parse_macro_input!(items as ContextItems);
- context::generate_context(path).into()
- }
|