File tree Expand file tree Collapse file tree 4 files changed +18
-39
lines changed Expand file tree Collapse file tree 4 files changed +18
-39
lines changed Original file line number Diff line number Diff line change @@ -666,10 +666,10 @@ macro_rules! csr_field_enum {
666666 }
667667
668668 /// Attempts to convert a [`usize`] into a valid variant.
669- pub const fn from_usize( val: usize ) -> Option <Self > {
669+ pub const fn from_usize( val: usize ) -> $crate :: result :: Result <Self > {
670670 match val {
671- $( $value => Some ( Self :: $variant) , ) +
672- _ => None ,
671+ $( $value => Ok ( Self :: $variant) , ) +
672+ _ => Err ( $crate :: result :: Error :: InvalidVariant ( val ) ) ,
673673 }
674674 }
675675
@@ -1036,10 +1036,7 @@ macro_rules! read_only_csr_field {
10361036 $field_end - $field_start + 1 ,
10371037 ) ;
10381038
1039- $field_ty:: from_usize( value) . ok_or( $crate:: result:: Error :: InvalidFieldVariant {
1040- field: stringify!( $field) ,
1041- value,
1042- } )
1039+ $field_ty:: from_usize( value)
10431040 } else {
10441041 Err ( $crate:: result:: Error :: IndexOutOfBounds {
10451042 index: $field_start,
Original file line number Diff line number Diff line change @@ -114,13 +114,7 @@ fn test_mtest_read_only() {
114114 assert_eq ! ( mtest. multi_field( ) , 0x0 ) ;
115115 assert_eq ! ( mtest. try_multi_field( ) , Ok ( 0x0 ) ) ;
116116
117- assert_eq ! (
118- mtest. try_field_enum( ) ,
119- Err ( Error :: InvalidFieldVariant {
120- field: "field_enum" ,
121- value: 0 ,
122- } )
123- ) ;
117+ assert_eq ! ( mtest. try_field_enum( ) , Err ( Error :: InvalidVariant ( 0 ) ) , ) ;
124118
125119 [
126120 MtestFieldEnum :: Field1 ,
@@ -137,11 +131,5 @@ fn test_mtest_read_only() {
137131
138132 // check that setting an invalid variant returns `None`
139133 mtest = Mtest :: from_bits ( 0xbad << 7 ) ;
140- assert_eq ! (
141- mtest. try_field_enum( ) ,
142- Err ( Error :: InvalidFieldVariant {
143- field: "field_enum" ,
144- value: 13 ,
145- } )
146- ) ;
134+ assert_eq ! ( mtest. try_field_enum( ) , Err ( Error :: InvalidVariant ( 13 ) ) , ) ;
147135}
Original file line number Diff line number Diff line change @@ -135,13 +135,7 @@ fn test_mtest_read_write() {
135135 assert_eq ! ( mtest. multi_field( ) , 0x0 ) ;
136136 assert_eq ! ( mtest. try_multi_field( ) , Ok ( 0x0 ) ) ;
137137
138- assert_eq ! (
139- mtest. try_field_enum( ) ,
140- Err ( Error :: InvalidFieldVariant {
141- field: "field_enum" ,
142- value: 0 ,
143- } )
144- ) ;
138+ assert_eq ! ( mtest. try_field_enum( ) , Err ( Error :: InvalidVariant ( 0 ) ) , ) ;
145139
146140 [
147141 MtestFieldEnum :: Field1 ,
@@ -158,11 +152,5 @@ fn test_mtest_read_write() {
158152
159153 // check that setting an invalid variant returns `None`
160154 mtest = Mtest :: from_bits ( 0xbad << 7 ) ;
161- assert_eq ! (
162- mtest. try_field_enum( ) ,
163- Err ( Error :: InvalidFieldVariant {
164- field: "field_enum" ,
165- value: 13 ,
166- } )
167- ) ;
155+ assert_eq ! ( mtest. try_field_enum( ) , Err ( Error :: InvalidVariant ( 13 ) ) , ) ;
168156}
Original file line number Diff line number Diff line change 1- use crate :: result:: Result ;
1+ use crate :: result:: { Error , Result } ;
22
33write_only_csr ! {
44 /// test CSR register type
@@ -100,7 +100,10 @@ fn test_mtest_write_only() {
100100
101101 mtest = Mtest :: from_bits ( 0 ) ;
102102
103- assert_eq ! ( MtestFieldEnum :: from_usize( mtest. bits( ) >> 8 ) , None ) ;
103+ assert_eq ! (
104+ MtestFieldEnum :: from_usize( mtest. bits( ) >> 8 ) ,
105+ Err ( Error :: InvalidVariant ( 0 ) )
106+ ) ;
104107
105108 [
106109 MtestFieldEnum :: Field1 ,
@@ -116,10 +119,13 @@ fn test_mtest_write_only() {
116119 "field value: {variant:?}"
117120 ) ;
118121 mtest. set_field_enum ( variant) ;
119- assert_eq ! ( MtestFieldEnum :: from_usize( mtest. bits( ) >> 8 ) , Some ( variant) ) ;
122+ assert_eq ! ( MtestFieldEnum :: from_usize( mtest. bits( ) >> 8 ) , Ok ( variant) ) ;
120123 } ) ;
121124
122125 // check that setting an invalid variant returns `None`
123126 mtest = Mtest :: from_bits ( 0xbad << 8 ) ;
124- assert_eq ! ( MtestFieldEnum :: from_usize( mtest. bits( ) >> 8 ) , None ) ;
127+ assert_eq ! (
128+ MtestFieldEnum :: from_usize( mtest. bits( ) >> 8 ) ,
129+ Err ( Error :: InvalidVariant ( 13 ) )
130+ ) ;
125131}
You can’t perform that action at this time.
0 commit comments