// ------------------------------------------------------------------------------
//
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
// ------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using HexaGen.Runtime;
using System.Numerics;
namespace Dalamud.Bindings.ImGui
{
///
/// To be documented.
///
#if NET5_0_OR_GREATER
[DebuggerDisplay("{DebuggerDisplay,nq}")]
#endif
public readonly unsafe partial struct ImTextureID : IEquatable
{
public ImTextureID(ulong handle) { Handle = handle; }
public ImTextureID(nint handle) { Handle = (ulong)handle; }
public ImTextureID(void* handle) { Handle = (ulong)handle; }
public ulong Handle { get; }
public bool IsNull => Handle == 0;
public static ImTextureID Null => default;
public static implicit operator ImTextureID(ulong handle) => new ImTextureID(handle);
public static bool operator ==(ImTextureID left, ImTextureID right) => left.Handle == right.Handle;
public static bool operator !=(ImTextureID left, ImTextureID right) => left.Handle != right.Handle;
public static bool operator ==(ImTextureID left, nint right) => left.Handle == (ulong)right;
public static bool operator !=(ImTextureID left, nint right) => left.Handle != (ulong)right;
public static bool operator ==(ImTextureID left, ulong right) => left.Handle == right;
public static bool operator !=(ImTextureID left, ulong right) => left.Handle != right;
public bool Equals(ImTextureID other) => Handle == other.Handle;
///
public override bool Equals(object obj) => obj is ImTextureID handle && Equals(handle);
///
public override int GetHashCode() => Handle.GetHashCode();
#if NET5_0_OR_GREATER
private string DebuggerDisplay => string.Format("ImTextureID [0x{0}]", Handle.ToString("X"));
#endif
}
}