feat: added checks and new ragon serializer methods

This commit is contained in:
2022-08-14 15:39:22 +04:00
parent f2934bc8ee
commit 65c1d9c6d4
2 changed files with 36 additions and 0 deletions
+24
View File
@@ -156,6 +156,30 @@ namespace Ragon.Common
return value;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void WriteString(string value, ushort size)
{
var stringRaw = Encoding.UTF8.GetBytes(value).AsSpan();
ResizeIfNeed(2 + size);
WriteUShort((ushort) stringRaw.Length);
var data = _data.AsSpan().Slice(_offset, size);
stringRaw.CopyTo(data);
_offset += stringRaw.Length;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public string ReadString(ushort size)
{
var lenght = ReadUShort();
var stringRaw = _data.AsSpan().Slice(_offset, size);
var strData = stringRaw.Slice(0, lenght);
var str = Encoding.UTF8.GetString(strData);
_offset += size;
return str;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void WriteString(string value)
{