26.06.03
This commit is contained in:
@@ -91,7 +91,9 @@ namespace QWERTYkez.Mensura
|
||||
// Вы должны скопировать сюда всё содержимое вашего второго файла,
|
||||
// заменив {typeName} на {typeName}.
|
||||
string skeleton = @"
|
||||
global using {typeName}Extensions = QWERTYkez.Mensura.Units.{typeName}Extensions;
|
||||
global using {typeName} = QWERTYkez.Mensura.Units.{typeName};
|
||||
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace QWERTYkez.Mensura.Units;
|
||||
@@ -131,14 +133,13 @@ public readonly partial record struct {typeName} : IMensuraUnit<{typeName}>, IEq
|
||||
public static {typeName} NegativeInfinity { get; } = new(double.NegativeInfinity);
|
||||
public static {typeName} PositiveInfinity { get; } = new(double.PositiveInfinity);
|
||||
|
||||
public static bool operator ==({typeName}? T1, {typeName}? T2) => T1.Protected() == T2.Protected();
|
||||
public static bool operator !=({typeName}? T1, {typeName}? T2) => T1.Protected() != T2.Protected();
|
||||
|
||||
public static bool operator ==({typeName}? T1, {typeName}? T2) => (T1 is null ? 0d : T1.Value._Value) == (T2 is null ? 0d : T2.Value._Value);
|
||||
public static bool operator !=({typeName}? T1, {typeName}? T2) => (T1 is null ? 0d : T1.Value._Value) != (T2 is null ? 0d : T2.Value._Value);
|
||||
|
||||
public static bool operator <({typeName}? T1, {typeName}? T2) => (T1 is null ? 0d : T1.Value._Value) < (T2 is null ? 0d : T2.Value._Value);
|
||||
public static bool operator <=({typeName}? T1, {typeName}? T2) => (T1 is null ? 0d : T1.Value._Value) <= (T2 is null ? 0d : T2.Value._Value);
|
||||
public static bool operator >({typeName}? T1, {typeName}? T2) => (T1 is null ? 0d : T1.Value._Value) > (T2 is null ? 0d : T2.Value._Value);
|
||||
public static bool operator >=({typeName}? T1, {typeName}? T2) => (T1 is null ? 0d : T1.Value._Value) >= (T2 is null ? 0d : T2.Value._Value);
|
||||
public static bool operator <({typeName}? T1, {typeName}? T2) => T1.Protected() < T2.Protected();
|
||||
public static bool operator <=({typeName}? T1, {typeName}? T2) => T1.Protected() <= T2.Protected();
|
||||
public static bool operator >({typeName}? T1, {typeName}? T2) => T1.Protected() > T2.Protected();
|
||||
public static bool operator >=({typeName}? T1, {typeName}? T2) => T1.Protected() >= T2.Protected();
|
||||
|
||||
|
||||
public static {typeName} operator +({typeName} T2) => new(+T2._Value);
|
||||
@@ -283,6 +284,11 @@ public readonly partial record struct {typeName} : IMensuraUnit<{typeName}>, IEq
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal R Sqrt_Internal<R>() where R : struct, IMensuraUnit, IEquatable<R> => Math.Sqrt(_Value).ToUnit<R>();
|
||||
}
|
||||
|
||||
public static class {typeName}Extensions
|
||||
{
|
||||
public static double Protected(this {typeName}? unit) => unit is null ? 0d : unit.Value._Value;
|
||||
}
|
||||
";
|
||||
return skeleton.Replace("{typeName}", typeName).Replace("{ns}", ns);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user