pub struct PartitionStatistics {
pub total_partitions: usize,
pub bootable_partitions: usize,
pub fat_partitions: usize,
pub linux_partitions: usize,
pub hidden_partitions: usize,
pub extended_partitions: usize,
pub unknown_partitions: usize,
pub total_used_sectors: Size,
pub largest_partition_sectors: u32,
pub smallest_partition_sectors: u32,
}Expand description
Comprehensive statistics about partitions in an MBR.
This structure provides detailed statistical information about the partitions present in an MBR, including counts by type, size information, and bootability status. It’s useful for disk analysis, partition management tools, and system diagnostics.
§Fields
§Partition Counts
total_partitions- Total number of valid partitionsBootable_partitions- Number of partitions marked as bootableFat_partitions- Number of FAT file system partitions (FAT16, FAT32, etc.)Linux_partitions- Number of Linux-type partitionsHidden_partitions- Number of hidden partitionsExtended_partitions- Number of extended partitionsUnknown_partitions- Number of partitions with unknown/unrecognized types
§Size Information
Total_used_sectors- Total sectors used by all partitionsLargest_partition_sectors- Size of the largest partition in sectorsSmallest_partition_sectors- Size of the smallest partition in sectors
§Examples
extern crate alloc;
use file_system::{mbr::{Mbr, PartitionKind, PartitionStatistics}, MemoryDevice};
let device = MemoryDevice::<512>::new(4 * 1024 * 1024);
// Create an MBR with some partitions
let mut mbr = Mbr::new_with_signature(0x12345678);
mbr.add_partition(PartitionKind::Fat32Lba, 2048, 1024, true).unwrap();
mbr.add_partition(PartitionKind::Linux, 4096, 2048, false).unwrap();
mbr.write_to_device(&device).unwrap();
// Read it back and get statistics
let mbr = Mbr::read_from_device(&device).unwrap();
let stats = mbr.get_statistics();
println!("Total partitions: {}", stats.total_partitions);
println!("Bootable partitions: {}", stats.bootable_partitions);
println!("Total used sectors: {}", stats.total_used_sectors);Fields§
§total_partitions: usizeTotal number of valid partitions in the MBR.
bootable_partitions: usizeNumber of partitions marked as bootable.
fat_partitions: usizeNumber of FAT file system partitions.
linux_partitions: usizeNumber of Linux-type partitions.
Number of hidden partitions.
extended_partitions: usizeNumber of extended partitions.
unknown_partitions: usizeNumber of partitions with unknown types.
total_used_sectors: SizeTotal sectors used by all partitions.
largest_partition_sectors: u32Size of the largest partition in sectors.
smallest_partition_sectors: u32Size of the smallest partition in sectors.
Trait Implementations§
Source§impl Clone for PartitionStatistics
impl Clone for PartitionStatistics
Source§fn clone(&self) -> PartitionStatistics
fn clone(&self) -> PartitionStatistics
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PartitionStatistics
impl RefUnwindSafe for PartitionStatistics
impl Send for PartitionStatistics
impl Sync for PartitionStatistics
impl Unpin for PartitionStatistics
impl UnwindSafe for PartitionStatistics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more