1
0
mirror of https://github.com/chylex/Query.git synced 2025-08-18 20:24:54 +02:00
Files
AppCalc
AppConv
General
Units
Angle.cs
Area.cs
Length.cs
Radix.cs
Storage.cs
Temperature.cs
Volume.cs
Weight.cs
Utils
App.cs
AppConv.csproj
AppMeme
AppWindows
Base
Calculator
Query
.gitignore
Directory.Build.props
Query.sln
icon.ico
Query/AppConv/Units/Storage.cs
2024-08-05 20:42:15 +02:00

34 lines
1.0 KiB
C#

using System;
using System.Diagnostics.CodeAnalysis;
using AppConv.General;
using AppConv.Utils;
namespace AppConv.Units;
sealed class Storage : DecimalUnitConverterSimple<Storage.Units> {
internal enum Units {
Invalid = 0,
Byte,
Bit
}
[SuppressMessage("ReSharper", "PossibleLossOfFraction")]
public Storage() {
AddUnit(Units.Byte, "B", "byte", "bytes");
AddUnit(Units.Bit, "b", "bit", "bits");
SetUnitFactor(Units.Bit, 8M);
SetInvalidUnitObject(Units.Invalid);
var bitConversionProperties = new SI.ExtededProperties {
FactorPredicate = static factor => factor > 0 && factor % 3 == 0,
FromFunctionGenerator = static exponent => () => (decimal) Math.Pow(1024, -(exponent / 3)),
ToFunctionGenerator = static exponent => () => (decimal) Math.Pow(1024, exponent / 3)
};
SI.AddSupportCustom(Units.Byte, [ "B" ], [ "byte", "bytes" ], ConvertFrom, ConvertTo, Names, bitConversionProperties);
SI.AddSupportCustom(Units.Bit, [ "b" ], [ "bit", "bits" ], ConvertFrom, ConvertTo, Names, bitConversionProperties);
}
}