Ryujinx/Ryujinx.Horizon/Sdk/Ncm/ApplicationId.cs
Ac_K 4d2c8e2a44
Prepo: Fix SaveSystemReport* IPC definitions (#4278)
* Prepo: Fix SaveSystemReport IPC definitions

* Follow original code

* Fix args index in HipcGenerator

* Addresses feedback

* oops
2023-01-13 01:50:14 +01:00

52 lines
1.2 KiB
C#

namespace Ryujinx.Horizon.Sdk.Ncm
{
readonly struct ApplicationId
{
public readonly ulong Id;
public static int Length => sizeof(ulong);
public static ApplicationId First => new(0x0100000000010000);
public static ApplicationId Last => new(0x01FFFFFFFFFFFFFF);
public static ApplicationId Invalid => new(0);
public bool IsValid => Id >= First.Id && Id <= Last.Id;
public ApplicationId(ulong id)
{
Id = id;
}
public override bool Equals(object obj)
{
return obj is ApplicationId applicationId && applicationId.Equals(this);
}
public bool Equals(ApplicationId other)
{
return other.Id == Id;
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
public static bool operator ==(ApplicationId lhs, ApplicationId rhs)
{
return lhs.Equals(rhs);
}
public static bool operator !=(ApplicationId lhs, ApplicationId rhs)
{
return !lhs.Equals(rhs);
}
public override string ToString()
{
return $"0x{Id:x}";
}
}
}