@@ -115,9 +115,7 @@ pub fn is_framework() -> bool {
115115 return maker == "Framework" ;
116116 }
117117
118- let smbios = if let Some ( smbios) = get_smbios ( ) {
119- smbios
120- } else {
118+ let Some ( smbios) = get_smbios ( ) else {
121119 return false ;
122120 } ;
123121
@@ -137,44 +135,38 @@ pub fn get_product_name() -> Option<String> {
137135 return Some ( product) ;
138136 }
139137
140- let smbios = get_smbios ( ) ;
141- if smbios. is_none ( ) {
138+ let Some ( smbios) = get_smbios ( ) else {
142139 println ! ( "Failed to find SMBIOS" ) ;
143140 return None ;
144- }
145- smbios. unwrap ( ) . structures ( ) . find_map ( |result| {
146- if let Ok ( Structure :: System ( sys) ) = result {
147- if !sys. product . is_empty ( ) {
148- return Some ( sys. product . to_string ( ) ) ;
149- }
150- }
151- None
141+ } ;
142+ smbios. structures ( ) . find_map ( |result| match result {
143+ Ok ( Structure :: System ( sys) ) if !sys. product . is_empty ( ) => Some ( sys. product . to_string ( ) ) ,
144+ _ => None ,
152145 } )
153146}
154147
155148pub fn get_baseboard_version ( ) -> Option < ConfigDigit0 > {
156- let smbios = get_smbios ( ) ;
157- if smbios. is_none ( ) {
149+ let Some ( smbios) = get_smbios ( ) else {
158150 error ! ( "Failed to find SMBIOS" ) ;
159151 return None ;
160- }
161- smbios. unwrap ( ) . structures ( ) . find_map ( |result| {
162- if let Ok ( Structure :: BaseBoard ( board) ) = result {
163- let version = board. version ;
164- if !version. is_empty ( ) {
165- // Assumes it's ASCII, which is guaranteed by SMBIOS
166- let config_digit0 = & version[ 0 ..1 ] ;
167- let config_digit0 = u8:: from_str_radix ( config_digit0, 16 ) ;
168- if let Ok ( version_config) =
169- config_digit0. map ( <ConfigDigit0 as FromPrimitive >:: from_u8)
170- {
171- return version_config;
172- } else {
173- debug ! ( " Invalid BaseBoard Version: {}'" , version) ;
174- }
152+ } ;
153+ smbios. structures ( ) . find_map ( |result| {
154+ let Ok ( Structure :: BaseBoard ( board) ) = result else {
155+ return None ;
156+ } ;
157+ let version = board. version ;
158+ if version. is_empty ( ) {
159+ return None ;
160+ }
161+ // Assumes it's ASCII, which is guaranteed by SMBIOS
162+ let config_digit0 = u8:: from_str_radix ( & version[ 0 ..1 ] , 16 ) ;
163+ match config_digit0. map ( <ConfigDigit0 as FromPrimitive >:: from_u8) {
164+ Ok ( version_config) => version_config,
165+ Err ( _) => {
166+ debug ! ( " Invalid BaseBoard Version: {}'" , version) ;
167+ None
175168 }
176169 }
177- None
178170 } )
179171}
180172
0 commit comments