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);
|
||||
unsafe T ReadEnum<T>() where T : unmanaged, Enum
|
||||
{
|
||||
switch (ReadByte())
|
||||
switch (sizeof(T))
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -118,32 +118,26 @@ namespace Server
|
|||
void Write(ReadOnlySpan<byte> bytes);
|
||||
unsafe void WriteEnum<T>(T value) where T : unmanaged, Enum
|
||||
{
|
||||
var size = sizeof(T);
|
||||
|
||||
switch (size)
|
||||
switch (sizeof(T))
|
||||
{
|
||||
default: throw new ArgumentException($"Argument of type {typeof(T)} is not a normal enum");
|
||||
case 1:
|
||||
{
|
||||
Write((byte)1);
|
||||
Write(*(byte*)&value);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
Write((byte)2);
|
||||
Write(*(ushort*)&value);
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
Write((byte)3);
|
||||
WriteEncodedInt(*(int*)&value);
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
{
|
||||
Write((byte)4);
|
||||
Write(*(ulong*)&value);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue