1
This commit is contained in:
67
Assets/BITKit/Core/Binary/BinaryBuilder.cs
Normal file
67
Assets/BITKit/Core/Binary/BinaryBuilder.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user