mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-15 23:02:34 +02:00
47 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|