using System; namespace AutoIngest.Engine { /// /// Human-readable byte formatting — one source of truth used by the import pipeline, the /// retention sweep, and the settings UI. Switch expression: single exit, no magic numbers /// inline at call sites, scales from bytes to gigabytes. /// public static class FileSize { const long KB = 1024; const long MB = 1024 * 1024; const long GB = 1024 * 1024 * 1024; public static string Format(long bytes) => bytes switch { < KB => $"{bytes} B", < MB => $"{bytes / (double)KB:F1} KB", < GB => $"{bytes / (double)MB:F1} MB", _ => $"{bytes / (double)GB:F2} GB" }; } }