Skip to content

Commit 96c496e

Browse files
committed
refactor(macros): reuse code
1 parent 67177aa commit 96c496e

4 files changed

Lines changed: 16 additions & 42 deletions

File tree

compio-macros/src/item_fn.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ pub(crate) struct RawBodyItemFn {
112112
pub vis: Visibility,
113113
pub sig: Signature,
114114
pub body: TokenStream,
115+
pub test: bool,
115116
}
116117

117118
impl RawBodyItemFn {
@@ -122,14 +123,22 @@ impl RawBodyItemFn {
122123
vis,
123124
sig,
124125
body,
126+
test: false,
125127
}
126128
}
127129

128130
pub fn set_args(&mut self, args: RawAttr) {
129131
self.args = args;
130132
}
131133

134+
pub fn set_test(&mut self, test: bool) {
135+
self.test = test;
136+
}
137+
132138
pub fn emit_fn_to_tokens(&self, tokens: &mut TokenStream) {
139+
if self.test {
140+
tokens.append_all(quote!(#[test]));
141+
}
133142
tokens.append_all(
134143
self.attrs
135144
.iter()

compio-macros/src/lib.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ mod item_fn;
99

1010
mod main_fn;
1111

12-
mod test_fn;
13-
1412
use proc_macro::TokenStream;
1513
use proc_macro_crate::{FoundCrate, crate_name};
1614
use proc_macro2::{Ident, Span};
@@ -27,8 +25,9 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
2725

2826
#[proc_macro_attribute]
2927
pub fn test(args: TokenStream, item: TokenStream) -> TokenStream {
30-
parse_macro_input!(item as test_fn::CompioTest)
28+
parse_macro_input!(item as main_fn::CompioMain)
3129
.with_args(parse_macro_input!(args as item_fn::RawAttr))
30+
.with_test(true)
3231
.into_token_stream()
3332
.into()
3433
}

compio-macros/src/main_fn.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ impl CompioMain {
1111
self.0.set_args(args);
1212
self
1313
}
14+
15+
pub fn with_test(mut self, test: bool) -> Self {
16+
self.0.set_test(test);
17+
self
18+
}
1419
}
1520

1621
impl Parse for CompioMain {

compio-macros/src/test_fn.rs

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)