fix(core): Removes byte indicator for Enum (#614)
This commit is contained in:
parent
ca5a06e9a2
commit
c3f414f04f
2 changed files with 2 additions and 8 deletions
|
|
@ -70,7 +70,7 @@ namespace Server
|
||||||
int Read(Span<byte> buffer);
|
int Read(Span<byte> buffer);
|
||||||
unsafe T ReadEnum<T>() where T : unmanaged, Enum
|
unsafe T ReadEnum<T>() where T : unmanaged, Enum
|
||||||
{
|
{
|
||||||
switch (ReadByte())
|
switch (sizeof(T))
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -118,32 +118,26 @@ namespace Server
|
||||||
void Write(ReadOnlySpan<byte> bytes);
|
void Write(ReadOnlySpan<byte> bytes);
|
||||||
unsafe void WriteEnum<T>(T value) where T : unmanaged, Enum
|
unsafe void WriteEnum<T>(T value) where T : unmanaged, Enum
|
||||||
{
|
{
|
||||||
var size = sizeof(T);
|
switch (sizeof(T))
|
||||||
|
|
||||||
switch (size)
|
|
||||||
{
|
{
|
||||||
default: throw new ArgumentException($"Argument of type {typeof(T)} is not a normal enum");
|
default: throw new ArgumentException($"Argument of type {typeof(T)} is not a normal enum");
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
Write((byte)1);
|
|
||||||
Write(*(byte*)&value);
|
Write(*(byte*)&value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
Write((byte)2);
|
|
||||||
Write(*(ushort*)&value);
|
Write(*(ushort*)&value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
Write((byte)3);
|
|
||||||
WriteEncodedInt(*(int*)&value);
|
WriteEncodedInt(*(int*)&value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 8:
|
case 8:
|
||||||
{
|
{
|
||||||
Write((byte)4);
|
|
||||||
Write(*(ulong*)&value);
|
Write(*(ulong*)&value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue