use sos_core::events::FileEvent;
use sos_vault::secret::Secret;
use std::path::PathBuf;
#[derive(Debug, Clone)]
pub struct EncryptedFile {
pub size: u64,
pub digest: Vec<u8>,
}
#[derive(Debug)]
pub enum FileProgress {
Write {
name: String,
},
Move {
name: String,
},
Delete {
name: String,
},
}
#[derive(Debug)]
pub struct FileStorageDiff<'a> {
pub deleted: Vec<&'a Secret>,
pub unchanged: Vec<&'a Secret>,
}
#[derive(Debug, Clone)]
pub struct FileSource {
pub path: PathBuf,
pub name: String,
pub field_index: Option<usize>,
}
#[derive(Debug, Clone)]
pub struct FileStorageResult {
pub source: FileSource,
pub encrypted_file: EncryptedFile,
}
#[derive(Debug, Clone)]
pub enum FileMutationEvent {
Create {
result: FileStorageResult,
event: FileEvent,
},
Move(FileEvent),
Delete(FileEvent),
}