mac_expert_device

Crates.iomac_expert_device
lib.rsmac_expert_device
version0.1.8
sourcesrc
created_at2022-05-09 14:49:42.253787
updated_at2022-05-09 17:19:02.751795
descriptionGet MacOS hardware information through ioreg
homepage
repositoryhttps://github.com/cxping/mac_expert_device.git
max_upload_size
id583252
size28,131
chpin (cxping)

documentation

https://docs.rs/mac_expert_device/latest/x86_64-apple-darwin/mac_expert_device/all.html

README

GET Mac Hardware overview

  • IOPlatformUUID

Usage

To use this library, add the following to your Cargo.toml:


[dependencies]
mac_expert_device = "0.1"

Check out our documentation for more details on how to use this library.

Simple

fn main() {
   let platform_expert_device =  mac_expert_device::os::IOPlatformExpertDevice::new().unwrap();
   //
   println!("name:{}",platform_expert_device.name());
   println!("version:{}",platform_expert_device.version());
   println!("SerialNumber:{}",platform_expert_device.serial_number());
   println!("Manufacturer:{}",platform_expert_device.manufacturer());
   println!("IOBusyInterest:{}",platform_expert_device.io_busy_interest());
   println!("IOInterruptControllers:{}",platform_expert_device.io_interrupt_controllers());
   // println!("IOPlatformSystemSleepPolicy:{}",platform_expert_device.io_platform_system_sleep_policy());
   println!("IOPolledInterface:{}",platform_expert_device.io_polled_interface());
   println!("IOPlatformUuid:{}",platform_expert_device.io_platform_uuid());
}


IOPlatformExpertDevice

     +-o Root  <class IORegistryEntry, id xxxxxx, retain 17>
     +-o xxxxxx  <class IOPlatformExpertDevice, id xxxxxx, registered, matched, active, busy 0 (13368 ms), retain 44>
         {
           "IOInterruptSpecifiers" = (<xxxxx>)
           "IOPolledInterface" = "SMCPolledInterface is not serializable"
           "IOPlatformUUID" = "xxxxxx"
           "serial-number" = <xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
           "platform-feature" = <xxxxxx>
           "IOPlatformSystemSleepPolicy" = <xxxxxx>
           "IOBusyInterest" = "IOCommand is not serializable"
           "target-type" = <"Mac">
           "IOInterruptControllers" = ("xxxxxx")
           "name" = <"/">
           "version" = <"xxxxxx">
           "manufacturer" = <"Apple Inc.">
           "compatible" = <"xxxxxx">
           "product-name" = <"xxxxxx">
           "IOPlatformSerialNumber" = "xxxxxx"
           "IOConsoleSecurityInterest" = "IOCommand is not serializable"
           "clock-frequency" = <xxxxx>
           "model" = <"xx">
           "board-id" = <"xxxxxx">
           "system-type" = <02>
         }
Commit count: 23

cargo fmt