diff --git a/src/operations.rs b/src/operations.rs index 0481688..f29084a 100644 --- a/src/operations.rs +++ b/src/operations.rs @@ -22,6 +22,25 @@ pub struct FileInfo { pub modified: Option, } +impl FileInfo { + pub fn format_size(&self) -> String { + let bytes = self.size; + if bytes < 1024 { + format!("{} B", bytes) + } else if bytes < 1024 * 1024 { + format!("{:.1} KB", bytes as f64 / 1024.0) + } else if bytes < 1024 * 1024 * 1024 { + format!("{:.1} MB", bytes as f64 / (1024.0 * 1024.0)) + } else { + format!("{:.2} GB", bytes as f64 / (1024.0 * 1024.0 * 1024.0)) + } + } + + pub fn icon(&self) -> &'static str { + if self.is_dir { "📁" } else { "📄" } + } +} + pub mod files; /// === Модуль для операций синхронизации === @@ -68,6 +87,7 @@ pub struct DeleteOptions { } pub mod sync; + /// === Модуль для поиска === #[derive(Debug, Default)]