diff --git a/Benchmarks/EnumBench.cs b/Benchmarks/EnumBench.cs index 91a81e8..3aa3f8e 100644 --- a/Benchmarks/EnumBench.cs +++ b/Benchmarks/EnumBench.cs @@ -9,6 +9,7 @@ using EnumsNET; using Nemesis.TextParsers; using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; // ReSharper disable CommentTypo diff --git a/Benchmarks/LeanCollectionBench.cs b/Benchmarks/LeanCollectionBench.cs index 6752fb4..5a6358c 100644 --- a/Benchmarks/LeanCollectionBench.cs +++ b/Benchmarks/LeanCollectionBench.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using BenchmarkDotNet.Attributes; -using Nemesis.TextParsers; +using Nemesis.TextParsers.Utils; // ReSharper disable CommentTypo diff --git a/Benchmarks/StringConcatBench.cs b/Benchmarks/StringConcatBench.cs index 89d4169..90573dc 100644 --- a/Benchmarks/StringConcatBench.cs +++ b/Benchmarks/StringConcatBench.cs @@ -1,7 +1,7 @@ using System; using System.Text; using BenchmarkDotNet.Attributes; -using Nemesis.TextParsers; +using Nemesis.TextParsers.Utils; // ReSharper disable CommentTypo diff --git a/Nemesis.TextParsers.Tests/AggressionBased.cs b/Nemesis.TextParsers.Tests/AggressionBased.cs index de98b5c..3be1ee0 100644 --- a/Nemesis.TextParsers.Tests/AggressionBased.cs +++ b/Nemesis.TextParsers.Tests/AggressionBased.cs @@ -5,6 +5,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; #if NETCOREAPP3_0 using NotNull = System.Diagnostics.CodeAnalysis.NotNullAttribute; #else diff --git a/Nemesis.TextParsers.Tests/CollectionTransformerTests.cs b/Nemesis.TextParsers.Tests/CollectionTransformerTests.cs index a0b0d55..7ae2415 100644 --- a/Nemesis.TextParsers.Tests/CollectionTransformerTests.cs +++ b/Nemesis.TextParsers.Tests/CollectionTransformerTests.cs @@ -7,6 +7,7 @@ using System.Reflection; using System.Runtime.Serialization; using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Tests { diff --git a/Nemesis.TextParsers.Tests/EnumTransformerTests.cs b/Nemesis.TextParsers.Tests/EnumTransformerTests.cs index 6db9fd0..fc54444 100644 --- a/Nemesis.TextParsers.Tests/EnumTransformerTests.cs +++ b/Nemesis.TextParsers.Tests/EnumTransformerTests.cs @@ -4,6 +4,7 @@ using System.Text; using NUnit.Framework; using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Tests { diff --git a/Nemesis.TextParsers.Tests/LeanCollectionTests.cs b/Nemesis.TextParsers.Tests/LeanCollectionTests.cs index 1c792b7..93c2699 100644 --- a/Nemesis.TextParsers.Tests/LeanCollectionTests.cs +++ b/Nemesis.TextParsers.Tests/LeanCollectionTests.cs @@ -1,4 +1,5 @@ using System; +using Nemesis.TextParsers.Utils; using NUnit.Framework; namespace Nemesis.TextParsers.Tests diff --git a/Nemesis.TextParsers.Tests/LinqTests.cs b/Nemesis.TextParsers.Tests/LinqTests.cs index c99b783..3cb6562 100644 --- a/Nemesis.TextParsers.Tests/LinqTests.cs +++ b/Nemesis.TextParsers.Tests/LinqTests.cs @@ -1,6 +1,7 @@ using System; using System.Globalization; using System.Text; +using Nemesis.TextParsers.Utils; using NUnit.Framework; namespace Nemesis.TextParsers.Tests diff --git a/Nemesis.TextParsers.Tests/NumberTests.cs b/Nemesis.TextParsers.Tests/NumberTests.cs index 1821093..7f369e2 100644 --- a/Nemesis.TextParsers.Tests/NumberTests.cs +++ b/Nemesis.TextParsers.Tests/NumberTests.cs @@ -1,5 +1,6 @@ using System; using System.Globalization; +using Nemesis.TextParsers.Utils; using NUnit.Framework; namespace Nemesis.TextParsers.Tests diff --git a/Nemesis.TextParsers.Tests/SpanCollectionSerializerTests.cs b/Nemesis.TextParsers.Tests/SpanCollectionSerializerTests.cs index 41430a8..e1c2e34 100644 --- a/Nemesis.TextParsers.Tests/SpanCollectionSerializerTests.cs +++ b/Nemesis.TextParsers.Tests/SpanCollectionSerializerTests.cs @@ -9,6 +9,7 @@ using NUnit.Framework; using Dss = System.Collections.Generic.SortedDictionary; using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Tests { diff --git a/Nemesis.TextParsers.Tests/TestClasses.cs b/Nemesis.TextParsers.Tests/TestClasses.cs index 567b167..33d8ab4 100644 --- a/Nemesis.TextParsers.Tests/TestClasses.cs +++ b/Nemesis.TextParsers.Tests/TestClasses.cs @@ -6,6 +6,7 @@ using System.Runtime.CompilerServices; using JetBrains.Annotations; using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Tests { diff --git a/Nemesis.TextParsers.Tests/UniversalTextTypeConverterTests.cs b/Nemesis.TextParsers.Tests/UniversalTextTypeConverterTests.cs index a446813..aaa3cbc 100644 --- a/Nemesis.TextParsers.Tests/UniversalTextTypeConverterTests.cs +++ b/Nemesis.TextParsers.Tests/UniversalTextTypeConverterTests.cs @@ -5,6 +5,7 @@ using System.Globalization; using NUnit.Framework; using JetBrains.Annotations; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Tests { diff --git a/Nemesis.TextParsers/01_Contracts.cs b/Nemesis.TextParsers/01_Contracts.cs index 975cc73..1c5e71e 100644 --- a/Nemesis.TextParsers/01_Contracts.cs +++ b/Nemesis.TextParsers/01_Contracts.cs @@ -3,7 +3,7 @@ using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; -namespace Nemesis.TextParsers.Parsers +namespace Nemesis.TextParsers { public interface ITransformer { diff --git a/Nemesis.TextParsers/02_EntryPoint.cs b/Nemesis.TextParsers/02_EntryPoint.cs index d67b436..a908d17 100644 --- a/Nemesis.TextParsers/02_EntryPoint.cs +++ b/Nemesis.TextParsers/02_EntryPoint.cs @@ -6,7 +6,7 @@ using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; -namespace Nemesis.TextParsers.Parsers +namespace Nemesis.TextParsers { public interface ITransformerStore { diff --git a/Nemesis.TextParsers/ParsedSequence.cs b/Nemesis.TextParsers/ParsedSequence.cs index e1c3ba8..93afc38 100644 --- a/Nemesis.TextParsers/ParsedSequence.cs +++ b/Nemesis.TextParsers/ParsedSequence.cs @@ -1,6 +1,6 @@ using System; using System.Runtime.CompilerServices; -using Nemesis.TextParsers.Parsers; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers { diff --git a/Nemesis.TextParsers/Parsers/03_SimpleTypes.cs b/Nemesis.TextParsers/Parsers/03_SimpleTypes.cs index fb89bf1..11c6a81 100644 --- a/Nemesis.TextParsers/Parsers/03_SimpleTypes.cs +++ b/Nemesis.TextParsers/Parsers/03_SimpleTypes.cs @@ -54,6 +54,11 @@ public ITransformer CreateTransformer() => public sbyte Priority => 10; } + internal static class Culture + { + internal static CultureInfo InvCult => CultureInfo.InvariantCulture; + internal static NumberFormatInfo InvInfo = NumberFormatInfo.InvariantInfo; + } public abstract class SimpleTransformer : TransformerBase, ICanTransformType { diff --git a/Nemesis.TextParsers/Parsers/03a_KeyValuePair.cs b/Nemesis.TextParsers/Parsers/03a_KeyValuePair.cs index d245f89..c752e4b 100644 --- a/Nemesis.TextParsers/Parsers/03a_KeyValuePair.cs +++ b/Nemesis.TextParsers/Parsers/03a_KeyValuePair.cs @@ -3,6 +3,7 @@ using System.Runtime.CompilerServices; using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Parsers { diff --git a/Nemesis.TextParsers/Parsers/03b_ValueTuple.cs b/Nemesis.TextParsers/Parsers/03b_ValueTuple.cs index 26d4571..18094d5 100644 --- a/Nemesis.TextParsers/Parsers/03b_ValueTuple.cs +++ b/Nemesis.TextParsers/Parsers/03b_ValueTuple.cs @@ -3,6 +3,7 @@ using System.Runtime.CompilerServices; using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Parsers { diff --git a/Nemesis.TextParsers/Parsers/05_Enums.cs b/Nemesis.TextParsers/Parsers/05_Enums.cs index 329d238..0ded224 100644 --- a/Nemesis.TextParsers/Parsers/05_Enums.cs +++ b/Nemesis.TextParsers/Parsers/05_Enums.cs @@ -6,6 +6,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using JetBrains.Annotations; +using Nemesis.TextParsers.Utils; #if NETCOREAPP3_0 using NotNull = System.Diagnostics.CodeAnalysis.NotNullAttribute; #else diff --git a/Nemesis.TextParsers/Parsers/07_Dictionary.cs b/Nemesis.TextParsers/Parsers/07_Dictionary.cs index 463a3e0..2ced266 100644 --- a/Nemesis.TextParsers/Parsers/07_Dictionary.cs +++ b/Nemesis.TextParsers/Parsers/07_Dictionary.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Parsers { diff --git a/Nemesis.TextParsers/Parsers/09_Collection.cs b/Nemesis.TextParsers/Parsers/09_Collection.cs index 816b333..58a5f4f 100644 --- a/Nemesis.TextParsers/Parsers/09_Collection.cs +++ b/Nemesis.TextParsers/Parsers/09_Collection.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Parsers { diff --git a/Nemesis.TextParsers/Parsers/09a_LeanCollection.cs b/Nemesis.TextParsers/Parsers/09a_LeanCollection.cs index 42a5f7d..54e36cf 100644 --- a/Nemesis.TextParsers/Parsers/09a_LeanCollection.cs +++ b/Nemesis.TextParsers/Parsers/09a_LeanCollection.cs @@ -1,6 +1,7 @@ using System; using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; +using Nemesis.TextParsers.Utils; namespace Nemesis.TextParsers.Parsers { diff --git a/Nemesis.TextParsers/SpanCollectionSerializer.cs b/Nemesis.TextParsers/SpanCollectionSerializer.cs index f15a11e..69f7e8a 100644 --- a/Nemesis.TextParsers/SpanCollectionSerializer.cs +++ b/Nemesis.TextParsers/SpanCollectionSerializer.cs @@ -3,11 +3,13 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using System.Runtime.CompilerServices; -using Nemesis.TextParsers.Parsers; +using JetBrains.Annotations; +using Nemesis.TextParsers.Utils; using PureMethod = System.Diagnostics.Contracts.PureAttribute; namespace Nemesis.TextParsers { + [PublicAPI] public sealed class SpanCollectionSerializer { #region Fields and properties diff --git a/Nemesis.TextParsers/SpanParserHelper.cs b/Nemesis.TextParsers/SpanParserHelper.cs index cb02e79..42e1538 100644 --- a/Nemesis.TextParsers/SpanParserHelper.cs +++ b/Nemesis.TextParsers/SpanParserHelper.cs @@ -4,6 +4,7 @@ using System.Collections.ObjectModel; using System.Globalization; using Nemesis.TextParsers.Runtime; +using Nemesis.TextParsers.Utils; using PureMethod = System.Diagnostics.Contracts.PureAttribute; namespace Nemesis.TextParsers diff --git a/Nemesis.TextParsers/Utils/CollectionMeta.cs b/Nemesis.TextParsers/Utils/CollectionMeta.cs index faf5834..231169f 100644 --- a/Nemesis.TextParsers/Utils/CollectionMeta.cs +++ b/Nemesis.TextParsers/Utils/CollectionMeta.cs @@ -1,14 +1,14 @@ #nullable disable using System; -using System.Collections.Generic; using System.Collections; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Reflection; using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { /// /// Aids in providing metadata for GUI applications diff --git a/Nemesis.TextParsers/Utils/DictionaryMeta.cs b/Nemesis.TextParsers/Utils/DictionaryMeta.cs index 5a59d9c..f9713c1 100644 --- a/Nemesis.TextParsers/Utils/DictionaryMeta.cs +++ b/Nemesis.TextParsers/Utils/DictionaryMeta.cs @@ -9,7 +9,7 @@ using JetBrains.Annotations; using Nemesis.TextParsers.Runtime; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { /// /// Aids in providing metadata for GUI applications @@ -130,7 +130,7 @@ internal static class DictionaryKindHelper public static DictionaryMeta GetDictionaryMeta(Type dictType) { if (IsTypeSupported(dictType) && - GetDictionaryKind(dictType) is DictionaryKind kind && + GetDictionaryKind(dictType) is { } kind && kind != DictionaryKind.Unknown ) { diff --git a/Nemesis.TextParsers/Utils/LeanCollection.cs b/Nemesis.TextParsers/Utils/LeanCollection.cs index fb148eb..a59fa80 100644 --- a/Nemesis.TextParsers/Utils/LeanCollection.cs +++ b/Nemesis.TextParsers/Utils/LeanCollection.cs @@ -2,31 +2,23 @@ using System.Collections.Generic; using JetBrains.Annotations; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { [PublicAPI] public static class LeanCollectionFactory { public static LeanCollection FromArrayChecked(T[] items) => new LeanCollection(items); - public static LeanCollection FromArray(T[] items) - { - int? length = items?.Length; - switch (length) + public static LeanCollection FromArray(T[] items) => + items?.Length switch { - case null: - case 0: - return new LeanCollection(); - case 1: - return new LeanCollection(items[0]); - case 2: - return new LeanCollection(items[0], items[1]); - case 3: - return new LeanCollection(items[0], items[1], items[2]); - default: - return new LeanCollection(items); - } - } + null => new LeanCollection(), + 0 => new LeanCollection(), + 1 => new LeanCollection(items[0]), + 2 => new LeanCollection(items[0], items[1]), + 3 => new LeanCollection(items[0], items[1], items[2]), + _ => new LeanCollection(items) + }; public static LeanCollection ToLeanCollection(T one) => new LeanCollection(one); public static LeanCollection ToLeanCollection((T, T) pair) => new LeanCollection(pair.Item1, pair.Item2); diff --git a/Nemesis.TextParsers/Utils/LightLinq.cs b/Nemesis.TextParsers/Utils/LightLinq.cs index ccb72ae..e324d24 100644 --- a/Nemesis.TextParsers/Utils/LightLinq.cs +++ b/Nemesis.TextParsers/Utils/LightLinq.cs @@ -1,7 +1,7 @@ using System; using JetBrains.Annotations; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { [PublicAPI] public static class LightLinq diff --git a/Nemesis.TextParsers/Utils/Numbers.cs b/Nemesis.TextParsers/Utils/Numbers.cs index c3a7074..7c08fce 100644 --- a/Nemesis.TextParsers/Utils/Numbers.cs +++ b/Nemesis.TextParsers/Utils/Numbers.cs @@ -4,7 +4,7 @@ using System.Linq; using JetBrains.Annotations; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { public static class NumberHandlerCache { diff --git a/Nemesis.TextParsers/Utils/UniversalTextTypeConverter.cs b/Nemesis.TextParsers/Utils/UniversalTextTypeConverter.cs index 861ed20..f8f3fae 100644 --- a/Nemesis.TextParsers/Utils/UniversalTextTypeConverter.cs +++ b/Nemesis.TextParsers/Utils/UniversalTextTypeConverter.cs @@ -1,9 +1,8 @@ using System; using System.ComponentModel; using System.Globalization; -using Nemesis.TextParsers.Parsers; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { public sealed class UniversalTextTypeConverter : TypeConverter { @@ -24,4 +23,4 @@ public override object ConvertTo(ITypeDescriptorContext context, CultureInfo cul ? TextTransformer.Default.GetTransformer().Format((TValue)value) : base.ConvertTo(context, culture, value, destinationType); } -} +} \ No newline at end of file diff --git a/Nemesis.TextParsers/Utils/ValueSequenceBuilder.cs b/Nemesis.TextParsers/Utils/ValueSequenceBuilder.cs index 73288e4..074e19f 100644 --- a/Nemesis.TextParsers/Utils/ValueSequenceBuilder.cs +++ b/Nemesis.TextParsers/Utils/ValueSequenceBuilder.cs @@ -2,7 +2,7 @@ using System.Buffers; using System.Runtime.CompilerServices; -namespace Nemesis.TextParsers +namespace Nemesis.TextParsers.Utils { public ref struct ValueSequenceBuilder {