@@ -951,13 +951,13 @@ fn smbios_info() {
951
951
if let Some ( version) = dmidecode_string_val ( & data. version ( ) ) {
952
952
// Assumes it's ASCII, which is guaranteed by SMBIOS
953
953
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)
957
957
{
958
958
println ! ( " Version: {:?} ({})" , version_config, version) ;
959
959
} else {
960
- println ! ( " Version: {} " , version) ;
960
+ println ! ( " Version: '{}' " , version) ;
961
961
}
962
962
}
963
963
if let Some ( manufacturer) = dmidecode_string_val ( & data. manufacturer ( ) ) {
@@ -972,10 +972,37 @@ fn smbios_info() {
972
972
if let Some ( sku_number) = dmidecode_string_val ( & data. sku_number ( ) ) {
973
973
println ! ( " SKU Number: {}" , sku_number) ;
974
974
}
975
+ if let Some ( sn) = dmidecode_string_val ( & data. serial_number ( ) ) {
976
+ println ! ( " Serial Number:{}" , sn) ;
977
+ }
975
978
if let Some ( family) = dmidecode_string_val ( & data. family ( ) ) {
976
979
println ! ( " Family: {}" , family) ;
977
980
}
978
981
}
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
+ }
979
1006
_ => { }
980
1007
}
981
1008
}
0 commit comments