<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />

MiscellaneousUtils

static class MiscellaneousUtils
using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Runtime.CompilerServices; using System.Text.RegularExpressions; namespace Newtonsoft.Json.Utilities { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] internal static class MiscellaneousUtils { [System.Runtime.CompilerServices.NullableContext(2)] [Conditional("DEBUG")] public static void Assert([System.Diagnostics.CodeAnalysis.DoesNotReturnIf(false)] bool condition, string message = null) { } [System.Runtime.CompilerServices.NullableContext(2)] public static bool ValueEquals(object objA, object objB) { if (objA == objB) return true; if (objA == null || objB == null) return false; if ((object)objA.GetType() != objB.GetType()) { if (ConvertUtils.IsInteger(objA) && ConvertUtils.IsInteger(objB)) return Convert.ToDecimal(objA, CultureInfo.CurrentCulture).Equals(Convert.ToDecimal(objB, CultureInfo.CurrentCulture)); if ((objA is double || objA is float || objA is decimal) && (objB is double || objB is float || objB is decimal)) return MathUtils.ApproxEquals(Convert.ToDouble(objA, CultureInfo.CurrentCulture), Convert.ToDouble(objB, CultureInfo.CurrentCulture)); return false; } return objA.Equals(objB); } public static ArgumentOutOfRangeException CreateArgumentOutOfRangeException(string paramName, object actualValue, string message) { string message2 = message + Environment.NewLine + "Actual value was {0}.".FormatWith(CultureInfo.InvariantCulture, actualValue); return new ArgumentOutOfRangeException(paramName, message2); } public static string ToString([System.Runtime.CompilerServices.Nullable(2)] object value) { if (value == null) return "{null}"; string text = value as string; if (text == null) return value.ToString(); return "\"" + text + "\""; } public static int ByteArrayCompare(byte[] a1, byte[] a2) { int num = a1.Length.CompareTo(a2.Length); if (num != 0) return num; for (int i = 0; i < a1.Length; i++) { int num2 = a1[i].CompareTo(a2[i]); if (num2 != 0) return num2; } return 0; } [return: System.Runtime.CompilerServices.Nullable(2)] public static string GetPrefix(string qualifiedName) { GetQualifiedNameParts(qualifiedName, out string prefix, out string _); return prefix; } public static string GetLocalName(string qualifiedName) { GetQualifiedNameParts(qualifiedName, out string _, out string localName); return localName; } public static void GetQualifiedNameParts(string qualifiedName, [System.Runtime.CompilerServices.Nullable(2)] out string prefix, out string localName) { int num = StringUtils.IndexOf(qualifiedName, ':'); if (num == -1 || num == 0 || qualifiedName.Length - 1 == num) { prefix = null; localName = qualifiedName; } else { prefix = qualifiedName.Substring(0, num); localName = qualifiedName.Substring(num + 1); } } internal static RegexOptions GetRegexOptions(string optionsText) { RegexOptions regexOptions = RegexOptions.None; for (int i = 0; i < optionsText.Length; i++) { switch (optionsText[i]) { case 'i': regexOptions |= RegexOptions.IgnoreCase; break; case 'm': regexOptions |= RegexOptions.Multiline; break; case 's': regexOptions |= RegexOptions.Singleline; break; case 'x': regexOptions |= RegexOptions.ExplicitCapture; break; } } return regexOptions; } } }