use std::path::PathBuf;
use shadow_crypt_core::profile::SecurityProfile;
use crate::memory::SecureString;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum InputKind {
File,
Directory,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct EncryptionInputFile {
pub path: PathBuf,
pub filename: String,
pub size: u64,
pub kind: InputKind,
}
pub struct EncryptionInput {
pub files: Vec<EncryptionInputFile>,
pub password: SecureString,
pub security_profile: SecurityProfile,
pub output_dir: PathBuf,
pub quiet: bool,
pub delete: bool,
}
impl EncryptionInput {
pub fn new(
files: Vec<EncryptionInputFile>,
password: SecureString,
security_profile: SecurityProfile,
output_dir: PathBuf,
quiet: bool,
delete: bool,
) -> Self {
Self {
files,
password,
security_profile,
output_dir,
quiet,
delete,
}
}
}
pub struct EncryptionOutputFile {
pub path: PathBuf,
pub filename: String,
}