disk/
disk.rs

1// Required features: disk
2
3use libscu::hardware::disk;
4
5fn main() {
6    if let Ok(all_drives) = disk::fetch_all() {
7        for mut disk in all_drives {
8            println!("Device: {:?}", disk.dev_path);
9            if let Some(model) = disk.model.clone() {
10                println!("- Model: {model}");
11            }
12            println!("- Size: {:.1}GiB", disk.size.gb);
13            println!("- Technology: {:?}", disk.technology);
14            println!("- Is removable: {}", disk.removable);
15            if disk.fetch_table_type().is_ok() {
16                println!("- Partition table: {:?}", disk.partition_table_type);
17            }
18            match disk.fetch_partitions() {
19                Ok(_) => {
20                    if !disk.partitions.is_empty() {
21                        disk.sort_partitions();
22                        println!("- Partitions:");
23                        for partition in disk.partitions.clone().into_iter() {
24                            println!("  Device: {}", partition.dev_path.to_string_lossy());
25                            println!("  - Partition number: {}", partition.number);
26                            println!("  - Size: {:.1}GiB", partition.size.gb);
27                            println!("  - Is read-only: {}", partition.readonly);
28                        }
29                    }
30                }
31                Err(err) => eprintln!("encountered error during partitions fetching: {err:#?}"),
32            }
33        }
34    } else {
35        println!("Platform not supported.");
36    }
37}