Files
2024-02-14 01:08:38 +01:00

47 lines
1.2 KiB
C#

using System;
using Robust.Shared.Serialization;
namespace Robust.Shared.Network
{
[Serializable, NetSerializable]
public struct NetUserId : IEquatable<NetUserId>, ISelfSerialize
{
public readonly Guid UserId;
public NetUserId(Guid userId)
{
UserId = userId;
}
public override bool Equals(object? obj) =>
obj switch {
Guid id => Equals(id),
NetUserId id => Equals(id),
_ => false,
};
public bool Equals(NetUserId other) => UserId == other.UserId;
public override int GetHashCode() => UserId.GetHashCode();
public override string ToString() => UserId.ToString();
public static bool operator ==(NetUserId id1, NetUserId id2) => id1.Equals(id2);
public static bool operator !=(NetUserId id1, NetUserId id2) => !(id1 == id2);
public static implicit operator Guid(NetUserId id) => id.UserId;
public static explicit operator NetUserId(Guid id) => new(id);
void ISelfSerialize.Deserialize(string value)
{
this = (NetUserId) Guid.Parse(value);
}
string ISelfSerialize.Serialize()
{
return ToString();
}
}
}