Skip to main content

rustra_macros/
lib.rs

1//! # rustra-macros — rustra용 proc macro
2//!
3//! `#[command]` 속성 매크로와 `register!` / `build!` 매크로를 제공합니다.
4//!
5//! 직접 이 crate를 사용하지 말고 `rustra` crate를 통해 사용하세요:
6//!
7//! ```rust
8//! use rustra::prelude::*;
9//!
10//! #[bridge_type]
11//! struct AddInput { a: i64, b: i64 }
12//! #[bridge_type]
13//! struct AddOutput { sum: i64 }
14//!
15//! #[command]
16//! fn add_numbers(input: AddInput) -> Result<AddOutput> {
17//!     Ok(AddOutput { sum: input.a + input.b })
18//! }
19//! ```
20
21use proc_macro::TokenStream;
22use proc_macro2::TokenStream as TokenStream2;
23use quote::quote;
24use rustra_naming::snake_to_lower_camel;
25use syn::{
26    DeriveInput, GenericArgument, Ident, ItemFn, LitStr, PathArguments, ReturnType, Token, Type,
27    parse::Parse, parse::ParseStream, parse_macro_input,
28};
29
30include!("macro_command_support.rs");
31
32include!("macro_command.rs");
33
34include!("macro_register.rs");
35
36include!("macro_bridge_type.rs");
37
38include!("macro_build.rs");