@@ -951,13 +951,13 @@ fn smbios_info() {
951951 if let Some ( version) = dmidecode_string_val ( & data. version ( ) ) {
952952 // Assumes it's ASCII, which is guaranteed by SMBIOS
953953 let config_digit0 = & version[ 0 ..1 ] ;
954- let config_digit0 = u8:: from_str_radix ( config_digit0, 16 ) . unwrap ( ) ;
955- if let Some ( version_config) =
956- <ConfigDigit0 as FromPrimitive >:: from_u8 ( config_digit0 )
954+ let config_digit0 = u8:: from_str_radix ( config_digit0, 16 ) ;
955+ if let Ok ( version_config) =
956+ config_digit0 . map ( <ConfigDigit0 as FromPrimitive >:: from_u8)
957957 {
958958 println ! ( " Version: {:?} ({})" , version_config, version) ;
959959 } else {
960- println ! ( " Version: {} " , version) ;
960+ println ! ( " Version: '{}' " , version) ;
961961 }
962962 }
963963 if let Some ( manufacturer) = dmidecode_string_val ( & data. manufacturer ( ) ) {
@@ -972,10 +972,37 @@ fn smbios_info() {
972972 if let Some ( sku_number) = dmidecode_string_val ( & data. sku_number ( ) ) {
973973 println ! ( " SKU Number: {}" , sku_number) ;
974974 }
975+ if let Some ( sn) = dmidecode_string_val ( & data. serial_number ( ) ) {
976+ println ! ( " Serial Number:{}" , sn) ;
977+ }
975978 if let Some ( family) = dmidecode_string_val ( & data. family ( ) ) {
976979 println ! ( " Family: {}" , family) ;
977980 }
978981 }
982+ DefinedStruct :: BaseBoardInformation ( data) => {
983+ println ! ( "BaseBoard Information" ) ;
984+ if let Some ( version) = dmidecode_string_val ( & data. version ( ) ) {
985+ // Assumes it's ASCII, which is guaranteed by SMBIOS
986+ let config_digit0 = & version[ 0 ..1 ] ;
987+ let config_digit0 = u8:: from_str_radix ( config_digit0, 16 ) ;
988+ if let Ok ( version_config) =
989+ config_digit0. map ( <ConfigDigit0 as FromPrimitive >:: from_u8)
990+ {
991+ println ! ( " Version: {:?} ({})" , version_config, version) ;
992+ } else {
993+ println ! ( " Version: '{}'" , version) ;
994+ }
995+ }
996+ if let Some ( manufacturer) = dmidecode_string_val ( & data. manufacturer ( ) ) {
997+ println ! ( " Manufacturer: {}" , manufacturer) ;
998+ }
999+ if let Some ( product_name) = dmidecode_string_val ( & data. product ( ) ) {
1000+ println ! ( " Product: {}" , product_name) ;
1001+ }
1002+ if let Some ( sn) = dmidecode_string_val ( & data. serial_number ( ) ) {
1003+ println ! ( " Serial Number:{}" , sn) ;
1004+ }
1005+ }
9791006 _ => { }
9801007 }
9811008 }
0 commit comments