24 lines
617 B
C#
24 lines
617 B
C#
namespace Млаумчерб.Клиент.сеть;
|
||
|
||
public record struct DataSize(long Bytes)
|
||
{
|
||
static string BytesToHumanReadable(long bytes)
|
||
{
|
||
long K = bytes / 1024;
|
||
if (K == 0)
|
||
return $"{bytes}b";
|
||
float M = K / 1024f;
|
||
if (M < 1)
|
||
return $"{K:N1}Kb";
|
||
float G = M / 1024f;
|
||
if (G < 1)
|
||
return $"{M:N1}Mb";
|
||
return $"{G:N1}Gb";
|
||
}
|
||
|
||
public override string ToString() => BytesToHumanReadable(Bytes);
|
||
|
||
public static implicit operator DataSize(long bytes) => new DataSize(bytes);
|
||
}
|
||
|