File tree Expand file tree Collapse file tree 2 files changed +38
-37
lines changed Expand file tree Collapse file tree 2 files changed +38
-37
lines changed Original file line number Diff line number Diff line change 1
- macro_rules! enum_from_u32 {
2
- ( $( #[ $attr: meta] ) * pub enum $name: ident {
3
- $( $variant: ident = $e: expr, ) *
4
- } ) => {
5
- $( #[ $attr] ) *
6
- pub enum $name {
7
- $( $variant = $e) ,*
8
- }
9
-
10
- impl $name {
11
- pub fn from_u32( u: u32 ) -> Option <$name> {
12
- $( if u == $name:: $variant as u32 {
13
- return Some ( $name:: $variant)
14
- } ) *
15
- None
16
- }
17
- }
18
- } ;
19
- ( $( #[ $attr: meta] ) * pub enum $name: ident {
20
- $( $variant: ident, ) *
21
- } ) => {
22
- $( #[ $attr] ) *
23
- pub enum $name {
24
- $( $variant, ) *
25
- }
26
-
27
- impl $name {
28
- pub fn from_u32( u: u32 ) -> Option <$name> {
29
- $( if u == $name:: $variant as u32 {
30
- return Some ( $name:: $variant)
31
- } ) *
32
- None
33
- }
34
- }
35
- }
36
- }
37
-
38
1
#[ macro_export]
39
2
macro_rules! bug {
40
3
( ) => ( bug!( "impossible case reached" ) ) ;
Original file line number Diff line number Diff line change @@ -17,3 +17,41 @@ macro_rules! static_assert_size {
17
17
const _: [ ( ) ; $size] = [ ( ) ; :: std:: mem:: size_of:: <$ty>( ) ] ;
18
18
} ;
19
19
}
20
+
21
+ #[ macro_export]
22
+ macro_rules! enum_from_u32 {
23
+ ( $( #[ $attr: meta] ) * pub enum $name: ident {
24
+ $( $variant: ident = $e: expr, ) *
25
+ } ) => {
26
+ $( #[ $attr] ) *
27
+ pub enum $name {
28
+ $( $variant = $e) ,*
29
+ }
30
+
31
+ impl $name {
32
+ pub fn from_u32( u: u32 ) -> Option <$name> {
33
+ $( if u == $name:: $variant as u32 {
34
+ return Some ( $name:: $variant)
35
+ } ) *
36
+ None
37
+ }
38
+ }
39
+ } ;
40
+ ( $( #[ $attr: meta] ) * pub enum $name: ident {
41
+ $( $variant: ident, ) *
42
+ } ) => {
43
+ $( #[ $attr] ) *
44
+ pub enum $name {
45
+ $( $variant, ) *
46
+ }
47
+
48
+ impl $name {
49
+ pub fn from_u32( u: u32 ) -> Option <$name> {
50
+ $( if u == $name:: $variant as u32 {
51
+ return Some ( $name:: $variant)
52
+ } ) *
53
+ None
54
+ }
55
+ }
56
+ }
57
+ }
You can’t perform that action at this time.
0 commit comments