+++
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
global using PogonMass = QWERTYkez.Mensura.Units.Pogon.PogonMass;
|
||||
#if DEBUG
|
||||
global using PogonMass = QWERTYkez.Mensura.Units.Pogon.PogonMass;
|
||||
global using PogonMassExtensions = QWERTYkez.Mensura.Units.Pogon.PogonMassExtensions;
|
||||
global using PogonMassConverter = QWERTYkez.Mensura.Units.Pogon.PogonMassConverter;
|
||||
|
||||
@@ -20,8 +21,7 @@ namespace QWERTYkez.Mensura.Units
|
||||
if (len == 0) return [];
|
||||
|
||||
var result = new Mass[len];
|
||||
for (int i = 0; i < len; i++)
|
||||
result[i] = right * left[i];
|
||||
PogonMassExtensions.MultiplyCore(left, right, result);
|
||||
return result;
|
||||
}
|
||||
public static Mass[] operator *(PogonMass[] left, Length? right)
|
||||
@@ -367,7 +367,7 @@ namespace QWERTYkez.Mensura.Units.Pogon
|
||||
|
||||
|
||||
|
||||
internal static void MultiplyCore(ReadOnlySpan<PogonMass> source, Length value, Span<Mass> destination)
|
||||
internal static void MultiplyCore(this ReadOnlySpan<PogonMass> source, Length value, Span<Mass> destination)
|
||||
{
|
||||
var dVal = value._Value;
|
||||
int len = source.Length;
|
||||
@@ -398,7 +398,7 @@ namespace QWERTYkez.Mensura.Units.Pogon
|
||||
Unsafe.Add(ref dstRef, i) = Unsafe.Add(ref srcRef, i) * dVal;
|
||||
}
|
||||
}
|
||||
internal static void MultiplyCore(ReadOnlySpan<Length> source, PogonMass value, Span<Mass> destination)
|
||||
internal static void MultiplyCore(this ReadOnlySpan<Length> source, PogonMass value, Span<Mass> destination)
|
||||
{
|
||||
var dVal = value._Value;
|
||||
int len = source.Length;
|
||||
@@ -431,7 +431,7 @@ namespace QWERTYkez.Mensura.Units.Pogon
|
||||
}
|
||||
|
||||
|
||||
internal static void DivideCore(ReadOnlySpan<Mass> source, PogonMass divisor, Span<Length> destination)
|
||||
internal static void DivideCore(this ReadOnlySpan<Mass> source, PogonMass divisor, Span<Length> destination)
|
||||
{
|
||||
// 1. Проверка на ноль
|
||||
if (divisor.IsZero || divisor.IsNaN)
|
||||
@@ -466,7 +466,7 @@ namespace QWERTYkez.Mensura.Units.Pogon
|
||||
Unsafe.Add(ref dstRef, i) = Unsafe.Add(ref srcRef, i) / dVal;
|
||||
}
|
||||
}
|
||||
internal static void DivideCore(Mass dividend, ReadOnlySpan<PogonMass> source, Span<Length> destination)
|
||||
internal static void DivideCore(this Mass dividend, ReadOnlySpan<PogonMass> source, Span<Length> destination)
|
||||
{
|
||||
var dVal = dividend._Value;
|
||||
int len = source.Length;
|
||||
@@ -565,4 +565,5 @@ namespace QWERTYkez.Mensura.Units.Pogon
|
||||
return new(double_Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1,4 +1,5 @@
|
||||
namespace QWERTYkez.Mensura.Units.Pogon;
|
||||
#if DEBUG
|
||||
namespace QWERTYkez.Mensura.Units.Pogon;
|
||||
|
||||
public readonly partial record struct PogonMass
|
||||
{
|
||||
@@ -30,4 +31,5 @@ public readonly partial record struct PogonMass
|
||||
init => _Value = value._Value / LengthConv.KiloMeters.Multiplicator;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,74 +1,74 @@
|
||||
//namespace QWERTYkez.Mensura.Units;
|
||||
#if DEBUG
|
||||
namespace QWERTYkez.Mensura.Units;
|
||||
|
||||
///// <summary>
|
||||
///// Base value is MilliMeters
|
||||
///// </summary>
|
||||
//[UnitOperatorsGenerator, DebuggerDisplay("mm = {_MilliMeters.ToString(\"0.###\")}, m = {Meters.ToString(\"0.###\")}")]
|
||||
//public readonly partial record struct XXXXXXXXXXXXXX
|
||||
//{
|
||||
// public static XXXXXXXXXXXXXX MilliMeter { get; } = new(1);
|
||||
//#pragma warning disable IDE1006 // _Подчеркивание для обозначения того, что это базовая единица
|
||||
// [NotMapped, JsonIgnore] public double _MilliMeters { get => _Value; init => _Value = value; }
|
||||
//#pragma warning restore IDE1006
|
||||
/// <summary>
|
||||
/// Base value is MilliMeters
|
||||
/// </summary>
|
||||
[DebuggerDisplay("mm = {_MilliMeters.ToString(\"0.###\")}, m = {Meters.ToString(\"0.###\")}")]
|
||||
public readonly partial record struct XXXXXXXXXXXXXX
|
||||
{
|
||||
public static XXXXXXXXXXXXXX MilliMeter { get; } = new(1);
|
||||
[NotMapped, JsonIgnore] public double _MilliMeters { get => _Value; init => _Value = value; }
|
||||
|
||||
|
||||
// public static XXXXXXXXXXXXXX CentiMeter { get; } = new(XXXXXXXXXXXXXXConv.CentiMeters.To(1));
|
||||
// [NotMapped, JsonIgnore] public double CentiMeters
|
||||
// {
|
||||
// get => XXXXXXXXXXXXXXConv.CentiMeters.From(_Value);
|
||||
// init
|
||||
// {
|
||||
// XXXXXXXXXXXXXX aaa = new();
|
||||
// XXXXXXXXXXXXXX bbb = new();
|
||||
public static XXXXXXXXXXXXXX CentiMeter { get; } = new(XXXXXXXXXXXXXXConv.CentiMeters.To(1));
|
||||
[NotMapped, JsonIgnore] public double CentiMeters
|
||||
{
|
||||
get => XXXXXXXXXXXXXXConv.CentiMeters.From(_Value);
|
||||
init
|
||||
{
|
||||
XXXXXXXXXXXXXX aaa = new();
|
||||
XXXXXXXXXXXXXX bbb = new();
|
||||
|
||||
// if (aaa != bbb || aaa == bbb)
|
||||
// {
|
||||
if (aaa != bbb || aaa == bbb)
|
||||
{
|
||||
|
||||
// }
|
||||
}
|
||||
|
||||
// _Value = XXXXXXXXXXXXXXConv.CentiMeters.To(value);
|
||||
// }
|
||||
// }
|
||||
_Value = XXXXXXXXXXXXXXConv.CentiMeters.To(value);
|
||||
}
|
||||
}
|
||||
|
||||
// public static XXXXXXXXXXXXXX DeciMeter { get; } = new(XXXXXXXXXXXXXXConv.DeciMeters.To(1));
|
||||
// [NotMapped, JsonIgnore] public double DeciMeters
|
||||
// {
|
||||
// get => XXXXXXXXXXXXXXConv.DeciMeters.From(_Value);
|
||||
// init => _Value = XXXXXXXXXXXXXXConv.DeciMeters.To(value);
|
||||
// }
|
||||
public static XXXXXXXXXXXXXX DeciMeter { get; } = new(XXXXXXXXXXXXXXConv.DeciMeters.To(1));
|
||||
[NotMapped, JsonIgnore] public double DeciMeters
|
||||
{
|
||||
get => XXXXXXXXXXXXXXConv.DeciMeters.From(_Value);
|
||||
init => _Value = XXXXXXXXXXXXXXConv.DeciMeters.To(value);
|
||||
}
|
||||
|
||||
// public static XXXXXXXXXXXXXX Meter { get; } = new(XXXXXXXXXXXXXXConv.Meters.To(1));
|
||||
// [NotMapped, JsonIgnore] public double Meters
|
||||
// {
|
||||
// get => XXXXXXXXXXXXXXConv.Meters.From(_Value);
|
||||
// init => _Value = XXXXXXXXXXXXXXConv.Meters.To(value);
|
||||
// }
|
||||
public static XXXXXXXXXXXXXX Meter { get; } = new(XXXXXXXXXXXXXXConv.Meters.To(1));
|
||||
[NotMapped, JsonIgnore] public double Meters
|
||||
{
|
||||
get => XXXXXXXXXXXXXXConv.Meters.From(_Value);
|
||||
init => _Value = XXXXXXXXXXXXXXConv.Meters.To(value);
|
||||
}
|
||||
|
||||
// public static XXXXXXXXXXXXXX KiloMeter { get; } = new(XXXXXXXXXXXXXXConv.KiloMeters.To(1));
|
||||
// [NotMapped, JsonIgnore] public double KiloMeters
|
||||
// {
|
||||
// get => XXXXXXXXXXXXXXConv.KiloMeters.From(_Value);
|
||||
// init => _Value = XXXXXXXXXXXXXXConv.KiloMeters.To(value);
|
||||
// }
|
||||
public static XXXXXXXXXXXXXX KiloMeter { get; } = new(XXXXXXXXXXXXXXConv.KiloMeters.To(1));
|
||||
[NotMapped, JsonIgnore] public double KiloMeters
|
||||
{
|
||||
get => XXXXXXXXXXXXXXConv.KiloMeters.From(_Value);
|
||||
init => _Value = XXXXXXXXXXXXXXConv.KiloMeters.To(value);
|
||||
}
|
||||
|
||||
|
||||
// public XXXXXXXXXXXXXX AddMilliMeters(double value) => new(_Value + value);
|
||||
// public XXXXXXXXXXXXXX AddCentiMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.CentiMeters.To(value));
|
||||
// public XXXXXXXXXXXXXX AddDeciMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.DeciMeters.To(value));
|
||||
// public XXXXXXXXXXXXXX AddMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.Meters.To(value));
|
||||
// public XXXXXXXXXXXXXX AddKiloMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.KiloMeters.To(value));
|
||||
//}
|
||||
public XXXXXXXXXXXXXX AddMilliMeters(double value) => new(_Value + value);
|
||||
public XXXXXXXXXXXXXX AddCentiMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.CentiMeters.To(value));
|
||||
public XXXXXXXXXXXXXX AddDeciMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.DeciMeters.To(value));
|
||||
public XXXXXXXXXXXXXX AddMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.Meters.To(value));
|
||||
public XXXXXXXXXXXXXX AddKiloMeters(double value) => new(_Value + XXXXXXXXXXXXXXConv.KiloMeters.To(value));
|
||||
}
|
||||
|
||||
|
||||
//internal readonly struct XXXXXXXXXXXXXXConv
|
||||
//{
|
||||
// private XXXXXXXXXXXXXXConv(double multiplicator) => this.Multiplicator = multiplicator;
|
||||
// public double To(double value) => value * Multiplicator;
|
||||
// public double From(double value) => value / Multiplicator;
|
||||
// public double Multiplicator { get; init; }
|
||||
// public static XXXXXXXXXXXXXXConv MilliMeters { get; } = new(1);
|
||||
// public static XXXXXXXXXXXXXXConv CentiMeters { get; } = new(10);
|
||||
// public static XXXXXXXXXXXXXXConv DeciMeters { get; } = new(100);
|
||||
// public static XXXXXXXXXXXXXXConv Meters { get; } = new(1000);
|
||||
// public static XXXXXXXXXXXXXXConv KiloMeters { get; } = new(1000000);
|
||||
//}
|
||||
internal readonly struct XXXXXXXXXXXXXXConv
|
||||
{
|
||||
private XXXXXXXXXXXXXXConv(double multiplicator) => this.Multiplicator = multiplicator;
|
||||
public double To(double value) => value * Multiplicator;
|
||||
public double From(double value) => value / Multiplicator;
|
||||
public double Multiplicator { get; init; }
|
||||
public static XXXXXXXXXXXXXXConv MilliMeters { get; } = new(1);
|
||||
public static XXXXXXXXXXXXXXConv CentiMeters { get; } = new(10);
|
||||
public static XXXXXXXXXXXXXXConv DeciMeters { get; } = new(100);
|
||||
public static XXXXXXXXXXXXXXConv Meters { get; } = new(1000);
|
||||
public static XXXXXXXXXXXXXXConv KiloMeters { get; } = new(1000000);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user