MoonWorksImGuiExample/lib/ImGui.NET/NullTerminatedString.cs

30 lines
621 B
C#

using System.Text;
namespace ImGuiNET
{
public unsafe struct NullTerminatedString
{
public readonly byte* Data;
public NullTerminatedString(byte* data)
{
Data = data;
}
public override string ToString()
{
int length = 0;
byte* ptr = Data;
while (*ptr != 0)
{
length += 1;
ptr += 1;
}
return Encoding.ASCII.GetString(Data, length);
}
public static implicit operator string(NullTerminatedString nts) => nts.ToString();
}
}