namespace InnovEnergy.Lib.Units; using T = Percent; public readonly struct Percent { public static String Unit => "%"; public static String Symbol => "%"; // ?? public Percent(Decimal value) { if (value < 0) throw new ArgumentException(nameof(Frequency) + " cannot be negative", nameof(value)); Value = value; } // not generated public Decimal Value { get; } public override String ToString() => Value + Unit; // scalar multiplication public static Decimal operator *(Decimal scalar, T t) => scalar * t.Value/100m; public static Decimal operator *(T t, Decimal scalar) => scalar * t.Value/100m; // parallel public static Percent operator |(T left, T right) => new T((left.Value + right.Value)/2m); }