Skip to main content

nimbuspulse_client/types/
files.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
4pub enum FmRoot {
5    #[default]
6    DcsSavedGames,
7    AerosimicsAtcAbm,
8}
9
10#[derive(Debug, Serialize)]
11pub(crate) struct FilePathQuery {
12    pub root: FmRoot,
13    pub path: String,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
17pub struct FileInfo {
18    pub name: String,
19    pub path: String,
20    pub is_directory: bool,
21    pub size: Option<u64>,
22    pub modified: Option<u64>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
26pub struct FileListResponse {
27    pub files: Vec<FileInfo>,
28    pub current_path: String,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
32pub struct MoveFileRequest {
33    pub root: FmRoot,
34    pub source: String,
35    pub destination: String,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
39pub struct FileUploadRequest {
40    pub path: String,
41    pub content: Vec<u8>,
42    pub overwrite: bool,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
46pub struct FileDownloadResponse {
47    pub content: Vec<u8>,
48    pub filename: String,
49}