aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Account/Nickname.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Account/Nickname.cs')
-rw-r--r--src/Ryujinx.Horizon/Sdk/Account/Nickname.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Account/Nickname.cs b/src/Ryujinx.Horizon/Sdk/Account/Nickname.cs
new file mode 100644
index 00000000..1f351ee3
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Account/Nickname.cs
@@ -0,0 +1,29 @@
+using Ryujinx.Common.Memory;
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Ryujinx.Horizon.Sdk.Account
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x21, Pack = 0x1)]
+ readonly struct Nickname
+ {
+ public readonly Array33<byte> Name;
+
+ public Nickname(in Array33<byte> name)
+ {
+ Name = name;
+ }
+
+ public override string ToString()
+ {
+ int length = ((ReadOnlySpan<byte>)Name.AsSpan()).IndexOf((byte)0);
+ if (length < 0)
+ {
+ length = 33;
+ }
+
+ return Encoding.UTF8.GetString(Name.AsSpan()[..length]);
+ }
+ }
+}