From 3c50ae147a8c01c7780c00ebd16db63d320530c7 Mon Sep 17 00:00:00 2001
From: Kermalis <29823718+Kermalis@users.noreply.github.com>
Date: Tue, 30 Aug 2022 15:37:29 -0400
Subject: [PATCH] More nuget cleanup
---
Source/EndianBinaryIO.csproj | 35 +++++++++++++++++++++++++-----
Testing/EndianBinaryTesting.csproj | 6 ++---
2 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/Source/EndianBinaryIO.csproj b/Source/EndianBinaryIO.csproj
index b92a9b4..0e64818 100644
--- a/Source/EndianBinaryIO.csproj
+++ b/Source/EndianBinaryIO.csproj
@@ -5,28 +5,42 @@
latest
Library
Kermalis.EndianBinaryIO
+ enable
+
Kermalis
Kermalis
- EndianBinaryIO
EndianBinaryIO
+
EndianBinaryIO
+ EndianBinaryIO
EndianBinaryIO
- 2.0.0.0
+ 2.0.0
https://github.com/Kermalis/EndianBinaryIO
git
-
- enable
-
This .NET library provides a simple API to read/write bytes from/to streams and spans using user-specified endianness.
By default, supported types include primitives, enums, arrays, strings, and some common .NET struct types.
Objects can also be read/written from/to streams via reflection and attributes.
The developer can use the API even if their target behavior or data is not directly supported by using the IBinarySerializable interface, inheritting from the reader/writer, or using the manual Span methods without streams.
Performance is the focus when not using reflection; no allocations unless absolutely necessary!
+
Project URL and Samples ― https://github.com/Kermalis/EndianBinaryIO
https://github.com/Kermalis/EndianBinaryIO
en-001
Serialization;Reflection;Endianness;LittleEndian;BigEndian;EndianBinaryIO
+ README.md
+ LICENSE.md
+
+ * Rewritten with Span<T> and performance in mind. No allocations unless absolutely necessary
+ * The compiler will now inline certain methods. For example, ReadEnum<TEnum>() will only include code that will be executed for the given enum size. So passing a TEnum that is the size of a byte will condense down to just a ReadByte() call with no size/type checks
+ * Implemented reading and writing for Half, DateOnly, TimeOnly, Vector2, Vector3, Vector4, Quaternion, and Matrix4x4
+ * Removed bloated overloads (with array offset/count, alternate Encoding/BooleanSize, null termination, etc.). The reader/writer now respects its state (such as whether to use ASCII, and which BooleanSize to use) which you can change at any time
+ * decimal int order now matches with .net APIs
+ * Removed EndianBitConverter in favor of EndianBinaryPrimitives, which has similar API while using modern programming like Span<T>
+ * API uses nullable notations
+ * You can now ReadObject() and WriteObject() with primitives and other supported types like DateTime, Vector3, etc.
+ * Removed Encoding usage. The whole thing was very complicated before, and it barely functioned. Now you have ASCII and .net (UTF16-LE) support by default, and can add your own requirements either by extension methods or inheriting the reader/writer
+
@@ -42,4 +56,15 @@
true
+
+
+ True
+ \
+
+
+ True
+ \
+
+
+
diff --git a/Testing/EndianBinaryTesting.csproj b/Testing/EndianBinaryTesting.csproj
index 5211104..440394e 100644
--- a/Testing/EndianBinaryTesting.csproj
+++ b/Testing/EndianBinaryTesting.csproj
@@ -4,12 +4,12 @@
net6.0
latest
Kermalis.EndianBinaryIOTests
+ false
+ true
+
Kermalis
Kermalis
https://github.com/Kermalis/EndianBinaryIO
-
- false
- true