Maze / Library /PackageCache /com.unity.inputsystem@1.6.1 /InputSystem /Plugins /Steam /SteamHandle.cs
| using System; | |
| namespace UnityEngine.InputSystem.Steam | |
| { | |
| /// <summary> | |
| /// A handle for a Steam controller API object typed <typeparamref name="TObject"/>. | |
| /// </summary> | |
| /// <typeparam name="TObject">A type used to type the Steam handle. The type itself isn't used other than | |
| /// for providing type safety to the Steam handle.</typeparam> | |
| public struct SteamHandle<TObject> : IEquatable<SteamHandle<TObject>> | |
| { | |
| private ulong m_Handle; | |
| public SteamHandle(ulong handle) | |
| { | |
| m_Handle = handle; | |
| } | |
| public override string ToString() | |
| { | |
| return string.Format("Steam({0}): {1}", typeof(TObject).Name, m_Handle); | |
| } | |
| public bool Equals(SteamHandle<TObject> other) | |
| { | |
| return m_Handle == other.m_Handle; | |
| } | |
| public override bool Equals(object obj) | |
| { | |
| if (ReferenceEquals(null, obj)) | |
| return false; | |
| return obj is SteamHandle<TObject> && Equals((SteamHandle<TObject>)obj); | |
| } | |
| public override int GetHashCode() | |
| { | |
| return m_Handle.GetHashCode(); | |
| } | |
| public static bool operator==(SteamHandle<TObject> a, SteamHandle<TObject> b) | |
| { | |
| return a.m_Handle == b.m_Handle; | |
| } | |
| public static bool operator!=(SteamHandle<TObject> a, SteamHandle<TObject> b) | |
| { | |
| return !(a == b); | |
| } | |
| public static explicit operator ulong(SteamHandle<TObject> handle) | |
| { | |
| return handle.m_Handle; | |
| } | |
| } | |
| } | |