Skip to content

Commit 06392c6

Browse files
committed
Simplify implementation of libc_enum! with vis metavariables
1 parent 54cd6fe commit 06392c6

File tree

1 file changed

+9
-60
lines changed

1 file changed

+9
-60
lines changed

src/macros.rs

Lines changed: 9 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -81,59 +81,26 @@ macro_rules! libc_bitflags {
8181
/// }
8282
/// ```
8383
macro_rules! libc_enum {
84-
// (non-pub) Exit rule.
84+
// Exit rule.
8585
(@make_enum
8686
{
87+
$v:vis
8788
name: $BitFlags:ident,
8889
attrs: [$($attrs:tt)*],
8990
entries: [$($entries:tt)*],
9091
}
9192
) => {
9293
$($attrs)*
9394
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
94-
enum $BitFlags {
95+
$v enum $BitFlags {
9596
$($entries)*
9697
}
9798
};
9899

99-
// (pub) Exit rule.
100-
(@make_enum
101-
{
102-
pub,
103-
name: $BitFlags:ident,
104-
attrs: [$($attrs:tt)*],
105-
entries: [$($entries:tt)*],
106-
}
107-
) => {
108-
$($attrs)*
109-
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
110-
pub enum $BitFlags {
111-
$($entries)*
112-
}
113-
};
114-
115-
// (non-pub) Done accumulating.
116-
(@accumulate_entries
117-
{
118-
name: $BitFlags:ident,
119-
attrs: $attrs:tt,
120-
},
121-
$entries:tt;
122-
) => {
123-
libc_enum! {
124-
@make_enum
125-
{
126-
name: $BitFlags,
127-
attrs: $attrs,
128-
entries: $entries,
129-
}
130-
}
131-
};
132-
133-
// (pub) Done accumulating.
100+
// Done accumulating.
134101
(@accumulate_entries
135102
{
136-
pub,
103+
$v:vis
137104
name: $BitFlags:ident,
138105
attrs: $attrs:tt,
139106
},
@@ -142,7 +109,7 @@ macro_rules! libc_enum {
142109
libc_enum! {
143110
@make_enum
144111
{
145-
pub,
112+
$v
146113
name: $BitFlags,
147114
attrs: $attrs,
148115
entries: $entries,
@@ -217,35 +184,17 @@ macro_rules! libc_enum {
217184
}
218185
};
219186

220-
// (non-pub) Entry rule.
221-
(
222-
$(#[$attr:meta])*
223-
enum $BitFlags:ident {
224-
$($vals:tt)*
225-
}
226-
) => {
227-
libc_enum! {
228-
@accumulate_entries
229-
{
230-
name: $BitFlags,
231-
attrs: [$(#[$attr])*],
232-
},
233-
[];
234-
$($vals)*
235-
}
236-
};
237-
238-
// (pub) Entry rule.
187+
// Entry rule.
239188
(
240189
$(#[$attr:meta])*
241-
pub enum $BitFlags:ident {
190+
$v:vis enum $BitFlags:ident {
242191
$($vals:tt)*
243192
}
244193
) => {
245194
libc_enum! {
246195
@accumulate_entries
247196
{
248-
pub,
197+
$v
249198
name: $BitFlags,
250199
attrs: [$(#[$attr])*],
251200
},

0 commit comments

Comments
 (0)