nimbuspulse-client 0.4.0

NimbusPulse API client
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
pub enum FmRoot {
    #[default]
    DcsSavedGames,
    AerosimicsAtcAbm,
}

#[derive(Debug, Serialize)]
pub(crate) struct FilePathQuery {
    pub root: FmRoot,
    pub path: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileInfo {
    pub name: String,
    pub path: String,
    pub is_directory: bool,
    pub size: Option<u64>,
    pub modified: Option<u64>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileListResponse {
    pub files: Vec<FileInfo>,
    pub current_path: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct MoveFileRequest {
    pub root: FmRoot,
    pub source: String,
    pub destination: String,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileUploadRequest {
    pub path: String,
    pub content: Vec<u8>,
    pub overwrite: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileDownloadResponse {
    pub content: Vec<u8>,
    pub filename: String,
}