Skip to content

Commit

Permalink
refactor: share DataSizeMeasure interface; minor disk provider rena…
Browse files Browse the repository at this point in the history
…ming
  • Loading branch information
lars-berger committed Nov 14, 2024
1 parent 0a600f6 commit f28de0c
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 36 deletions.
17 changes: 5 additions & 12 deletions packages/client-api/src/providers/disk/disk-provider-types.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type { DataSizeMeasure } from '~/utils';
import type { Provider } from '../create-base-provider';

export interface DiskProviderConfig {
Expand All @@ -12,23 +13,15 @@ export interface DiskProviderConfig {
export type DiskProvider = Provider<DiskProviderConfig, DiskOutput>;

export interface Disk {
name: string;
name: string | null;
fileSystem: string;
mountPoint: string;
totalSpace: DiskSizeMeasure;
availableSpace: DiskSizeMeasure;
totalSpace: DataSizeMeasure;
availableSpace: DataSizeMeasure;
isRemovable: boolean;
diskType: string;
driveType: string;
}

export interface DiskOutput {
disks: Disk[];
}

export interface DiskSizeMeasure {
bytes: number;
siValue: number;
siUnit: string;
iecValue: number;
iecUnit: string;
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type { DataSizeMeasure } from '~/utils';
import type { Provider } from '../create-base-provider';

export interface NetworkProviderConfig {
Expand Down Expand Up @@ -62,16 +63,8 @@ export type InterfaceType =
| 'bridge';

export interface NetworkTraffic {
received: NetworkTrafficMeasure;
totalReceived: NetworkTrafficMeasure;
transmitted: NetworkTrafficMeasure;
totalTransmitted: NetworkTrafficMeasure;
}

export interface NetworkTrafficMeasure {
bytes: number;
siValue: number;
siUnit: string;
iecValue: number;
iecUnit: string;
received: DataSizeMeasure;
totalReceived: DataSizeMeasure;
transmitted: DataSizeMeasure;
totalTransmitted: DataSizeMeasure;
}
7 changes: 7 additions & 0 deletions packages/client-api/src/utils/data-size-measure.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export interface DataSizeMeasure {
bytes: number;
siValue: number;
siUnit: string;
iecValue: number;
iecUnit: string;
}
1 change: 1 addition & 0 deletions packages/client-api/src/utils/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export * from './create-logger';
export * from './data-size-measure';
export * from './deferred';
export * from './get-coordinate-distance';
export * from './simple-hash';
25 changes: 13 additions & 12 deletions packages/desktop/src/providers/disk/disk_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,19 @@ pub struct DiskProviderConfig {
#[derive(Debug, Clone, PartialEq, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DiskOutput {
pub disks: Vec<DiskInner>,
pub disks: Vec<Disk>,
}

#[derive(Debug, Clone, PartialEq, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DiskInner {
pub name: String,
pub struct Disk {
pub name: Option<String>,
pub file_system: String,
pub mount_point: String,
pub total_space: DiskSizeMeasure,
pub available_space: DiskSizeMeasure,
pub is_removable: bool,
pub disk_type: String,
pub drive_type: String,
}

pub struct DiskProvider {
Expand Down Expand Up @@ -65,25 +65,26 @@ impl DiskProvider {
let mut disks = self.system.lock().await;
disks.refresh();

let list: Vec<DiskInner> = disks
let disks = disks
.iter()
.map(|disk| -> anyhow::Result<DiskInner> {
Ok(DiskInner {
name: disk.name().to_string_lossy().to_string(),
.map(|disk| -> anyhow::Result<Disk> {
let name = disk.name().to_string_lossy().to_string();

Ok(Disk {
name: (!name.is_empty()).then_some(name),
file_system: disk.file_system().to_string_lossy().to_string(),
mount_point: disk.mount_point().to_string_lossy().to_string(),
total_space: Self::to_disk_size_measure(disk.total_space())?,
available_space: Self::to_disk_size_measure(
disk.available_space(),
)?,
is_removable: disk.is_removable(),
disk_type: disk.kind().to_string(),
drive_type: disk.kind().to_string(),
})
})
.collect::<anyhow::Result<Vec<DiskInner>>>()?;
.collect::<anyhow::Result<Vec<Disk>>>()?;

let output = DiskOutput { disks: list };
Ok(ProviderOutput::Disk(output))
Ok(ProviderOutput::Disk(DiskOutput { disks }))
}

fn to_disk_size_measure(bytes: u64) -> anyhow::Result<DiskSizeMeasure> {
Expand Down

0 comments on commit f28de0c

Please sign in to comment.