Skip to content

Commit 8a46b3a

Browse files
committed
chore: Add internal function for interface attribute macros
1 parent aae6fe6 commit 8a46b3a

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

crates/macros/src/lib.rs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,8 @@ mod syn_ext;
1414
mod zval;
1515

1616
use proc_macro::TokenStream;
17-
<<<<<<< HEAD
1817
use proc_macro2::TokenStream as TokenStream2;
19-
use syn::{DeriveInput, ItemConst, ItemEnum, ItemFn, ItemForeignMod, ItemImpl, ItemStruct};
20-
=======
21-
use syn::{
22-
parse_macro_input, DeriveInput, ItemConst, ItemFn, ItemForeignMod, ItemImpl, ItemStruct,
23-
ItemTrait,
24-
};
25-
>>>>>>> 1a0a9d6 (feat(macro): Add macro to declare interface from trait)
18+
use syn::{DeriveInput, ItemConst, ItemEnum, ItemFn, ItemForeignMod, ItemImpl, ItemStruct, ItemTrait};
2619

2720
extern crate proc_macro;
2821

@@ -349,13 +342,11 @@ fn php_enum_internal(_args: TokenStream2, input: TokenStream2) -> TokenStream2 {
349342

350343
#[proc_macro_attribute]
351344
pub fn php_interface(args: TokenStream, input: TokenStream) -> TokenStream {
352-
let input = parse_macro_input!(input as ItemTrait);
345+
php_interface_internal(args.into(), input.into()).into()
346+
}
353347

354-
if !args.is_empty() {
355-
return err!(input => "`#[php_interface]` not apply args")
356-
.to_compile_error()
357-
.into();
358-
}
348+
fn php_interface_internal(_args: TokenStream2, input: TokenStream2) -> TokenStream2 {
349+
let input = parse_macro_input2!(input as ItemTrait).into();
359350

360351
interface::parser(input)
361352
.unwrap_or_else(|e| e.to_compile_error())

0 commit comments

Comments
 (0)