Esempio n. 1
0
        private static string FormatUnitBase10(double formattedSize, string unit, UnitStyle format)
        {
            if (formattedSize != 1.0D)
            {
                unit += "s";
            }

            if (format == UnitStyle.Smart || format == UnitStyle.Abbreviated)
            {
                return(unit[0] + "B");
            }
            else if (format == UnitStyle.Full)
            {
                return(unit);
            }
            else if (format == UnitStyle.FullLower)
            {
                return(unit.ToLowerInvariant());
            }
            else if (format == UnitStyle.AbbreviatedLower)
            {
                return(char.ToLowerInvariant(unit[0]) + "b");
            }

            throw new ArgumentException();
        }
Esempio n. 2
0
        public static string Format(long size, UnitBase @base = UnitBase.Base2, UnitStyle format = UnitStyle.Smart)
        {
            bool  neg      = size < 0;
            ulong fmt_size = size switch
            {
                // Math.Abs(long.MinValue) is out of range for long so we handle it separately
                long.MinValue => ((ulong)long.MaxValue) + 1,
                < 0 => (ulong)Math.Abs(size),
                _ => (ulong)size,
            };

            var formatted = Format(fmt_size, @base, format);

            return(neg ? "-" + formatted : formatted);
        }
Esempio n. 3
0
        static private string PrintBytes(ulong size, UnitStyle format)
        {
            switch (format)
            {
            case UnitStyle.Abbreviated: return($"{size} B");

            case UnitStyle.AbbreviatedLower: return($"{size} b");

            case UnitStyle.Full: return(size == 1 ? $"{size} Byte" : $"{size} Bytes");

            case UnitStyle.Smart:
            case UnitStyle.FullLower:
                return(size == 1 ? $"{size} byte" : $"{size} bytes");
            }

            throw new ArgumentException();
        }
Esempio n. 4
0
 public static string Format(ulong size, UnitBase @base = UnitBase.Base2, UnitStyle format = UnitStyle.Smart)
 {
     if (@base == UnitBase.Base2)
     {
         var searchIndex = Array.BinarySearch(Base2Map, new FormattingRule(size, null), new FormattingRuleComparer());
         if (searchIndex < 0)
         {
             searchIndex = ~searchIndex;
             return(Base2Map[searchIndex].FormatDelegate(size, @base, format));
         }
         return(Base2Map[searchIndex + 1].FormatDelegate(size, @base, format));
     }
     else
     {
         var searchIndex = Array.BinarySearch(Base10Map, new FormattingRule(size, null), new FormattingRuleComparer());
         if (searchIndex < 0)
         {
             searchIndex = ~searchIndex;
             return(Base10Map[searchIndex].FormatDelegate(size, @base, format));
         }
         return(Base10Map[searchIndex + 1].FormatDelegate(size, @base, format));
     }
 }
Esempio n. 5
0
 public string Format(UnitBase @base = UnitBase.Base2, UnitStyle format = UnitStyle.Smart)
 {
     return(Format(TotalBytes, @base, format));
 }