use std::path::PathBuf;
use shadow_crypt_core::version::Version;
use crate::memory::SecureString;
pub struct ListingInput {
pub password: SecureString,
pub work_dir: PathBuf,
}
impl ListingInput {
pub fn new(password: SecureString, work_dir: PathBuf) -> Self {
Self { password, work_dir }
}
}
#[derive(Debug)]
pub struct ShadowFile {
pub path: PathBuf,
pub filename: String,
pub version: Version,
pub size: u64,
}
impl ShadowFile {
pub fn new(path: PathBuf, filename: String, version: Version, size: u64) -> Self {
Self {
path,
filename,
version,
size,
}
}
}
#[derive(Debug, Clone)]
pub struct ShadowFileInfo {
pub original_filename: Option<SecureString>,
pub obfuscated_filename: String,
pub version: Version,
pub size: u64,
}
impl ShadowFileInfo {
pub fn new(
original_filename: Option<SecureString>,
obfuscated_filename: String,
version: Version,
size: u64,
) -> Self {
Self {
original_filename,
obfuscated_filename,
version,
size,
}
}
}
pub struct FileInfoList {
pub items: Vec<ShadowFileInfo>,
}
impl FileInfoList {
pub fn new(items: Vec<ShadowFileInfo>) -> Self {
Self { items }
}
}