This commit is contained in:
CortexCore
2024-11-03 16:42:23 +08:00
commit b125894cc3
5904 changed files with 1070129 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
using System.IO;
using System.Net.Http.Headers;
namespace BITKit
{
public class BinaryBuilder
{
private readonly MemoryStream _memoryStream = new();
internal readonly BinaryWriter writer;
private BinaryBuilder()
{
writer = new BinaryWriter(_memoryStream);
}
public static BinaryBuilder Create()
{
return new BinaryBuilder();
}
public BinaryBuilder WriteObject(object obj)
{
BITBinary.Write(writer,obj);
return this;
}
public byte[] Build()
{
writer.Dispose();
var _bytes = _memoryStream.ToArray();
_memoryStream.Close();
return _memoryStream.ToArray();
}
}
public static class BinaryBuilderExtensions
{
public static BinaryBuilder Write(this BinaryBuilder self, bool value)
{
self.writer.Write(value);
return self;
}
public static BinaryBuilder Write(this BinaryBuilder self, float value)
{
self.writer.Write(value);
return self;
}
public static BinaryBuilder Write(this BinaryBuilder self, int value)
{
self.writer.Write(value);
return self;
}
public static BinaryBuilder Write(this BinaryBuilder self, long value)
{
self.writer.Write(value);
return self;
}
public static BinaryBuilder Write(this BinaryBuilder self, byte value)
{
self.writer.Write(value);
return self;
}
public static BinaryBuilder Write(this BinaryBuilder self, string value)
{
self.writer.Write(value);
return self;
}
}
}