use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct DirListing {
#[serde(default)]
pub right_files: FilePane,
#[serde(default)]
pub status: i64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FilePane {
#[serde(default)]
pub files: Option<Vec<FileEntry>>,
#[serde(default)]
pub permission_mask: i64,
#[serde(default)]
pub status: i64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct FileEntry {
#[serde(default)]
pub name: String,
#[serde(default)]
pub path: String,
#[serde(default)]
pub size: i64,
#[serde(default)]
pub file_type: i64,
#[serde(default)]
pub ext: String,
#[serde(default)]
pub mtime: i64,
#[serde(default)]
pub ctime: i64,
#[serde(default)]
pub owner: String,
#[serde(default)]
pub permission_mask: i64,
}
impl FileEntry {
#[must_use]
pub const fn is_dir(&self) -> bool {
self.file_type == 1
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct Volume {
#[serde(default)]
pub name: String,
#[serde(default)]
pub path: String,
#[serde(default)]
pub fs_type: String,
#[serde(default)]
pub all: i64,
#[serde(default)]
pub used: i64,
#[serde(default)]
pub free: i64,
}