diff --git a/X10D.Unity/src/Drawing/Color32Extensions.cs b/X10D.Unity/src/Drawing/Color32Extensions.cs
index a505c94..16dc327 100644
--- a/X10D.Unity/src/Drawing/Color32Extensions.cs
+++ b/X10D.Unity/src/Drawing/Color32Extensions.cs
@@ -27,11 +27,7 @@ public static class Color32Extensions
/// When this method returns, contains the component of .
///
[Pure]
-#if NETSTANDARD2_1
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
public static void Deconstruct(this Color32 color, out byte a, out byte r, out byte g, out byte b)
{
a = color.a;
@@ -52,11 +48,7 @@ public static class Color32Extensions
/// When this method returns, contains the component of .
///
[Pure]
-#if NETSTANDARD2_1
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
public static void Deconstruct(this Color32 color, out byte r, out byte g, out byte b)
{
r = color.r;
diff --git a/X10D.Unity/src/Drawing/ColorExtensions.cs b/X10D.Unity/src/Drawing/ColorExtensions.cs
index 06fcb6a..3fca7ec 100644
--- a/X10D.Unity/src/Drawing/ColorExtensions.cs
+++ b/X10D.Unity/src/Drawing/ColorExtensions.cs
@@ -27,11 +27,7 @@ public static class ColorExtensions
/// When this method returns, contains the component of .
///
[Pure]
-#if NETSTANDARD2_1
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
public static void Deconstruct(this Color color, out float a, out float r, out float g, out float b)
{
a = color.a;
@@ -52,11 +48,7 @@ public static class ColorExtensions
/// When this method returns, contains the component of .
///
[Pure]
-#if NETSTANDARD2_1
[MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
public static void Deconstruct(this Color color, out float r, out float g, out float b)
{
r = color.r;
diff --git a/X10D/src/Collections/ByteExtensions.cs b/X10D/src/Collections/ByteExtensions.cs
index d299cf4..427afed 100644
--- a/X10D/src/Collections/ByteExtensions.cs
+++ b/X10D/src/Collections/ByteExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
#if NETCOREAPP3_0_OR_GREATER
using System.Runtime.Intrinsics;
@@ -22,11 +23,7 @@ public static class ByteExtensions
/// The value to unpack.
/// An array of with length 8.
[Pure]
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool[] Unpack(this byte value)
{
var buffer = new bool[Size];
@@ -41,11 +38,7 @@ public static class ByteExtensions
/// When this method returns, contains the unpacked booleans from .
/// is not large enough to contain the result.
[ExcludeFromCodeCoverage]
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static void Unpack(this byte value, Span destination)
{
if (destination.Length < Size)
@@ -64,11 +57,7 @@ public static class ByteExtensions
UnpackInternal_Fallback(value, destination);
}
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static void UnpackInternal_Fallback(this byte value, Span destination)
{
for (var index = 0; index < Size; index++)
@@ -78,11 +67,7 @@ public static class ByteExtensions
}
#if NETCOREAPP3_0_OR_GREATER
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal unsafe static void UnpackInternal_Ssse3(this byte value, Span destination)
{
fixed (bool* pDestination = destination)
diff --git a/X10D/src/Collections/Int16Extensions.cs b/X10D/src/Collections/Int16Extensions.cs
index aaffabe..c53c0fb 100644
--- a/X10D/src/Collections/Int16Extensions.cs
+++ b/X10D/src/Collections/Int16Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
#if NETCOREAPP3_0_OR_GREATER
using System.Runtime.Intrinsics;
@@ -22,11 +23,7 @@ public static class Int16Extensions
/// The value to unpack.
/// An array of with length 16.
[Pure]
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool[] Unpack(this short value)
{
var ret = new bool[Size];
@@ -41,11 +38,7 @@ public static class Int16Extensions
/// When this method returns, contains the unpacked booleans from .
/// is not large enough to contain the result.
[ExcludeFromCodeCoverage]
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static void Unpack(this short value, Span destination)
{
if (destination.Length < Size)
@@ -64,11 +57,7 @@ public static class Int16Extensions
UnpackInternal_Fallback(value, destination);
}
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static void UnpackInternal_Fallback(this short value, Span destination)
{
for (var index = 0; index < Size; index++)
@@ -78,11 +67,7 @@ public static class Int16Extensions
}
#if NETCOREAPP3_0_OR_GREATER
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal unsafe static void UnpackInternal_Ssse3(this short value, Span destination)
{
fixed (bool* pDestination = destination)
diff --git a/X10D/src/Collections/Int32Extensions.cs b/X10D/src/Collections/Int32Extensions.cs
index f718c73..7e2ebaf 100644
--- a/X10D/src/Collections/Int32Extensions.cs
+++ b/X10D/src/Collections/Int32Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
#if NETCOREAPP3_0_OR_GREATER
using System.Runtime.Intrinsics;
@@ -22,6 +23,7 @@ public static class Int32Extensions
/// The value to unpack.
/// An array of with length 32.
[Pure]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool[] Unpack(this int value)
{
var ret = new bool[Size];
@@ -36,6 +38,7 @@ public static class Int32Extensions
/// When this method returns, contains the unpacked booleans from .
/// is not large enough to contain the result.
[ExcludeFromCodeCoverage]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static void Unpack(this int value, Span destination)
{
if (destination.Length < Size)
@@ -60,11 +63,7 @@ public static class Int32Extensions
UnpackInternal_Fallback(value, destination);
}
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static void UnpackInternal_Fallback(this int value, Span destination)
{
for (var index = 0; index < Size; index++)
@@ -74,11 +73,7 @@ public static class Int32Extensions
}
#if NETCOREAPP3_0_OR_GREATER
-#if NETCOREAPP3_1_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static unsafe void UnpackInternal_Ssse3(this int value, Span destination)
{
fixed (bool* pDestination = destination)
diff --git a/X10D/src/CompilerServices/CompilerResources.cs b/X10D/src/CompilerServices/CompilerResources.cs
new file mode 100644
index 0000000..c06c585
--- /dev/null
+++ b/X10D/src/CompilerServices/CompilerResources.cs
@@ -0,0 +1,13 @@
+using System.Runtime.CompilerServices;
+
+namespace X10D.CompilerServices;
+
+internal static class CompilerResources
+{
+#if NETCOREAPP3_0_OR_GREATER
+ public const MethodImplOptions MethodImplOptions = System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining |
+ System.Runtime.CompilerServices.MethodImplOptions.AggressiveOptimization;
+#else
+ public const MethodImplOptions MethodImplOptions = System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining;
+#endif
+}
diff --git a/X10D/src/Core/IntrinsicExtensions.cs b/X10D/src/Core/IntrinsicExtensions.cs
index 03916ac..c9f5380 100644
--- a/X10D/src/Core/IntrinsicExtensions.cs
+++ b/X10D/src/Core/IntrinsicExtensions.cs
@@ -4,6 +4,7 @@ using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
+using X10D.CompilerServices;
namespace X10D.Core;
@@ -29,7 +30,7 @@ public static class IntrinsicExtensions
/// A of which remapped back to 0 and 1 based on boolean truthiness.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector64 CorrectBoolean(this Vector64 vector)
{
Vector64 output = IntrinsicUtility.GetUninitializedVector64();
@@ -64,7 +65,7 @@ public static class IntrinsicExtensions
/// A of which remapped back to 0 and 1 based on boolean truthiness.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static Vector128 CorrectBoolean(this Vector128 vector)
{
@@ -87,7 +88,7 @@ public static class IntrinsicExtensions
/// A of which remapped back to 0 and 1 based on boolean truthiness.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static Vector256 CorrectBoolean(this Vector256 vector)
{
@@ -111,7 +112,7 @@ public static class IntrinsicExtensions
///
[Pure]
[CLSCompliant(false)]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static Vector128 ReverseElements(this Vector128 vector)
{
@@ -119,7 +120,7 @@ public static class IntrinsicExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 CorrectBooleanInternal_Fallback(this Vector128 vector)
{
Vector128 output = IntrinsicUtility.GetUninitializedVector128();
@@ -134,7 +135,7 @@ public static class IntrinsicExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 CorrectBooleanInternal_Sse2(this Vector128 vector)
{
Vector128 cmp = Sse2.CompareEqual(vector, Vector128.Zero);
@@ -144,7 +145,7 @@ public static class IntrinsicExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector256 CorrectBooleanInternal_Fallback(this Vector256 vector)
{
Vector256 output = IntrinsicUtility.GetUninitializedVector256();
@@ -159,7 +160,7 @@ public static class IntrinsicExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector256 CorrectBooleanInternal_Avx2(this Vector256 vector)
{
Vector256 cmp = Avx2.CompareEqual(vector, Vector256.Zero);
@@ -169,7 +170,7 @@ public static class IntrinsicExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 ReverseElementsInternal_Fallback(this Vector128 vector)
{
Vector128 output = IntrinsicUtility.GetUninitializedVector128();
@@ -181,7 +182,7 @@ public static class IntrinsicExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 ReverseElementsInternal_Sse2(this Vector128 vector)
{
return Sse2.Shuffle(vector.AsDouble(), vector.AsDouble(), 0b01).AsUInt64();
diff --git a/X10D/src/Core/IntrinsicUtility.cs b/X10D/src/Core/IntrinsicUtility.cs
index 3bf6974..897c162 100644
--- a/X10D/src/Core/IntrinsicUtility.cs
+++ b/X10D/src/Core/IntrinsicUtility.cs
@@ -5,6 +5,7 @@ using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;
+using X10D.CompilerServices;
namespace X10D.Core;
@@ -32,7 +33,7 @@ public static class IntrinsicUtility
/// The truncated product vector.
[Pure]
[CLSCompliant(false)]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static Vector128 Multiply(Vector128 left, Vector128 right)
{
@@ -63,7 +64,7 @@ public static class IntrinsicUtility
///
[Pure]
[CLSCompliant(false)]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static Vector256 Multiply(Vector256 lhs, Vector256 rhs)
{
@@ -91,7 +92,7 @@ public static class IntrinsicUtility
/// A of whose elements is 64-bit truncated product of lhs and rhs.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector128 Multiply(Vector128 lhs, Vector128 rhs)
{
return Multiply(lhs.AsUInt64(), rhs.AsUInt64()).AsInt64();
@@ -115,7 +116,7 @@ public static class IntrinsicUtility
/// A of whose elements is 64-bit truncated product of lhs and rhs.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector256 Multiply(Vector256 lhs, Vector256 rhs)
{
return Multiply(lhs.AsUInt64(), rhs.AsUInt64()).AsInt64();
@@ -141,7 +142,7 @@ public static class IntrinsicUtility
/// elements in lhs and rhs.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static Vector128 HorizontalOr(Vector128 left, Vector128 right)
{
@@ -172,7 +173,7 @@ public static class IntrinsicUtility
/// elements in lhs and rhs.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[CLSCompliant(false)]
public static Vector128 HorizontalOr(Vector128 left, Vector128 right)
{
@@ -180,7 +181,7 @@ public static class IntrinsicUtility
}
// Helper methods
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector64 GetUninitializedVector64() where T : struct
{
#if NET6_0_OR_GREATER
@@ -191,7 +192,7 @@ public static class IntrinsicUtility
#endif
}
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 GetUninitializedVector128() where T : struct
{
#if NET6_0_OR_GREATER
@@ -202,7 +203,7 @@ public static class IntrinsicUtility
#endif
}
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector256 GetUninitializedVector256() where T : struct
{
#if NET6_0_OR_GREATER
@@ -214,7 +215,7 @@ public static class IntrinsicUtility
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 HorizontalOr_Sse(Vector128 left, Vector128 right)
{
Vector128 leftSingle = left.AsSingle();
@@ -229,7 +230,7 @@ public static class IntrinsicUtility
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 HorizontalOrInternal_Fallback(Vector128 left, Vector128 right)
{
Vector128 output = GetUninitializedVector128();
@@ -249,7 +250,7 @@ public static class IntrinsicUtility
[Pure]
[CLSCompliant(false)]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 MultiplyInternal_Fallback(Vector128 left, Vector128 right)
{
ulong leftInteger1 = Unsafe.As, ulong>(ref left);
@@ -267,7 +268,7 @@ public static class IntrinsicUtility
[Pure]
[CLSCompliant(false)]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector128 MultiplyInternal_Sse2(Vector128 left, Vector128 right)
{
// https://stackoverflow.com/questions/17863411/sse-multiplication-of-2-64-bit-integers
@@ -284,7 +285,7 @@ public static class IntrinsicUtility
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector256 MultiplyInternal_Fallback(Vector256 left, Vector256 right)
{
Vector256 output = GetUninitializedVector256();
@@ -300,7 +301,7 @@ public static class IntrinsicUtility
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static Vector256 MultiplyInternal_Avx2(Vector256 left, Vector256 right)
{
// https://stackoverflow.com/questions/17863411/sse-multiplication-of-2-64-bit-integers
diff --git a/X10D/src/Core/SpanExtensions.cs b/X10D/src/Core/SpanExtensions.cs
index 5447cb5..6c0b6c0 100644
--- a/X10D/src/Core/SpanExtensions.cs
+++ b/X10D/src/Core/SpanExtensions.cs
@@ -2,6 +2,7 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using X10D.CompilerServices;
#if NETCOREAPP3_0_OR_GREATER
using System.Runtime.Intrinsics;
@@ -48,11 +49,7 @@ public static class SpanExtensions
///
/// The size of is unsupported.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Contains(this Span span, T value) where T : struct, Enum
{
return Contains((ReadOnlySpan)span, value);
@@ -71,11 +68,7 @@ public static class SpanExtensions
///
/// The size of is unsupported.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Contains(this ReadOnlySpan span, T value) where T : struct, Enum
{
#if NET6_0_OR_GREATER
@@ -141,11 +134,7 @@ public static class SpanExtensions
/// An 8-bit unsigned integer containing the packed booleans.
/// contains more than 8 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte PackByte(this Span source)
{
return PackByte((ReadOnlySpan)source);
@@ -158,11 +147,7 @@ public static class SpanExtensions
/// An 8-bit unsigned integer containing the packed booleans.
/// contains more than 8 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static byte PackByte(this ReadOnlySpan source)
{
@@ -216,11 +201,7 @@ public static class SpanExtensions
/// A 16-bit signed integer containing the packed booleans.
/// contains more than 16 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static short PackInt16(this ReadOnlySpan source)
{
@@ -259,11 +240,7 @@ public static class SpanExtensions
/// A 32-bit signed integer containing the packed booleans.
/// contains more than 32 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PackInt32(this Span source)
{
return PackInt32((ReadOnlySpan)source);
@@ -276,11 +253,7 @@ public static class SpanExtensions
/// A 32-bit signed integer containing the packed booleans.
/// contains more than 32 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static int PackInt32(this ReadOnlySpan source)
{
@@ -331,11 +304,7 @@ public static class SpanExtensions
/// A 64-bit signed integer containing the packed booleans.
/// contains more than 64 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long PackInt64(this Span source)
{
return PackInt64((ReadOnlySpan)source);
@@ -348,11 +317,7 @@ public static class SpanExtensions
/// A 64-bit signed integer containing the packed booleans.
/// contains more than 64 elements.
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long PackInt64(this ReadOnlySpan source)
{
switch (source.Length)
@@ -377,11 +342,7 @@ public static class SpanExtensions
}
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static byte PackByteInternal_Fallback(this ReadOnlySpan source)
{
byte result = 0;
@@ -395,11 +356,7 @@ public static class SpanExtensions
}
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static short PackInt16Internal_Fallback(this ReadOnlySpan source)
{
short result = 0;
@@ -413,11 +370,7 @@ public static class SpanExtensions
}
[Pure]
-#if NETCOREAPP3_0_OR_GREATER
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static int PackInt32Internal_Fallback(this ReadOnlySpan source)
{
var result = 0;
@@ -432,7 +385,7 @@ public static class SpanExtensions
#if NETCOREAPP3_0_OR_GREATER
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static byte PackByteInternal_Sse2(this ReadOnlySpan source)
{
unsafe
@@ -446,7 +399,7 @@ public static class SpanExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static short PackInt16Internal_Sse2(this ReadOnlySpan source)
{
unsafe
@@ -466,7 +419,7 @@ public static class SpanExtensions
// dotcover disable
//NOSONAR
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static int PackInt32Internal_AdvSimd(this ReadOnlySpan source)
{
unsafe
@@ -493,7 +446,7 @@ public static class SpanExtensions
// dotcover enable
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static int PackInt32Internal_Avx2(this ReadOnlySpan source)
{
unsafe
@@ -518,7 +471,7 @@ public static class SpanExtensions
}
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static int PackInt32Internal_Sse2(this ReadOnlySpan source)
{
unsafe
@@ -550,7 +503,7 @@ public static class SpanExtensions
// dotcover disable
//NOSONAR
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
internal static byte PackByteInternal_AdvSimd(this ReadOnlySpan source)
{
unsafe
diff --git a/X10D/src/Drawing/ColorExtensions.cs b/X10D/src/Drawing/ColorExtensions.cs
index 4542264..47ee9df 100644
--- a/X10D/src/Drawing/ColorExtensions.cs
+++ b/X10D/src/Drawing/ColorExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Drawing;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Drawing;
@@ -26,11 +27,7 @@ public static class ColorExtensions
/// When this method returns, contains the component of .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static void Deconstruct(this Color color, out byte a, out byte r, out byte g, out byte b)
{
a = color.A;
@@ -51,11 +48,7 @@ public static class ColorExtensions
/// When this method returns, contains the component of .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static void Deconstruct(this Color color, out byte r, out byte g, out byte b)
{
r = color.R;
@@ -70,11 +63,7 @@ public static class ColorExtensions
/// The closest .
/// Glenn Slayden, https://stackoverflow.com/a/12340136/1467293
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ConsoleColor GetClosestConsoleColor(this Color color)
{
ConsoleColor result = 0;
@@ -121,11 +110,7 @@ public static class ColorExtensions
/// The color to invert.
/// The inverted color.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Color Inverted(this Color color)
{
return Color.FromArgb(color.A, 255 - color.R, 255 - color.G, 255 - color.B);
@@ -143,11 +128,7 @@ public static class ColorExtensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Color WithA(this Color color, int a)
{
return Color.FromArgb(a, color.R, color.G, color.B);
@@ -165,11 +146,7 @@ public static class ColorExtensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Color WithB(this Color color, int b)
{
return Color.FromArgb(color.A, color.R, color.G, b);
@@ -187,11 +164,7 @@ public static class ColorExtensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Color WithG(this Color color, int g)
{
return Color.FromArgb(color.A, color.R, g, color.B);
@@ -209,11 +182,7 @@ public static class ColorExtensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Color WithR(this Color color, int r)
{
return Color.FromArgb(color.A, r, color.G, color.B);
diff --git a/X10D/src/Drawing/PointExtensions.cs b/X10D/src/Drawing/PointExtensions.cs
index f81f0e1..4b36c64 100644
--- a/X10D/src/Drawing/PointExtensions.cs
+++ b/X10D/src/Drawing/PointExtensions.cs
@@ -2,6 +2,7 @@
using System.Drawing;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Drawing;
@@ -20,11 +21,7 @@ public static class PointExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this Point point, LineF line)
{
return ((PointF)point).IsOnLine(line);
@@ -41,11 +38,7 @@ public static class PointExtensions
/// ; otherwise .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this Point point, PointF start, PointF end)
{
return point.IsOnLine(new LineF(start, end));
@@ -62,11 +55,7 @@ public static class PointExtensions
/// ; otherwise .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this Point point, Vector2 start, Vector2 end)
{
return point.IsOnLine(new LineF(start, end));
@@ -78,11 +67,7 @@ public static class PointExtensions
/// The point to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Size ToSize(this Point point)
{
return new Size(point.X, point.Y);
diff --git a/X10D/src/Drawing/PointFExtensions.cs b/X10D/src/Drawing/PointFExtensions.cs
index a464400..0b82643 100644
--- a/X10D/src/Drawing/PointFExtensions.cs
+++ b/X10D/src/Drawing/PointFExtensions.cs
@@ -2,6 +2,7 @@
using System.Drawing;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Drawing;
@@ -21,11 +22,7 @@ public static class PointFExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this PointF point, LineF line)
{
(float x1, float x2) = (line.Start.X, line.End.X);
@@ -45,11 +42,7 @@ public static class PointFExtensions
/// ; otherwise .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this PointF point, PointF start, PointF end)
{
return point.IsOnLine(new LineF(start, end));
@@ -66,11 +59,7 @@ public static class PointFExtensions
/// ; otherwise .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this PointF point, Vector2 start, Vector2 end)
{
return point.IsOnLine(new LineF(start, end));
@@ -82,11 +71,7 @@ public static class PointFExtensions
/// The point whose components to round.
/// The rounded point.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static PointF Round(this PointF point)
{
return point.Round(1.0f);
@@ -99,11 +84,7 @@ public static class PointFExtensions
/// The nearest multiple to which the components should be rounded.
/// The rounded point.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static PointF Round(this PointF point, float nearest)
{
float x = point.X.Round(nearest);
@@ -117,11 +98,7 @@ public static class PointFExtensions
/// The point to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static SizeF ToSizeF(this PointF point)
{
return new SizeF(point.X, point.Y);
diff --git a/X10D/src/Drawing/SizeExtensions.cs b/X10D/src/Drawing/SizeExtensions.cs
index 54c3884..d44fcce 100644
--- a/X10D/src/Drawing/SizeExtensions.cs
+++ b/X10D/src/Drawing/SizeExtensions.cs
@@ -2,6 +2,7 @@
using System.Drawing;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Drawing;
@@ -16,11 +17,7 @@ public static class SizeExtensions
/// The size to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Point ToPoint(this Size size)
{
return new Point(size.Width, size.Height);
@@ -32,11 +29,7 @@ public static class SizeExtensions
/// The size to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static PointF ToPointF(this Size size)
{
return new PointF(size.Width, size.Height);
@@ -48,11 +41,7 @@ public static class SizeExtensions
/// The size to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector2 ToVector2(this Size size)
{
return new Vector2(size.Width, size.Height);
diff --git a/X10D/src/Math/ByteExtensions.cs b/X10D/src/Math/ByteExtensions.cs
index 016ffbb..6a7db33 100644
--- a/X10D/src/Math/ByteExtensions.cs
+++ b/X10D/src/Math/ByteExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -19,11 +20,7 @@ public static class ByteExtensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte DigitalRoot(this byte value)
{
int root = value % 9;
@@ -36,11 +33,7 @@ public static class ByteExtensions
/// The value whose factorial to compute.
/// The factorial of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Factorial(this byte value)
{
if (value == 0)
@@ -64,11 +57,7 @@ public static class ByteExtensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte GreatestCommonFactor(this byte value, byte other)
{
return (byte)((long)value).GreatestCommonFactor(other);
@@ -83,11 +72,7 @@ public static class ByteExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this byte value)
{
return (value & 1) == 0;
@@ -102,11 +87,7 @@ public static class ByteExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this byte value)
{
return !value.IsEven();
@@ -132,11 +113,7 @@ public static class ByteExtensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte LowestCommonMultiple(this byte value, byte other)
{
return (byte)((long)value).LowestCommonMultiple(other);
@@ -151,11 +128,7 @@ public static class ByteExtensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this byte value)
{
return ((long)value).MultiplicativePersistence();
@@ -169,11 +142,7 @@ public static class ByteExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte Wrap(this byte value, byte low, byte high)
{
return (byte)((ulong)value).Wrap(low, high);
@@ -186,11 +155,7 @@ public static class ByteExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte Wrap(this byte value, byte length)
{
return (byte)((ulong)value).Wrap(length);
diff --git a/X10D/src/Math/ComparableExtensions.cs b/X10D/src/Math/ComparableExtensions.cs
index 58fae9a..e1af91f 100644
--- a/X10D/src/Math/ComparableExtensions.cs
+++ b/X10D/src/Math/ComparableExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Globalization;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -48,11 +49,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Between(this T1 value, T2 lower, T3 upper,
InclusiveOptions inclusiveOptions = InclusiveOptions.None)
where T1 : IComparable, IComparable
@@ -113,11 +110,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static T Clamp(this T value, T lower, T upper)
where T : IComparable
{
@@ -163,11 +156,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool GreaterThan(this T1 value, T2 other)
where T1 : IComparable
{
@@ -206,11 +195,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool GreaterThanOrEqualTo(this T1 value, T2 other)
where T1 : IComparable
{
@@ -249,11 +234,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool LessThan(this T1 value, T2 other)
where T1 : IComparable
{
@@ -292,11 +273,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool LessThanOrEqualTo(this T1 value, T2 other)
where T1 : IComparable
{
@@ -334,11 +311,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static T Max(this T value, T other)
where T : IComparable
{
@@ -376,11 +349,7 @@ public static class ComparableExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static T Min(this T value, T other)
where T : IComparable
{
diff --git a/X10D/src/Math/DecimalExtensions.cs b/X10D/src/Math/DecimalExtensions.cs
index 280c81d..5d21d56 100644
--- a/X10D/src/Math/DecimalExtensions.cs
+++ b/X10D/src/Math/DecimalExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -15,11 +16,7 @@ public static class DecimalExtensions
/// The number whose square root is to be found.
/// The square root of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Complex ComplexSqrt(this decimal value)
{
return Complex.Sqrt((double)value);
@@ -34,11 +31,7 @@ public static class DecimalExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this decimal value)
{
return value % 2.0m == 0.0m;
@@ -53,11 +46,7 @@ public static class DecimalExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this decimal value)
{
return !value.IsEven();
@@ -69,11 +58,7 @@ public static class DecimalExtensions
/// The value to round.
/// rounded to the nearest whole number.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static decimal Round(this decimal value)
{
return value.Round(1.0m);
@@ -86,11 +71,7 @@ public static class DecimalExtensions
/// The nearest multiple to which should be rounded.
/// rounded to the nearest multiple of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static decimal Round(this decimal value, decimal nearest)
{
return System.Math.Round(value / nearest) * nearest;
@@ -103,11 +84,7 @@ public static class DecimalExtensions
/// The saturated value.
/// This method clamps between 0 and 1.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static decimal Saturate(this decimal value)
{
return System.Math.Clamp(value, 0.0m, 1.0m);
@@ -141,11 +118,7 @@ public static class DecimalExtensions
///
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this decimal value)
{
return System.Math.Sign(value);
@@ -180,11 +153,7 @@ public static class DecimalExtensions
///
/// is negative.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static decimal Sqrt(this decimal value)
{
switch (value)
@@ -214,11 +183,7 @@ public static class DecimalExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static decimal Wrap(this decimal value, decimal low, decimal high)
{
decimal difference = high - low;
@@ -232,11 +197,7 @@ public static class DecimalExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static decimal Wrap(this decimal value, decimal length)
{
return ((value % length) + length) % length;
diff --git a/X10D/src/Math/DoubleExtensions.cs b/X10D/src/Math/DoubleExtensions.cs
index 232df3f..15885a0 100644
--- a/X10D/src/Math/DoubleExtensions.cs
+++ b/X10D/src/Math/DoubleExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -20,11 +21,7 @@ public static class DoubleExtensions
/// is equal to , less than -1, or greater than 1, is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Acos(this double value)
{
return System.Math.Acos(value);
@@ -42,11 +39,7 @@ public static class DoubleExtensions
/// is less than 1 or equal to , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Acosh(this double value)
{
return System.Math.Acosh(value);
@@ -64,11 +57,7 @@ public static class DoubleExtensions
/// is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Asin(this double value)
{
return System.Math.Asin(value);
@@ -86,11 +75,7 @@ public static class DoubleExtensions
/// , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Asinh(this double value)
{
return System.Math.Asinh(value);
@@ -107,11 +92,7 @@ public static class DoubleExtensions
/// is equal to , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Atan(this double value)
{
return System.Math.Atan(value);
@@ -130,11 +111,7 @@ public static class DoubleExtensions
/// is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Atanh(this double value)
{
return System.Math.Atanh(value);
@@ -146,11 +123,7 @@ public static class DoubleExtensions
/// The number whose square root is to be found.
/// The square root of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Complex ComplexSqrt(this double value)
{
switch (value)
@@ -180,11 +153,7 @@ public static class DoubleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Cos(this double value)
{
return System.Math.Cos(value);
@@ -201,11 +170,7 @@ public static class DoubleExtensions
/// , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Cosh(this double value)
{
return System.Math.Cosh(value);
@@ -217,11 +182,7 @@ public static class DoubleExtensions
/// The angle in degrees to convert.
/// The result of π * / 180.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double DegreesToRadians(this double value)
{
return value * (System.Math.PI / 180.0);
@@ -236,11 +197,7 @@ public static class DoubleExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this double value)
{
return System.Math.Abs(value % 2.0) < double.Epsilon;
@@ -255,11 +212,7 @@ public static class DoubleExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this double value)
{
return !value.IsEven();
@@ -271,11 +224,7 @@ public static class DoubleExtensions
/// The angle in radians to convert.
/// The result of π * / 180.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double RadiansToDegrees(this double value)
{
return value * (180.0 / System.Math.PI);
@@ -287,11 +236,7 @@ public static class DoubleExtensions
/// The value to round.
/// rounded to the nearest whole number.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Round(this double value)
{
return value.Round(1.0);
@@ -304,11 +249,7 @@ public static class DoubleExtensions
/// The nearest multiple to which should be rounded.
/// rounded to the nearest multiple of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Round(this double value, double nearest)
{
return System.Math.Round(value / nearest) * nearest;
@@ -321,11 +262,7 @@ public static class DoubleExtensions
/// The saturated value.
/// This method clamps between 0 and 1.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Saturate(this double value)
{
return System.Math.Clamp(value, 0.0, 1.0);
@@ -341,11 +278,7 @@ public static class DoubleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Sin(this double value)
{
return System.Math.Sin(value);
@@ -361,11 +294,7 @@ public static class DoubleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Sinh(this double value)
{
return System.Math.Sinh(value);
@@ -400,11 +329,7 @@ public static class DoubleExtensions
///
/// is equal to .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this double value)
{
return System.Math.Sign(value);
@@ -440,11 +365,7 @@ public static class DoubleExtensions
/// SLenik https://stackoverflow.com/a/6755197/1467293
/// CC BY-SA 3.0
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Sqrt(this double value)
{
switch (value)
@@ -478,11 +399,7 @@ public static class DoubleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Tan(this double value)
{
return System.Math.Tan(value);
@@ -499,11 +416,7 @@ public static class DoubleExtensions
/// , this method returns .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Tanh(this double value)
{
return System.Math.Tanh(value);
@@ -517,11 +430,7 @@ public static class DoubleExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Wrap(this double value, double low, double high)
{
double difference = high - low;
@@ -535,11 +444,7 @@ public static class DoubleExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Wrap(this double value, double length)
{
return ((value % length) + length) % length;
diff --git a/X10D/src/Math/Int16Extensions.cs b/X10D/src/Math/Int16Extensions.cs
index 3a72b9a..7896cf3 100644
--- a/X10D/src/Math/Int16Extensions.cs
+++ b/X10D/src/Math/Int16Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -18,11 +19,7 @@ public static class Int16Extensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short DigitalRoot(this short value)
{
short root = System.Math.Abs(value).Mod(9);
@@ -36,11 +33,7 @@ public static class Int16Extensions
/// The factorial of .
/// is less than 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Factorial(this short value)
{
if (value < 0)
@@ -69,11 +62,7 @@ public static class Int16Extensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short GreatestCommonFactor(this short value, short other)
{
return (short)((long)value).GreatestCommonFactor(other);
@@ -88,11 +77,7 @@ public static class Int16Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this short value)
{
return (value & 1) == 0;
@@ -107,11 +92,7 @@ public static class Int16Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this short value)
{
return !value.IsEven();
@@ -125,11 +106,7 @@ public static class Int16Extensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this short value)
{
return ((long)value).IsPrime();
@@ -142,11 +119,7 @@ public static class Int16Extensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short LowestCommonMultiple(this short value, short other)
{
return (short)((long)value).LowestCommonMultiple(other);
@@ -167,11 +140,7 @@ public static class Int16Extensions
/// ShreevatsaR, https://stackoverflow.com/a/1082938/1467293
/// CC-BY-SA 2.5
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short Mod(this short dividend, short divisor)
{
int r = dividend % divisor;
@@ -187,11 +156,7 @@ public static class Int16Extensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this short value)
{
return ((long)value).MultiplicativePersistence();
@@ -225,11 +190,7 @@ public static class Int16Extensions
///
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this short value)
{
return System.Math.Sign(value);
@@ -243,11 +204,7 @@ public static class Int16Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short Wrap(this short value, short low, short high)
{
return (short)((long)value).Wrap(low, high);
@@ -260,11 +217,7 @@ public static class Int16Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short Wrap(this short value, short length)
{
return (short)((long)value).Wrap(length);
diff --git a/X10D/src/Math/Int32Extensions.cs b/X10D/src/Math/Int32Extensions.cs
index d654014..edaf0dd 100644
--- a/X10D/src/Math/Int32Extensions.cs
+++ b/X10D/src/Math/Int32Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -18,11 +19,7 @@ public static class Int32Extensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int DigitalRoot(this int value)
{
int root = System.Math.Abs(value).Mod(9);
@@ -36,11 +33,7 @@ public static class Int32Extensions
/// The factorial of .
/// is less than 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Factorial(this int value)
{
if (value < 0)
@@ -69,11 +62,7 @@ public static class Int32Extensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int GreatestCommonFactor(this int value, int other)
{
return (int)((long)value).GreatestCommonFactor(other);
@@ -88,11 +77,7 @@ public static class Int32Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this int value)
{
return (value & 1) == 0;
@@ -107,11 +92,7 @@ public static class Int32Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this int value)
{
return !value.IsEven();
@@ -125,11 +106,7 @@ public static class Int32Extensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this int value)
{
return ((long)value).IsPrime();
@@ -142,11 +119,7 @@ public static class Int32Extensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int LowestCommonMultiple(this int value, int other)
{
return (int)((long)value).LowestCommonMultiple(other);
@@ -167,11 +140,7 @@ public static class Int32Extensions
/// ShreevatsaR, https://stackoverflow.com/a/1082938/1467293
/// CC-BY-SA 2.5
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Mod(this int dividend, int divisor)
{
int r = dividend % divisor;
@@ -187,11 +156,7 @@ public static class Int32Extensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this int value)
{
return ((long)value).MultiplicativePersistence();
@@ -225,11 +190,7 @@ public static class Int32Extensions
///
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this int value)
{
return System.Math.Sign(value);
@@ -243,11 +204,7 @@ public static class Int32Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Wrap(this int value, int low, int high)
{
return (int)((long)value).Wrap(low, high);
@@ -260,11 +217,7 @@ public static class Int32Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Wrap(this int value, int length)
{
return (int)((long)value).Wrap(length);
diff --git a/X10D/src/Math/Int64Extensions.cs b/X10D/src/Math/Int64Extensions.cs
index 8d76498..5f888cc 100644
--- a/X10D/src/Math/Int64Extensions.cs
+++ b/X10D/src/Math/Int64Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -18,11 +19,7 @@ public static class Int64Extensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long DigitalRoot(this long value)
{
long root = System.Math.Abs(value).Mod(9L);
@@ -36,11 +33,7 @@ public static class Int64Extensions
/// The factorial of .
/// is less than 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Factorial(this long value)
{
if (value < 0)
@@ -69,11 +62,7 @@ public static class Int64Extensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long GreatestCommonFactor(this long value, long other)
{
while (other != 0)
@@ -93,11 +82,7 @@ public static class Int64Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this long value)
{
return (value & 1) == 0;
@@ -112,11 +97,7 @@ public static class Int64Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this long value)
{
return !value.IsEven();
@@ -130,11 +111,7 @@ public static class Int64Extensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this long value)
{
switch (value)
@@ -166,11 +143,7 @@ public static class Int64Extensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long LowestCommonMultiple(this long value, long other)
{
if (value == 0 || other == 0)
@@ -206,11 +179,7 @@ public static class Int64Extensions
/// ShreevatsaR, https://stackoverflow.com/a/1082938/1467293
/// CC-BY-SA 2.5
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Mod(this long dividend, long divisor)
{
long r = dividend % divisor;
@@ -226,11 +195,7 @@ public static class Int64Extensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this long value)
{
var persistence = 0;
@@ -295,11 +260,7 @@ public static class Int64Extensions
///
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this long value)
{
return System.Math.Sign(value);
@@ -313,11 +274,7 @@ public static class Int64Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Wrap(this long value, long low, long high)
{
long difference = high - low;
@@ -331,11 +288,7 @@ public static class Int64Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Wrap(this long value, long length)
{
return ((value % length) + length) % length;
diff --git a/X10D/src/Math/MathUtility.cs b/X10D/src/Math/MathUtility.cs
index 890acac..c5bc859 100644
--- a/X10D/src/Math/MathUtility.cs
+++ b/X10D/src/Math/MathUtility.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -69,11 +70,7 @@ public static class MathUtility
/// The gamma-encoded value to convert. Expected range is [0, 1].
/// The linear value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float GammaToLinear(float value)
{
return GammaToLinear(value, DefaultGammaF);
@@ -86,11 +83,7 @@ public static class MathUtility
/// The gamma value to use for decoding.
/// The linear value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float GammaToLinear(float value, float gamma)
{
return MathF.Pow(value, 1.0f / gamma);
@@ -102,11 +95,7 @@ public static class MathUtility
/// The gamma-encoded value to convert. Expected range is [0, 1].
/// The linear value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double GammaToLinear(double value)
{
return GammaToLinear(value, DefaultGamma);
@@ -119,11 +108,7 @@ public static class MathUtility
/// The gamma value to use for decoding.
/// The linear value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double GammaToLinear(double value, double gamma)
{
return System.Math.Pow(value, 1.0 / gamma);
@@ -138,11 +123,7 @@ public static class MathUtility
/// The end of the range.
/// A value determined by (alpha - start) / (end - start).
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float InverseLerp(float alpha, float start, float end)
{
if (MathF.Abs(start - end) < float.Epsilon)
@@ -162,11 +143,7 @@ public static class MathUtility
/// The end of the range.
/// A value determined by (alpha - start) / (end - start).
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double InverseLerp(double alpha, double start, double end)
{
if (System.Math.Abs(start - end) < double.Epsilon)
@@ -187,11 +164,7 @@ public static class MathUtility
/// The interpolation result as determined by (1 - alpha) * value + alpha * target.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Lerp(float value, float target, float alpha)
{
// rookie mistake: a + t * (b - a)
@@ -209,11 +182,7 @@ public static class MathUtility
/// The interpolation result as determined by (1 - alpha) * value + alpha * target.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double Lerp(double value, double target, double alpha)
{
// rookie mistake: a + t * (b - a)
@@ -227,11 +196,7 @@ public static class MathUtility
/// The linear value to convert. Expected range is [0, 1].
/// The gamma-encoded value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float LinearToGamma(float value)
{
return LinearToGamma(value, DefaultGammaF);
@@ -244,11 +209,7 @@ public static class MathUtility
/// The gamma value to use for encoding.
/// The gamma-encoded value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float LinearToGamma(float value, float gamma)
{
return MathF.Pow(value, 1.0f / gamma);
@@ -260,11 +221,7 @@ public static class MathUtility
/// The linear value to convert. Expected range is [0, 1].
/// The gamma-encoded value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double LinearToGamma(double value)
{
return LinearToGamma(value, DefaultGamma);
@@ -277,11 +234,7 @@ public static class MathUtility
/// The gamma value to use for encoding.
/// The gamma-encoded value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double LinearToGamma(double value, double gamma)
{
return System.Math.Pow(value, 1.0 / gamma);
@@ -365,11 +318,7 @@ public static class MathUtility
/// The new maximum value.
/// The scaled value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float ScaleRange(float value, float oldMin, float oldMax, float newMin, float newMax)
{
float oldRange = oldMax - oldMin;
@@ -388,11 +337,7 @@ public static class MathUtility
/// The new maximum value.
/// The scaled value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static double ScaleRange(double value, double oldMin, double oldMax, double newMin, double newMax)
{
double oldRange = oldMax - oldMin;
diff --git a/X10D/src/Math/SByteExtensions.cs b/X10D/src/Math/SByteExtensions.cs
index 5bf96c5..cc61037 100644
--- a/X10D/src/Math/SByteExtensions.cs
+++ b/X10D/src/Math/SByteExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -19,11 +20,7 @@ public static class SByteExtensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte DigitalRoot(this sbyte value)
{
int root = System.Math.Abs(value).Mod(9);
@@ -37,11 +34,7 @@ public static class SByteExtensions
/// The factorial of .
/// is less than 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long Factorial(this sbyte value)
{
if (value < 0)
@@ -70,11 +63,7 @@ public static class SByteExtensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte GreatestCommonFactor(this sbyte value, sbyte other)
{
return (sbyte)((long)value).GreatestCommonFactor(other);
@@ -89,11 +78,7 @@ public static class SByteExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this sbyte value)
{
return (value & 1) == 0;
@@ -108,11 +93,7 @@ public static class SByteExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this sbyte value)
{
return !value.IsEven();
@@ -126,11 +107,7 @@ public static class SByteExtensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this sbyte value)
{
return ((long)value).IsPrime();
@@ -143,11 +120,7 @@ public static class SByteExtensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte LowestCommonMultiple(this sbyte value, sbyte other)
{
return (sbyte)((long)value).LowestCommonMultiple(other);
@@ -168,11 +141,7 @@ public static class SByteExtensions
/// ShreevatsaR, https://stackoverflow.com/a/1082938/1467293
/// CC-BY-SA 2.5
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte Mod(this sbyte dividend, sbyte divisor)
{
int r = dividend % divisor;
@@ -188,11 +157,7 @@ public static class SByteExtensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this sbyte value)
{
return ((long)value).MultiplicativePersistence();
@@ -226,11 +191,7 @@ public static class SByteExtensions
///
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this sbyte value)
{
return System.Math.Sign(value);
@@ -244,11 +205,7 @@ public static class SByteExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte Wrap(this sbyte value, sbyte low, sbyte high)
{
return (sbyte)((long)value).Wrap(low, high);
@@ -261,11 +218,7 @@ public static class SByteExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte Wrap(this sbyte value, sbyte length)
{
return (sbyte)((long)value).Wrap(length);
diff --git a/X10D/src/Math/SingleExtensions.cs b/X10D/src/Math/SingleExtensions.cs
index faa5bcd..8008421 100644
--- a/X10D/src/Math/SingleExtensions.cs
+++ b/X10D/src/Math/SingleExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -20,11 +21,7 @@ public static class SingleExtensions
/// is equal to , less than -1, or greater than 1, is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Acos(this float value)
{
return MathF.Acos(value);
@@ -42,11 +39,7 @@ public static class SingleExtensions
/// is less than 1 or equal to , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Acosh(this float value)
{
return MathF.Acosh(value);
@@ -64,11 +57,7 @@ public static class SingleExtensions
/// is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Asin(this float value)
{
return MathF.Asin(value);
@@ -86,11 +75,7 @@ public static class SingleExtensions
/// , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Asinh(this float value)
{
return MathF.Asinh(value);
@@ -107,11 +92,7 @@ public static class SingleExtensions
/// is equal to , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Atan(this float value)
{
return MathF.Atan(value);
@@ -130,11 +111,7 @@ public static class SingleExtensions
/// is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Atanh(this float value)
{
return MathF.Atanh(value);
@@ -146,11 +123,7 @@ public static class SingleExtensions
/// The number whose square root is to be found.
/// The square root of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Complex ComplexSqrt(this float value)
{
switch (value)
@@ -180,11 +153,7 @@ public static class SingleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Cos(this float value)
{
return MathF.Cos(value);
@@ -201,11 +170,7 @@ public static class SingleExtensions
/// , is returned.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Cosh(this float value)
{
return MathF.Cosh(value);
@@ -217,11 +182,7 @@ public static class SingleExtensions
/// The angle in degrees to convert.
/// The result of π * / 180.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float DegreesToRadians(this float value)
{
return value * (MathF.PI / 180.0f);
@@ -236,11 +197,7 @@ public static class SingleExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this float value)
{
return value % 2 == 0;
@@ -255,11 +212,7 @@ public static class SingleExtensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this float value)
{
return !value.IsEven();
@@ -271,11 +224,7 @@ public static class SingleExtensions
/// The angle in radians to convert.
/// The result of π * / 180.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float RadiansToDegrees(this float value)
{
return value * (180.0f / MathF.PI);
@@ -287,11 +236,7 @@ public static class SingleExtensions
/// The value to round.
/// rounded to the nearest whole number.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Round(this float value)
{
return value.Round(1.0f);
@@ -304,11 +249,7 @@ public static class SingleExtensions
/// The nearest multiple to which should be rounded.
/// rounded to the nearest multiple of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Round(this float value, float nearest)
{
return MathF.Round(value / nearest) * nearest;
@@ -321,11 +262,7 @@ public static class SingleExtensions
/// The saturated value.
/// This method clamps between 0 and 1.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Saturate(this float value)
{
return System.Math.Clamp(value, 0.0f, 1.0f);
@@ -359,11 +296,7 @@ public static class SingleExtensions
///
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Sign(this float value)
{
return MathF.Sign(value);
@@ -399,11 +332,7 @@ public static class SingleExtensions
/// SLenik https://stackoverflow.com/a/6755197/1467293
/// CC BY-SA 3.0
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Sqrt(this float value)
{
switch (value)
@@ -437,11 +366,7 @@ public static class SingleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Sin(this float value)
{
return MathF.Sin(value);
@@ -457,11 +382,7 @@ public static class SingleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Sinh(this float value)
{
return MathF.Sinh(value);
@@ -477,11 +398,7 @@ public static class SingleExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Tan(this float value)
{
return MathF.Sin(value);
@@ -498,11 +415,7 @@ public static class SingleExtensions
/// , this method returns .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Tanh(this float value)
{
return MathF.Tanh(value);
@@ -516,11 +429,7 @@ public static class SingleExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Wrap(this float value, float low, float high)
{
return (float)((double)value).Wrap(low, high);
@@ -533,11 +442,7 @@ public static class SingleExtensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static float Wrap(this float value, float length)
{
return (float)((double)value).Wrap(length);
diff --git a/X10D/src/Math/UInt16Extensions.cs b/X10D/src/Math/UInt16Extensions.cs
index 065afcf..e118e58 100644
--- a/X10D/src/Math/UInt16Extensions.cs
+++ b/X10D/src/Math/UInt16Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -19,11 +20,7 @@ public static class UInt16Extensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort DigitalRoot(this ushort value)
{
var root = (ushort)(value % 9);
@@ -36,11 +33,7 @@ public static class UInt16Extensions
/// The value whose factorial to compute.
/// The factorial of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong Factorial(this ushort value)
{
if (value == 0)
@@ -65,11 +58,7 @@ public static class UInt16Extensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort GreatestCommonFactor(this ushort value, ushort other)
{
return (ushort)((long)value).GreatestCommonFactor(other);
@@ -84,11 +73,7 @@ public static class UInt16Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this ushort value)
{
return (value & 1) == 0;
@@ -102,11 +87,7 @@ public static class UInt16Extensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this ushort value)
{
return ((ulong)value).IsPrime();
@@ -121,11 +102,7 @@ public static class UInt16Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this ushort value)
{
return !value.IsEven();
@@ -139,11 +116,7 @@ public static class UInt16Extensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort LowestCommonMultiple(this ushort value, ushort other)
{
return (ushort)((ulong)value).LowestCommonMultiple(other);
@@ -158,11 +131,7 @@ public static class UInt16Extensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this ushort value)
{
return ((ulong)value).MultiplicativePersistence();
@@ -176,11 +145,7 @@ public static class UInt16Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort Wrap(this ushort value, ushort low, ushort high)
{
return (ushort)((ulong)value).Wrap(low, high);
@@ -193,11 +158,7 @@ public static class UInt16Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort Wrap(this ushort value, ushort length)
{
return (ushort)((ulong)value).Wrap(length);
diff --git a/X10D/src/Math/UInt32Extensions.cs b/X10D/src/Math/UInt32Extensions.cs
index df2d291..79fed45 100644
--- a/X10D/src/Math/UInt32Extensions.cs
+++ b/X10D/src/Math/UInt32Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -19,11 +20,7 @@ public static class UInt32Extensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint DigitalRoot(this uint value)
{
uint root = value % 9;
@@ -36,11 +33,7 @@ public static class UInt32Extensions
/// The value whose factorial to compute.
/// The factorial of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong Factorial(this uint value)
{
if (value == 0)
@@ -65,11 +58,7 @@ public static class UInt32Extensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint GreatestCommonFactor(this uint value, uint other)
{
return (uint)((long)value).GreatestCommonFactor(other);
@@ -84,11 +73,7 @@ public static class UInt32Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this uint value)
{
return (value & 1) == 0;
@@ -102,11 +87,7 @@ public static class UInt32Extensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this uint value)
{
return ((ulong)value).IsPrime();
@@ -121,11 +102,7 @@ public static class UInt32Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this uint value)
{
return !value.IsEven();
@@ -139,11 +116,7 @@ public static class UInt32Extensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint LowestCommonMultiple(this uint value, uint other)
{
return (uint)((ulong)value).LowestCommonMultiple(other);
@@ -158,11 +131,7 @@ public static class UInt32Extensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this uint value)
{
return ((ulong)value).MultiplicativePersistence();
@@ -176,11 +145,7 @@ public static class UInt32Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint Wrap(this uint value, uint low, uint high)
{
return (uint)((ulong)value).Wrap(low, high);
@@ -193,11 +158,7 @@ public static class UInt32Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint Wrap(this uint value, uint length)
{
return (uint)((ulong)value).Wrap(length);
diff --git a/X10D/src/Math/UInt64Extensions.cs b/X10D/src/Math/UInt64Extensions.cs
index 818a975..4bf9365 100644
--- a/X10D/src/Math/UInt64Extensions.cs
+++ b/X10D/src/Math/UInt64Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Math;
@@ -19,11 +20,7 @@ public static class UInt64Extensions
/// For example, the digital root of 239 is 5: 2 + 3 + 9 = 14, then 1 + 4 = 5.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong DigitalRoot(this ulong value)
{
ulong root = value % 9;
@@ -36,11 +33,7 @@ public static class UInt64Extensions
/// The value whose factorial to compute.
/// The factorial of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong Factorial(this ulong value)
{
if (value == 0)
@@ -65,11 +58,7 @@ public static class UInt64Extensions
/// The second value.
/// The greatest common factor between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong GreatestCommonFactor(this ulong value, ulong other)
{
while (other != 0)
@@ -89,11 +78,7 @@ public static class UInt64Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEven(this ulong value)
{
return (value & 1) == 0;
@@ -107,11 +92,7 @@ public static class UInt64Extensions
/// if is prime; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPrime(this ulong value)
{
switch (value)
@@ -145,11 +126,7 @@ public static class UInt64Extensions
/// otherwise.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOdd(this ulong value)
{
return !value.IsEven();
@@ -163,11 +140,7 @@ public static class UInt64Extensions
/// The second value.
/// The lowest common multiple between and .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong LowestCommonMultiple(this ulong value, ulong other)
{
if (value == 0 || other == 0)
@@ -197,11 +170,7 @@ public static class UInt64Extensions
/// Multiplicative persistence is defined as the recursive digital product until that product is a single digit.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int MultiplicativePersistence(this ulong value)
{
var persistence = 0;
@@ -246,11 +215,7 @@ public static class UInt64Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong Wrap(this ulong value, ulong low, ulong high)
{
ulong difference = high - low;
@@ -264,11 +229,7 @@ public static class UInt64Extensions
/// The exclusive upper bound.
/// The wrapped value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong Wrap(this ulong value, ulong length)
{
return ((value % length) + length) % length;
diff --git a/X10D/src/Net/EndPointExtensions.cs b/X10D/src/Net/EndPointExtensions.cs
index b10de62..4bbfacd 100644
--- a/X10D/src/Net/EndPointExtensions.cs
+++ b/X10D/src/Net/EndPointExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Net;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Net;
@@ -22,11 +23,7 @@ public static class EndPointExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string GetHost(this EndPoint endPoint)
{
#if NET6_0_OR_GREATER
@@ -59,11 +56,7 @@ public static class EndPointExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int GetPort(this EndPoint endPoint)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Net/IPAddressExtensions.cs b/X10D/src/Net/IPAddressExtensions.cs
index 8198b3b..bd79612 100644
--- a/X10D/src/Net/IPAddressExtensions.cs
+++ b/X10D/src/Net/IPAddressExtensions.cs
@@ -2,6 +2,7 @@
using System.Net;
using System.Net.Sockets;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Net;
@@ -19,11 +20,7 @@ public static class IPAddressExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsIPv4(this IPAddress address)
{
#if NET6_0_OR_GREATER
@@ -47,11 +44,7 @@ public static class IPAddressExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsIPv6(this IPAddress address)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Net/Int16Extensions.cs b/X10D/src/Net/Int16Extensions.cs
index 699cef2..3c5d6da 100644
--- a/X10D/src/Net/Int16Extensions.cs
+++ b/X10D/src/Net/Int16Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Net;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Net;
@@ -15,11 +16,7 @@ public static class Int16Extensions
/// The value to convert, expressed in host byte order.
/// An integer value, expressed in network byte order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short HostToNetworkOrder(this short value)
{
return IPAddress.HostToNetworkOrder(value);
@@ -31,11 +28,7 @@ public static class Int16Extensions
/// The value to convert, expressed in network byte order.
/// An integer value, expressed in host byte order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short NetworkToHostOrder(this short value)
{
return IPAddress.NetworkToHostOrder(value);
diff --git a/X10D/src/Net/Int32Extensions.cs b/X10D/src/Net/Int32Extensions.cs
index 8bf0f59..62b4cda 100644
--- a/X10D/src/Net/Int32Extensions.cs
+++ b/X10D/src/Net/Int32Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Net;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Net;
@@ -15,11 +16,7 @@ public static class Int32Extensions
/// The value to convert, expressed in host byte order.
/// An integer value, expressed in network byte order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int HostToNetworkOrder(this int value)
{
return IPAddress.HostToNetworkOrder(value);
@@ -31,11 +28,7 @@ public static class Int32Extensions
/// The value to convert, expressed in network byte order.
/// An integer value, expressed in host byte order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int NetworkToHostOrder(this int value)
{
return IPAddress.NetworkToHostOrder(value);
diff --git a/X10D/src/Net/Int64Extensions.cs b/X10D/src/Net/Int64Extensions.cs
index ede22c4..2156eee 100644
--- a/X10D/src/Net/Int64Extensions.cs
+++ b/X10D/src/Net/Int64Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Net;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Net;
@@ -15,11 +16,7 @@ public static class Int64Extensions
/// The value to convert, expressed in host byte order.
/// An integer value, expressed in network byte order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long HostToNetworkOrder(this long value)
{
return IPAddress.HostToNetworkOrder(value);
@@ -31,11 +28,7 @@ public static class Int64Extensions
/// The value to convert, expressed in network byte order.
/// An integer value, expressed in host byte order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long NetworkToHostOrder(this long value)
{
return IPAddress.NetworkToHostOrder(value);
diff --git a/X10D/src/Numerics/ByteExtensions.cs b/X10D/src/Numerics/ByteExtensions.cs
index c6eba5b..c1ed063 100644
--- a/X10D/src/Numerics/ByteExtensions.cs
+++ b/X10D/src/Numerics/ByteExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Numerics;
@@ -19,11 +20,7 @@ public static class ByteExtensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this byte value)
{
return ((uint)value).PopCount();
@@ -38,11 +35,7 @@ public static class ByteExtensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte RotateLeft(this byte value, int count)
{
count = count.Mod(8);
@@ -58,11 +51,7 @@ public static class ByteExtensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte RotateRight(this byte value, int count)
{
count = count.Mod(8);
@@ -78,11 +67,7 @@ public static class ByteExtensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte RoundUpToPowerOf2(this byte value)
{
return (byte)((uint)value).RoundUpToPowerOf2();
diff --git a/X10D/src/Numerics/Int16Extensions.cs b/X10D/src/Numerics/Int16Extensions.cs
index aaa1005..b0149b7 100644
--- a/X10D/src/Numerics/Int16Extensions.cs
+++ b/X10D/src/Numerics/Int16Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -18,11 +19,7 @@ public static class Int16Extensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this short value)
{
return ((uint)value).PopCount();
@@ -37,11 +34,7 @@ public static class Int16Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short RotateLeft(this short value, int count)
{
var unsigned = unchecked((ushort)value);
@@ -57,11 +50,7 @@ public static class Int16Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short RotateRight(this short value, int count)
{
var unsigned = unchecked((ushort)value);
@@ -77,11 +66,7 @@ public static class Int16Extensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static short RoundUpToPowerOf2(this short value)
{
return (short)((uint)value).RoundUpToPowerOf2();
diff --git a/X10D/src/Numerics/Int32Extensions.cs b/X10D/src/Numerics/Int32Extensions.cs
index 8fc4937..3069e9e 100644
--- a/X10D/src/Numerics/Int32Extensions.cs
+++ b/X10D/src/Numerics/Int32Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -18,11 +19,7 @@ public static class Int32Extensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this int value)
{
return ((uint)value).PopCount();
@@ -37,11 +34,7 @@ public static class Int32Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int RotateLeft(this int value, int count)
{
var unsigned = unchecked((uint)value);
@@ -57,11 +50,7 @@ public static class Int32Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int RotateRight(this int value, int count)
{
var unsigned = unchecked((uint)value);
@@ -77,11 +66,7 @@ public static class Int32Extensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int RoundUpToPowerOf2(this int value)
{
return (int)((uint)value).RoundUpToPowerOf2();
diff --git a/X10D/src/Numerics/Int64Extensions.cs b/X10D/src/Numerics/Int64Extensions.cs
index f115e08..dd05c1f 100644
--- a/X10D/src/Numerics/Int64Extensions.cs
+++ b/X10D/src/Numerics/Int64Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -18,11 +19,7 @@ public static class Int64Extensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this long value)
{
return ((ulong)value).PopCount();
@@ -37,11 +34,7 @@ public static class Int64Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long RotateLeft(this long value, int count)
{
var unsigned = unchecked((ulong)value);
@@ -57,11 +50,7 @@ public static class Int64Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long RotateRight(this long value, int count)
{
var unsigned = unchecked((ulong)value);
@@ -77,11 +66,7 @@ public static class Int64Extensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long RoundUpToPowerOf2(this long value)
{
return (long)((ulong)value).RoundUpToPowerOf2();
diff --git a/X10D/src/Numerics/SByteExtensions.cs b/X10D/src/Numerics/SByteExtensions.cs
index bdc1d71..e5485ad 100644
--- a/X10D/src/Numerics/SByteExtensions.cs
+++ b/X10D/src/Numerics/SByteExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -19,11 +20,7 @@ public static class SByteExtensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this sbyte value)
{
return ((uint)value).PopCount();
@@ -38,11 +35,7 @@ public static class SByteExtensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte RotateLeft(this sbyte value, int count)
{
var signed = unchecked((byte)value);
@@ -58,11 +51,7 @@ public static class SByteExtensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte RotateRight(this sbyte value, int count)
{
var signed = unchecked((byte)value);
@@ -78,11 +67,7 @@ public static class SByteExtensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static sbyte RoundUpToPowerOf2(this sbyte value)
{
return (sbyte)((uint)value).RoundUpToPowerOf2();
diff --git a/X10D/src/Numerics/UInt16Extensions.cs b/X10D/src/Numerics/UInt16Extensions.cs
index f28e318..e10d885 100644
--- a/X10D/src/Numerics/UInt16Extensions.cs
+++ b/X10D/src/Numerics/UInt16Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -19,11 +20,7 @@ public static class UInt16Extensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this ushort value)
{
return ((uint)value).PopCount();
@@ -38,11 +35,7 @@ public static class UInt16Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort RotateLeft(this ushort value, int count)
{
return (ushort)((ushort)(value << count) | (ushort)(value >> (16 - count)));
@@ -57,11 +50,7 @@ public static class UInt16Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort RotateRight(this ushort value, int count)
{
return (ushort)((ushort)(value >> count) | (ushort)(value << (16 - count)));
@@ -76,11 +65,7 @@ public static class UInt16Extensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ushort RoundUpToPowerOf2(this ushort value)
{
return (ushort)((uint)value).RoundUpToPowerOf2();
diff --git a/X10D/src/Numerics/UInt32Extensions.cs b/X10D/src/Numerics/UInt32Extensions.cs
index b02a205..117e49b 100644
--- a/X10D/src/Numerics/UInt32Extensions.cs
+++ b/X10D/src/Numerics/UInt32Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -20,11 +21,7 @@ public static class UInt32Extensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this uint value)
{
#if NETCOREAPP3_1_OR_GREATER
@@ -52,11 +49,7 @@ public static class UInt32Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint RotateLeft(this uint value, int count)
{
return (value << count) | (value >> (32 - count));
@@ -71,11 +64,7 @@ public static class UInt32Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint RotateRight(this uint value, int count)
{
return (value >> count) | (value << (32 - count));
@@ -90,11 +79,7 @@ public static class UInt32Extensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static uint RoundUpToPowerOf2(this uint value)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Numerics/UInt64Extensions.cs b/X10D/src/Numerics/UInt64Extensions.cs
index a103483..0ce9a3e 100644
--- a/X10D/src/Numerics/UInt64Extensions.cs
+++ b/X10D/src/Numerics/UInt64Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Numerics;
@@ -20,11 +21,7 @@ public static class UInt64Extensions
/// POPCNT
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int PopCount(this ulong value)
{
#if NETCOREAPP3_1_OR_GREATER
@@ -52,11 +49,7 @@ public static class UInt64Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong RotateLeft(this ulong value, int count)
{
return (value << count) | (value >> (64 - count));
@@ -71,11 +64,7 @@ public static class UInt64Extensions
///
/// The rotated value.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong RotateRight(this ulong value, int count)
{
return (value >> count) | (value << (64 - count));
@@ -90,11 +79,7 @@ public static class UInt64Extensions
/// is 0 or the result overflows.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static ulong RoundUpToPowerOf2(this ulong value)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Numerics/Vector2Extensions.cs b/X10D/src/Numerics/Vector2Extensions.cs
index ff51e75..4604915 100644
--- a/X10D/src/Numerics/Vector2Extensions.cs
+++ b/X10D/src/Numerics/Vector2Extensions.cs
@@ -2,6 +2,7 @@
using System.Drawing;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Drawing;
using X10D.Math;
@@ -34,11 +35,7 @@ public static class Vector2Extensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this Vector2 point, LineF line)
{
(float x1, float x2) = (line.Start.X, line.End.X);
@@ -58,11 +55,7 @@ public static class Vector2Extensions
/// ; otherwise .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this Vector2 point, PointF start, PointF end)
{
return point.IsOnLine(new LineF(start, end));
@@ -79,11 +72,7 @@ public static class Vector2Extensions
/// ; otherwise .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsOnLine(this Vector2 point, Vector2 start, Vector2 end)
{
return point.IsOnLine(new LineF(start, end));
@@ -95,11 +84,7 @@ public static class Vector2Extensions
/// The vector whose components to round.
/// The rounded vector.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector2 Round(this Vector2 vector)
{
return vector.Round(1.0f);
@@ -112,11 +97,7 @@ public static class Vector2Extensions
/// The nearest multiple to which the components should be rounded.
/// The rounded vector.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector2 Round(this Vector2 vector, float nearest)
{
float x = vector.X.Round(nearest);
@@ -130,11 +111,7 @@ public static class Vector2Extensions
/// The vector to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static PointF ToPointF(this Vector2 vector)
{
return new PointF(vector.X, vector.Y);
@@ -146,11 +123,7 @@ public static class Vector2Extensions
/// The vector to convert.
/// The resulting .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static SizeF ToSizeF(this Vector2 vector)
{
return new SizeF(vector.X, vector.Y);
@@ -166,11 +139,7 @@ public static class Vector2Extensions
/// , and whose component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector2 WithX(this Vector2 vector, float x)
{
return vector with {X = x};
@@ -186,11 +155,7 @@ public static class Vector2Extensions
/// , and whose component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector2 WithY(this Vector2 vector, float y)
{
return vector with {Y = y};
diff --git a/X10D/src/Numerics/Vector3Extensions.cs b/X10D/src/Numerics/Vector3Extensions.cs
index fd81345..9f5d1e6 100644
--- a/X10D/src/Numerics/Vector3Extensions.cs
+++ b/X10D/src/Numerics/Vector3Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Numerics;
@@ -30,11 +31,7 @@ public static class Vector3Extensions
/// The vector whose components to round.
/// The rounded vector.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector3 Round(this Vector3 vector)
{
return vector.Round(1.0f);
@@ -47,11 +44,7 @@ public static class Vector3Extensions
/// The nearest multiple to which the components should be rounded.
/// The rounded vector.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector3 Round(this Vector3 vector, float nearest)
{
float x = vector.X.Round(nearest);
@@ -70,11 +63,7 @@ public static class Vector3Extensions
/// the same as that of , and whose component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector3 WithX(this Vector3 vector, float x)
{
return vector with {X = x};
@@ -90,11 +79,7 @@ public static class Vector3Extensions
/// the same as that of , and whose component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector3 WithY(this Vector3 vector, float y)
{
return vector with {Y = y};
@@ -110,11 +95,7 @@ public static class Vector3Extensions
/// the same as that of , and whose component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector3 WithZ(this Vector3 vector, float z)
{
return vector with {Z = z};
diff --git a/X10D/src/Numerics/Vector4Extensions.cs b/X10D/src/Numerics/Vector4Extensions.cs
index 81e3e81..c8223e5 100644
--- a/X10D/src/Numerics/Vector4Extensions.cs
+++ b/X10D/src/Numerics/Vector4Extensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Numerics;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Numerics;
@@ -32,11 +33,7 @@ public static class Vector4Extensions
/// The vector whose components to round.
/// The rounded vector.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector4 Round(this Vector4 vector)
{
return vector.Round(1.0f);
@@ -49,11 +46,7 @@ public static class Vector4Extensions
/// The nearest multiple to which the components should be rounded.
/// The rounded vector.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector4 Round(this Vector4 vector, float nearest)
{
float x = vector.X.Round(nearest);
@@ -75,11 +68,7 @@ public static class Vector4Extensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector4 WithX(this Vector4 vector, float x)
{
return vector with {X = x};
@@ -97,11 +86,7 @@ public static class Vector4Extensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector4 WithY(this Vector4 vector, float y)
{
return vector with {Y = y};
@@ -119,11 +104,7 @@ public static class Vector4Extensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector4 WithZ(this Vector4 vector, float z)
{
return vector with {Z = z};
@@ -141,11 +122,7 @@ public static class Vector4Extensions
/// component is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static Vector4 WithW(this Vector4 vector, float w)
{
return vector with {W = w};
diff --git a/X10D/src/Reflection/MemberInfoExtensions.cs b/X10D/src/Reflection/MemberInfoExtensions.cs
index 24039e0..afe4722 100644
--- a/X10D/src/Reflection/MemberInfoExtensions.cs
+++ b/X10D/src/Reflection/MemberInfoExtensions.cs
@@ -2,6 +2,7 @@
using System.Globalization;
using System.Reflection;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Reflection;
@@ -21,11 +22,7 @@ public static class MemberInfoExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool HasCustomAttribute(this MemberInfo member)
where T : Attribute
{
@@ -51,11 +48,7 @@ public static class MemberInfoExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool HasCustomAttribute(this MemberInfo member, Type attribute)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Reflection/TypeExtensions.cs b/X10D/src/Reflection/TypeExtensions.cs
index 6f56d62..b336b06 100644
--- a/X10D/src/Reflection/TypeExtensions.cs
+++ b/X10D/src/Reflection/TypeExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.Contracts;
using System.Globalization;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Reflection;
@@ -17,11 +18,7 @@ public static class TypeExtensions
/// if the current exists on the type; otherwise, .
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Implements(this Type value)
{
#if NET6_0_OR_GREATER
@@ -48,11 +45,7 @@ public static class TypeExtensions
/// is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Implements(this Type value, Type interfaceType)
{
#if NET6_0_OR_GREATER
@@ -93,11 +86,7 @@ public static class TypeExtensions
/// is .
/// is not a class.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Inherits(this Type value)
where T : class
{
@@ -133,11 +122,7 @@ public static class TypeExtensions
/// is not a class.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool Inherits(this Type value, Type type)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Text/CharExtensions.cs b/X10D/src/Text/CharExtensions.cs
index 1e6d9f6..7ed87f9 100644
--- a/X10D/src/Text/CharExtensions.cs
+++ b/X10D/src/Text/CharExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Text;
@@ -14,11 +15,7 @@ public static class CharExtensions
/// The character to check.
/// if this character is an emoji; otherwise, .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEmoji(this char value)
{
return value.ToString().IsEmoji();
@@ -33,11 +30,7 @@ public static class CharExtensions
/// A composed of repeated times.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Repeat(this char value, int count)
{
return count switch
diff --git a/X10D/src/Text/Extensions.cs b/X10D/src/Text/Extensions.cs
index 97e434c..09d347b 100644
--- a/X10D/src/Text/Extensions.cs
+++ b/X10D/src/Text/Extensions.cs
@@ -2,6 +2,7 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
using System.Text.Json;
+using X10D.CompilerServices;
namespace X10D.Text;
@@ -18,7 +19,7 @@ public static class Extensions
/// The type of the value to convert.
/// A JSON string representing the object.
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string ToJson(this T value, JsonSerializerOptions? options = null)
{
return JsonSerializer.Serialize(value, options);
diff --git a/X10D/src/Text/RuneExtensions.cs b/X10D/src/Text/RuneExtensions.cs
index 629d0e1..0047d1b 100644
--- a/X10D/src/Text/RuneExtensions.cs
+++ b/X10D/src/Text/RuneExtensions.cs
@@ -5,6 +5,7 @@ using System.Globalization;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
+using X10D.CompilerServices;
namespace X10D.Text;
@@ -19,7 +20,7 @@ public static class RuneExtensions
/// The rune to check.
/// if this rune is an emoji; otherwise, .
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEmoji(this Rune value)
{
return value.ToString().IsEmoji();
@@ -34,7 +35,7 @@ public static class RuneExtensions
/// A composed of repeated times.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Repeat(this Rune value, int count)
{
switch (count)
diff --git a/X10D/src/Text/StringExtensions.cs b/X10D/src/Text/StringExtensions.cs
index b697c6e..052b4c5 100644
--- a/X10D/src/Text/StringExtensions.cs
+++ b/X10D/src/Text/StringExtensions.cs
@@ -6,6 +6,7 @@ using System.Text;
using System.Text.Json;
#endif
using X10D.Collections;
+using X10D.CompilerServices;
using X10D.Core;
using X10D.IO;
@@ -25,11 +26,7 @@ public static class StringExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[return: NotNullIfNotNull("value")]
public static string? AsNullIfEmpty(this string? value)
{
@@ -46,11 +43,7 @@ public static class StringExtensions
/// whitespace; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[return: NotNullIfNotNull("value")]
public static string? AsNullIfWhiteSpace(this string? value)
{
@@ -64,11 +57,7 @@ public static class StringExtensions
/// The plain text string representation of .
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Base64Decode(this string value)
{
#if NET6_0_OR_GREATER
@@ -90,11 +79,7 @@ public static class StringExtensions
/// The string representation, in base 64, of .
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Base64Encode(this string value)
{
#if NET6_0_OR_GREATER
@@ -127,11 +112,7 @@ public static class StringExtensions
/// is .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string ChangeEncoding(this string value, Encoding sourceEncoding, Encoding destinationEncoding)
{
#if NET6_0_OR_GREATER
@@ -370,11 +351,7 @@ public static class StringExtensions
/// (http://geekswithblogs.net/sdorman/Default.aspx).
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static T EnumParse(this string value)
where T : struct, Enum
{
@@ -393,11 +370,7 @@ public static class StringExtensions
/// (http://geekswithblogs.net/sdorman/Default.aspx).
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static T EnumParse(this string value, bool ignoreCase)
where T : struct, Enum
{
@@ -444,11 +417,7 @@ public static class StringExtensions
/// The string to convert.
/// Returns a [].
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte[] GetBytes(this string value)
{
return value.GetBytes(Encoding.UTF8);
@@ -465,11 +434,7 @@ public static class StringExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static byte[] GetBytes(this string value, Encoding encoding)
{
#if NET6_0_OR_GREATER
@@ -496,11 +461,7 @@ public static class StringExtensions
/// The input string.
/// if this string is an emoji; otherwise, .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEmoji(this string value)
{
#if NET6_0_OR_GREATER
@@ -524,11 +485,7 @@ public static class StringExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsEmpty(this string value)
{
#if NET6_0_OR_GREATER
@@ -552,11 +509,7 @@ public static class StringExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLower(this string value)
{
#if NET6_0_OR_GREATER
@@ -610,11 +563,7 @@ public static class StringExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsNullOrEmpty([NotNullWhen(false)] this string? value)
{
return string.IsNullOrEmpty(value);
@@ -630,11 +579,7 @@ public static class StringExtensions
/// whitespace; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsNullOrWhiteSpace([NotNullWhen(false)] this string? value)
{
return string.IsNullOrWhiteSpace(value);
@@ -651,11 +596,7 @@ public static class StringExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsPalindrome(this string value)
{
#if NET6_0_OR_GREATER
@@ -729,11 +670,7 @@ public static class StringExtensions
/// if all alpha characters in this string are uppercase; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsUpper(this string value)
{
#if NET6_0_OR_GREATER
@@ -788,11 +725,7 @@ public static class StringExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsWhiteSpace(this string value)
{
#if NET6_0_OR_GREATER
@@ -829,11 +762,7 @@ public static class StringExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Repeat(this string value, int count)
{
#if NET6_0_OR_GREATER
@@ -878,11 +807,7 @@ public static class StringExtensions
/// is .
/// is less than 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Randomize(this string source, int length, Random? random = null)
{
#if NET6_0_OR_GREATER
@@ -924,11 +849,7 @@ public static class StringExtensions
/// The string to reverse.
/// A whose characters are that of in reverse order.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Reverse(this string value)
{
#if NET6_0_OR_GREATER
@@ -966,11 +887,7 @@ public static class StringExtensions
/// A new containing the characters in , rearranged.
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static string Shuffled(this string value, Random? random = null)
{
#if NET6_0_OR_GREATER
@@ -1000,11 +917,7 @@ public static class StringExtensions
///
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static IEnumerable Split(this string value, int chunkSize)
{
#if NET6_0_OR_GREATER
@@ -1116,11 +1029,7 @@ public static class StringExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[return: NotNullIfNotNull("alternative")]
public static string? WithEmptyAlternative(this string? value, string? alternative)
{
@@ -1138,11 +1047,7 @@ public static class StringExtensions
/// whitespace; otherwise, .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[return: NotNullIfNotNull("alternative")]
public static string? WithWhiteSpaceAlternative(this string? value, string? alternative)
{
diff --git a/X10D/src/Time/ByteExtensions.cs b/X10D/src/Time/ByteExtensions.cs
index 7273fce..0caf4df 100644
--- a/X10D/src/Time/ByteExtensions.cs
+++ b/X10D/src/Time/ByteExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -17,11 +18,7 @@ public static class ByteExtensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this byte value)
{
if (value == 0)
@@ -47,11 +44,7 @@ public static class ByteExtensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this byte value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -72,11 +65,7 @@ public static class ByteExtensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this byte value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -88,11 +77,7 @@ public static class ByteExtensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this byte value)
{
return TimeSpan.FromTicks(value);
@@ -106,11 +91,7 @@ public static class ByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this byte value)
{
return TimeSpan.FromMilliseconds(value);
@@ -124,11 +105,7 @@ public static class ByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this byte value)
{
return TimeSpan.FromSeconds(value);
@@ -142,11 +119,7 @@ public static class ByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this byte value)
{
return TimeSpan.FromMinutes(value);
@@ -160,11 +133,7 @@ public static class ByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this byte value)
{
return TimeSpan.FromHours(value);
@@ -176,11 +145,7 @@ public static class ByteExtensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this byte value)
{
return TimeSpan.FromDays(value);
@@ -194,11 +159,7 @@ public static class ByteExtensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this byte value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/CharSpanExtensions.cs b/X10D/src/Time/CharSpanExtensions.cs
index a238503..34f7489 100644
--- a/X10D/src/Time/CharSpanExtensions.cs
+++ b/X10D/src/Time/CharSpanExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -57,11 +58,7 @@ public static class CharSpanExtensions
///
/// A new instance of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan ToTimeSpan(this ReadOnlySpan input)
{
return TimeSpanParser.TryParse(input, out TimeSpan result) ? result : default;
diff --git a/X10D/src/Time/DateOnlyExtensions.cs b/X10D/src/Time/DateOnlyExtensions.cs
index 032af08..a765cc7 100644
--- a/X10D/src/Time/DateOnlyExtensions.cs
+++ b/X10D/src/Time/DateOnlyExtensions.cs
@@ -2,6 +2,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -16,7 +17,7 @@ public static class DateOnlyExtensions
/// The date from which to calculate.
/// The rounded-down integer number of years since as of today.
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static int Age(this DateOnly value)
{
@@ -33,7 +34,7 @@ public static class DateOnlyExtensions
/// .
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Age(this DateOnly value, DateOnly referenceDate)
{
return value.ToDateTime(default).Age(referenceDate.ToDateTime(default));
@@ -60,7 +61,7 @@ public static class DateOnlyExtensions
/// The day of the week.
/// A representing the first occurence of .
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateOnly First(this DateOnly value, DayOfWeek dayOfWeek)
{
DateOnly first = value.FirstDayOfMonth();
@@ -79,7 +80,7 @@ public static class DateOnlyExtensions
/// The current date.
/// A representing the first day of the current month.
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateOnly FirstDayOfMonth(this DateOnly value)
{
return value.AddDays(1 - value.Day);
@@ -113,7 +114,7 @@ public static class DateOnlyExtensions
/// .
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this DateOnly value)
{
return DateTime.IsLeapYear(value.Year);
@@ -126,7 +127,7 @@ public static class DateOnlyExtensions
/// The day of the week.
/// A representing the final occurence of .
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateOnly Last(this DateOnly value, DayOfWeek dayOfWeek)
{
DateOnly last = value.LastDayOfMonth();
@@ -144,7 +145,7 @@ public static class DateOnlyExtensions
/// The current date.
/// A representing the last day of the current month.
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateOnly LastDayOfMonth(this DateOnly value)
{
int daysInMonth = DateTime.DaysInMonth(value.Year, value.Month);
@@ -158,7 +159,7 @@ public static class DateOnlyExtensions
/// The day of the week.
/// A representing the next occurence of .
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateOnly Next(this DateOnly value, DayOfWeek dayOfWeek)
{
int offsetDays = dayOfWeek - value.DayOfWeek;
@@ -178,11 +179,7 @@ public static class DateOnlyExtensions
/// A reference time to use with the current date.
/// The number of milliseconds that have elapsed since 1970-01-01T00:00:00.000Z.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long ToUnixTimeMilliseconds(this DateOnly value, TimeOnly time)
{
return value.ToDateTime(time).ToUnixTimeMilliseconds();
@@ -195,11 +192,7 @@ public static class DateOnlyExtensions
/// A reference time to use with the current date.
/// The number of seconds that have elapsed since 1970-01-01T00:00:00.000Z.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long ToUnixTimeSeconds(this DateOnly value, TimeOnly time)
{
return value.ToDateTime(time).ToUnixTimeSeconds();
diff --git a/X10D/src/Time/DateTimeExtensions.cs b/X10D/src/Time/DateTimeExtensions.cs
index a89e613..6750b15 100644
--- a/X10D/src/Time/DateTimeExtensions.cs
+++ b/X10D/src/Time/DateTimeExtensions.cs
@@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Globalization;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -12,11 +13,7 @@ public static class DateTimeExtensions
{
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static int Age(this DateTime value)
{
@@ -25,11 +22,7 @@ public static class DateTimeExtensions
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Age(this DateTime value, DateTime referenceDate)
{
return ((DateTimeOffset)value).Age(referenceDate);
@@ -38,11 +31,7 @@ public static class DateTimeExtensions
///
/// A representing the first occurence of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime First(this DateTime value, DayOfWeek dayOfWeek)
{
return ((DateTimeOffset)value).First(dayOfWeek).DateTime;
@@ -51,11 +40,7 @@ public static class DateTimeExtensions
///
/// A representing the first day of the current month.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime FirstDayOfMonth(this DateTime value)
{
return ((DateTimeOffset)value).FirstDayOfMonth().DateTime;
@@ -96,11 +81,7 @@ public static class DateTimeExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this DateTime value)
{
return DateTime.IsLeapYear(value.Year);
@@ -109,11 +90,7 @@ public static class DateTimeExtensions
///
/// A representing the final occurence of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime Last(this DateTime value, DayOfWeek dayOfWeek)
{
return ((DateTimeOffset)value).Last(dayOfWeek).DateTime;
@@ -122,11 +99,7 @@ public static class DateTimeExtensions
///
/// A representing the last day of the current month.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime LastDayOfMonth(this DateTime value)
{
return ((DateTimeOffset)value).LastDayOfMonth().DateTime;
@@ -135,11 +108,7 @@ public static class DateTimeExtensions
///
/// A representing the next occurence of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime Next(this DateTime value, DayOfWeek dayOfWeek)
{
return ((DateTimeOffset)value).Next(dayOfWeek).DateTime;
@@ -151,11 +120,7 @@ public static class DateTimeExtensions
/// The current date.
/// The number of milliseconds that have elapsed since 1970-01-01T00:00:00.000Z.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long ToUnixTimeMilliseconds(this DateTime value)
{
return ((DateTimeOffset)value).ToUnixTimeMilliseconds();
@@ -167,11 +132,7 @@ public static class DateTimeExtensions
/// The current date.
/// The number of seconds that have elapsed since 1970-01-01T00:00:00.000Z.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static long ToUnixTimeSeconds(this DateTime value)
{
return ((DateTimeOffset)value).ToUnixTimeSeconds();
diff --git a/X10D/src/Time/DateTimeOffsetExtensions.cs b/X10D/src/Time/DateTimeOffsetExtensions.cs
index c1acbbf..ca606f1 100644
--- a/X10D/src/Time/DateTimeOffsetExtensions.cs
+++ b/X10D/src/Time/DateTimeOffsetExtensions.cs
@@ -1,6 +1,7 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -15,11 +16,7 @@ public static class DateTimeOffsetExtensions
/// The date from which to calculate.
/// The rounded-down integer number of years since as of today.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
[ExcludeFromCodeCoverage]
public static int Age(this DateTimeOffset value)
{
@@ -36,11 +33,7 @@ public static class DateTimeOffsetExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static int Age(this DateTimeOffset value, DateTimeOffset referenceDate)
{
return (int)(((referenceDate.Date - TimeSpan.FromDays(1) - value.Date).TotalDays + 1) / 365.2425);
@@ -53,11 +46,7 @@ public static class DateTimeOffsetExtensions
/// The day of the week.
/// A representing the first occurence of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset First(this DateTimeOffset value, DayOfWeek dayOfWeek)
{
var first = value.FirstDayOfMonth();
@@ -76,11 +65,7 @@ public static class DateTimeOffsetExtensions
/// The current date.
/// A representing the first day of the current month.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FirstDayOfMonth(this DateTimeOffset value)
{
return value.AddDays(1 - value.Day);
@@ -114,11 +99,7 @@ public static class DateTimeOffsetExtensions
/// .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this DateTimeOffset value)
{
return DateTime.IsLeapYear(value.Year);
@@ -131,11 +112,7 @@ public static class DateTimeOffsetExtensions
/// The day of the week.
/// A representing the final occurence of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset Last(this DateTimeOffset value, DayOfWeek dayOfWeek)
{
var last = value.LastDayOfMonth();
@@ -153,11 +130,7 @@ public static class DateTimeOffsetExtensions
/// The current date.
/// A representing the last day of the current month.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset LastDayOfMonth(this DateTimeOffset value)
{
int daysInMonth = DateTime.DaysInMonth(value.Year, value.Month);
@@ -171,11 +144,7 @@ public static class DateTimeOffsetExtensions
/// The day of the week.
/// A representing the next occurence of .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset Next(this DateTimeOffset value, DayOfWeek dayOfWeek)
{
int offsetDays = dayOfWeek - value.DayOfWeek;
diff --git a/X10D/src/Time/DecimalExtensions.cs b/X10D/src/Time/DecimalExtensions.cs
index ee1318f..84f48e2 100644
--- a/X10D/src/Time/DecimalExtensions.cs
+++ b/X10D/src/Time/DecimalExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -16,11 +17,7 @@ public static class DecimalExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this decimal value)
{
return TimeSpan.FromMilliseconds((double)value);
@@ -34,11 +31,7 @@ public static class DecimalExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this decimal value)
{
return TimeSpan.FromSeconds((double)value);
@@ -52,11 +45,7 @@ public static class DecimalExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this decimal value)
{
return TimeSpan.FromMinutes((double)value);
@@ -70,11 +59,7 @@ public static class DecimalExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this decimal value)
{
return TimeSpan.FromHours((double)value);
@@ -86,11 +71,7 @@ public static class DecimalExtensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this decimal value)
{
return TimeSpan.FromDays((double)value);
@@ -104,11 +85,7 @@ public static class DecimalExtensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this decimal value)
{
return TimeSpan.FromDays((double)value * 7);
diff --git a/X10D/src/Time/DoubleExtensions.cs b/X10D/src/Time/DoubleExtensions.cs
index 6b16e76..59fa25f 100644
--- a/X10D/src/Time/DoubleExtensions.cs
+++ b/X10D/src/Time/DoubleExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -16,11 +17,7 @@ public static class DoubleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this double value)
{
return TimeSpan.FromMilliseconds(value);
@@ -34,11 +31,7 @@ public static class DoubleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this double value)
{
return TimeSpan.FromSeconds(value);
@@ -52,11 +45,7 @@ public static class DoubleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this double value)
{
return TimeSpan.FromMinutes(value);
@@ -70,11 +59,7 @@ public static class DoubleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this double value)
{
return TimeSpan.FromHours(value);
@@ -86,11 +71,7 @@ public static class DoubleExtensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this double value)
{
return TimeSpan.FromDays(value);
@@ -104,11 +85,7 @@ public static class DoubleExtensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this double value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/HalfExtensions.cs b/X10D/src/Time/HalfExtensions.cs
index e217ea9..090831d 100644
--- a/X10D/src/Time/HalfExtensions.cs
+++ b/X10D/src/Time/HalfExtensions.cs
@@ -1,6 +1,7 @@
#if NET5_0_OR_GREATER
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -17,7 +18,7 @@ public static class HalfExtensions
/// A whose will equal .
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this Half value)
{
return TimeSpan.FromMilliseconds((float)value);
@@ -31,7 +32,7 @@ public static class HalfExtensions
/// A whose will equal .
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this Half value)
{
return TimeSpan.FromSeconds((float)value);
@@ -45,7 +46,7 @@ public static class HalfExtensions
/// A whose will equal .
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this Half value)
{
return TimeSpan.FromMinutes((float)value);
@@ -59,7 +60,7 @@ public static class HalfExtensions
/// A whose will equal .
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this Half value)
{
return TimeSpan.FromHours((float)value);
@@ -71,7 +72,7 @@ public static class HalfExtensions
/// The duration, in days.
/// A whose will equal .
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this Half value)
{
return TimeSpan.FromDays((float)value);
@@ -85,7 +86,7 @@ public static class HalfExtensions
/// A whose will equal × 7.
///
[Pure]
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this Half value)
{
return TimeSpan.FromDays((float)value * 7);
diff --git a/X10D/src/Time/Int16Extensions.cs b/X10D/src/Time/Int16Extensions.cs
index a0fbb7d..d1644df 100644
--- a/X10D/src/Time/Int16Extensions.cs
+++ b/X10D/src/Time/Int16Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Time;
@@ -18,11 +19,7 @@ public static class Int16Extensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this short value)
{
if (value == 0)
@@ -53,11 +50,7 @@ public static class Int16Extensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this short value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -78,11 +71,7 @@ public static class Int16Extensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this short value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -94,11 +83,7 @@ public static class Int16Extensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this short value)
{
return TimeSpan.FromTicks(value);
@@ -112,11 +97,7 @@ public static class Int16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this short value)
{
return TimeSpan.FromMilliseconds(value);
@@ -130,11 +111,7 @@ public static class Int16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this short value)
{
return TimeSpan.FromSeconds(value);
@@ -148,11 +125,7 @@ public static class Int16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this short value)
{
return TimeSpan.FromMinutes(value);
@@ -166,11 +139,7 @@ public static class Int16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this short value)
{
return TimeSpan.FromHours(value);
@@ -182,11 +151,7 @@ public static class Int16Extensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this short value)
{
return TimeSpan.FromDays(value);
@@ -200,11 +165,7 @@ public static class Int16Extensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this short value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/Int32Extensions.cs b/X10D/src/Time/Int32Extensions.cs
index 6811b82..bd5f657 100644
--- a/X10D/src/Time/Int32Extensions.cs
+++ b/X10D/src/Time/Int32Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Time;
@@ -18,11 +19,7 @@ public static class Int32Extensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this int value)
{
if (value == 0)
@@ -53,11 +50,7 @@ public static class Int32Extensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this int value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -78,11 +71,7 @@ public static class Int32Extensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this int value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -94,11 +83,7 @@ public static class Int32Extensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this int value)
{
return TimeSpan.FromTicks(value);
@@ -112,11 +97,7 @@ public static class Int32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this int value)
{
return TimeSpan.FromMilliseconds(value);
@@ -130,11 +111,7 @@ public static class Int32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this int value)
{
return TimeSpan.FromSeconds(value);
@@ -148,11 +125,7 @@ public static class Int32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this int value)
{
return TimeSpan.FromMinutes(value);
@@ -166,11 +139,7 @@ public static class Int32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this int value)
{
return TimeSpan.FromHours(value);
@@ -182,11 +151,7 @@ public static class Int32Extensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this int value)
{
return TimeSpan.FromDays(value);
@@ -200,11 +165,7 @@ public static class Int32Extensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this int value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/Int64Extensions.cs b/X10D/src/Time/Int64Extensions.cs
index 8f6ea07..7a2b419 100644
--- a/X10D/src/Time/Int64Extensions.cs
+++ b/X10D/src/Time/Int64Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Time;
@@ -18,11 +19,7 @@ public static class Int64Extensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this long value)
{
if (value == 0)
@@ -53,11 +50,7 @@ public static class Int64Extensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this long value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -78,11 +71,7 @@ public static class Int64Extensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this long value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -94,11 +83,7 @@ public static class Int64Extensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this long value)
{
return TimeSpan.FromTicks(value);
@@ -112,11 +97,7 @@ public static class Int64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this long value)
{
return TimeSpan.FromMilliseconds(value);
@@ -130,11 +111,7 @@ public static class Int64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this long value)
{
return TimeSpan.FromSeconds(value);
@@ -148,11 +125,7 @@ public static class Int64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this long value)
{
return TimeSpan.FromMinutes(value);
@@ -166,11 +139,7 @@ public static class Int64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this long value)
{
return TimeSpan.FromHours(value);
@@ -182,11 +151,7 @@ public static class Int64Extensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this long value)
{
return TimeSpan.FromDays(value);
@@ -200,11 +165,7 @@ public static class Int64Extensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this long value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/SByteExtensions.cs b/X10D/src/Time/SByteExtensions.cs
index 926c894..7013e93 100644
--- a/X10D/src/Time/SByteExtensions.cs
+++ b/X10D/src/Time/SByteExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
using X10D.Math;
namespace X10D.Time;
@@ -19,11 +20,7 @@ public static class SByteExtensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this sbyte value)
{
if (value == 0)
@@ -54,11 +51,7 @@ public static class SByteExtensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this sbyte value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -79,11 +72,7 @@ public static class SByteExtensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this sbyte value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -95,11 +84,7 @@ public static class SByteExtensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this sbyte value)
{
return TimeSpan.FromTicks(value);
@@ -113,11 +98,7 @@ public static class SByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this sbyte value)
{
return TimeSpan.FromMilliseconds(value);
@@ -131,11 +112,7 @@ public static class SByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this sbyte value)
{
return TimeSpan.FromSeconds(value);
@@ -149,11 +126,7 @@ public static class SByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this sbyte value)
{
return TimeSpan.FromMinutes(value);
@@ -167,11 +140,7 @@ public static class SByteExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this sbyte value)
{
return TimeSpan.FromHours(value);
@@ -183,11 +152,7 @@ public static class SByteExtensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this sbyte value)
{
return TimeSpan.FromDays(value);
@@ -201,11 +166,7 @@ public static class SByteExtensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this sbyte value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/SingleExtensions.cs b/X10D/src/Time/SingleExtensions.cs
index f3e546c..3194791 100644
--- a/X10D/src/Time/SingleExtensions.cs
+++ b/X10D/src/Time/SingleExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -16,11 +17,7 @@ public static class SingleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this float value)
{
return TimeSpan.FromMilliseconds(value);
@@ -34,11 +31,7 @@ public static class SingleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this float value)
{
return TimeSpan.FromSeconds(value);
@@ -52,11 +45,7 @@ public static class SingleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this float value)
{
return TimeSpan.FromMinutes(value);
@@ -70,11 +59,7 @@ public static class SingleExtensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this float value)
{
return TimeSpan.FromHours(value);
@@ -86,11 +71,7 @@ public static class SingleExtensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this float value)
{
return TimeSpan.FromDays(value);
@@ -104,11 +85,7 @@ public static class SingleExtensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this float value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/StringExtensions.cs b/X10D/src/Time/StringExtensions.cs
index dbb154b..4ebc4b0 100644
--- a/X10D/src/Time/StringExtensions.cs
+++ b/X10D/src/Time/StringExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -57,11 +58,7 @@ public static class StringExtensions
/// A new instance of .
/// is .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan ToTimeSpan(this string input)
{
#if NET6_0_OR_GREATER
diff --git a/X10D/src/Time/TimeSpanExtensions.cs b/X10D/src/Time/TimeSpanExtensions.cs
index 1e3a500..e0ac9e6 100644
--- a/X10D/src/Time/TimeSpanExtensions.cs
+++ b/X10D/src/Time/TimeSpanExtensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -16,11 +17,7 @@ public static class TimeSpanExtensions
/// A that is a duration of in the past relative to the current time.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime Ago(this TimeSpan value)
{
return DateTime.Now.Subtract(value);
@@ -34,11 +31,7 @@ public static class TimeSpanExtensions
/// A that is a duration of in the future relative to the current time.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTime FromNow(this TimeSpan value)
{
return DateTime.Now.Add(value);
diff --git a/X10D/src/Time/UInt16Extensions.cs b/X10D/src/Time/UInt16Extensions.cs
index d8eec67..fef7bab 100644
--- a/X10D/src/Time/UInt16Extensions.cs
+++ b/X10D/src/Time/UInt16Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -24,11 +25,7 @@ public static class UInt16Extensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this ushort value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -49,11 +46,7 @@ public static class UInt16Extensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this ushort value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -68,11 +61,7 @@ public static class UInt16Extensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this ushort value)
{
if (value == 0)
@@ -89,11 +78,7 @@ public static class UInt16Extensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this ushort value)
{
return TimeSpan.FromTicks(value);
@@ -107,11 +92,7 @@ public static class UInt16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this ushort value)
{
return TimeSpan.FromMilliseconds(value);
@@ -125,11 +106,7 @@ public static class UInt16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this ushort value)
{
return TimeSpan.FromSeconds(value);
@@ -143,11 +120,7 @@ public static class UInt16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this ushort value)
{
return TimeSpan.FromMinutes(value);
@@ -161,11 +134,7 @@ public static class UInt16Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this ushort value)
{
return TimeSpan.FromHours(value);
@@ -177,11 +146,7 @@ public static class UInt16Extensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this ushort value)
{
return TimeSpan.FromDays(value);
@@ -195,11 +160,7 @@ public static class UInt16Extensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this ushort value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/UInt32Extensions.cs b/X10D/src/Time/UInt32Extensions.cs
index 2f6fb81..b10d96a 100644
--- a/X10D/src/Time/UInt32Extensions.cs
+++ b/X10D/src/Time/UInt32Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -24,11 +25,7 @@ public static class UInt32Extensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this uint value)
{
return DateTimeOffset.FromUnixTimeMilliseconds(value);
@@ -49,11 +46,7 @@ public static class UInt32Extensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this uint value)
{
return DateTimeOffset.FromUnixTimeSeconds(value);
@@ -68,11 +61,7 @@ public static class UInt32Extensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this uint value)
{
if (value == 0)
@@ -89,11 +78,7 @@ public static class UInt32Extensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this uint value)
{
return TimeSpan.FromTicks(value);
@@ -107,11 +92,7 @@ public static class UInt32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this uint value)
{
return TimeSpan.FromMilliseconds(value);
@@ -125,11 +106,7 @@ public static class UInt32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this uint value)
{
return TimeSpan.FromSeconds(value);
@@ -143,11 +120,7 @@ public static class UInt32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this uint value)
{
return TimeSpan.FromMinutes(value);
@@ -161,11 +134,7 @@ public static class UInt32Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this uint value)
{
return TimeSpan.FromHours(value);
@@ -177,11 +146,7 @@ public static class UInt32Extensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this uint value)
{
return TimeSpan.FromDays(value);
@@ -195,11 +160,7 @@ public static class UInt32Extensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this uint value)
{
return TimeSpan.FromDays(value * 7);
diff --git a/X10D/src/Time/UInt64Extensions.cs b/X10D/src/Time/UInt64Extensions.cs
index d415cbb..2c88829 100644
--- a/X10D/src/Time/UInt64Extensions.cs
+++ b/X10D/src/Time/UInt64Extensions.cs
@@ -1,5 +1,6 @@
using System.Diagnostics.Contracts;
using System.Runtime.CompilerServices;
+using X10D.CompilerServices;
namespace X10D.Time;
@@ -24,11 +25,7 @@ public static class UInt64Extensions
/// is greater than 253,402,300,799,999.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeMilliseconds(this ulong value)
{
return DateTimeOffset.FromUnixTimeMilliseconds((long)value);
@@ -49,11 +46,7 @@ public static class UInt64Extensions
/// is greater than 253,402,300,799.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static DateTimeOffset FromUnixTimeSeconds(this ulong value)
{
return DateTimeOffset.FromUnixTimeSeconds((long)value);
@@ -68,11 +61,7 @@ public static class UInt64Extensions
///
/// is 0.
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static bool IsLeapYear(this ulong value)
{
if (value == 0)
@@ -89,11 +78,7 @@ public static class UInt64Extensions
/// The duration, in ticks.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Ticks(this ulong value)
{
return TimeSpan.FromTicks((long)value);
@@ -107,11 +92,7 @@ public static class UInt64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Milliseconds(this ulong value)
{
return TimeSpan.FromMilliseconds((long)value);
@@ -125,11 +106,7 @@ public static class UInt64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Seconds(this ulong value)
{
return TimeSpan.FromSeconds((long)value);
@@ -143,11 +120,7 @@ public static class UInt64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Minutes(this ulong value)
{
return TimeSpan.FromMinutes((long)value);
@@ -161,11 +134,7 @@ public static class UInt64Extensions
/// A whose will equal .
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Hours(this ulong value)
{
return TimeSpan.FromHours((long)value);
@@ -177,11 +146,7 @@ public static class UInt64Extensions
/// The duration, in days.
/// A whose will equal .
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Days(this ulong value)
{
return TimeSpan.FromDays((long)value);
@@ -195,11 +160,7 @@ public static class UInt64Extensions
/// A whose will equal × 7.
///
[Pure]
-#if NETSTANDARD2_1
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
-#else
- [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
-#endif
+ [MethodImpl(CompilerResources.MethodImplOptions)]
public static TimeSpan Weeks(this ulong value)
{
return TimeSpan.FromDays((long)value * 7);