using System;
using System.Runtime.InteropServices;

namespace KitsuneCafe.System
{
    [StructLayout(LayoutKind.Sequential, Size = 1)]
    public readonly struct Unit : IEquatable<Unit>, IEquatable<R3.Unit>
    {
        public static readonly Unit Default = default(Unit);

        public static readonly object Box = default(Unit);

        public static bool operator ==(Unit first, Unit second)
        {
            return true;
        }

        public static bool operator !=(Unit first, Unit second)
        {
            return false;
        }

        public static bool operator ==(Unit first, R3.Unit second)
        {
            return true;
        }

        public static bool operator !=(Unit first, R3.Unit second)
        {
            return false;
        }

        public static bool operator ==(R3.Unit first, Unit second)
        {
            return true;
        }

        public static bool operator !=(R3.Unit first, Unit second)
        {
            return false;
        }

        public bool Equals(Unit other)
        {
            return true;
        }

        public bool Equals(R3.Unit other)
        {
            return true;
        }

        public override bool Equals(object obj)
        {
            return obj is Unit;
        }

        public override int GetHashCode()
        {
            return 0;
        }

        public override string ToString()
        {
            return "()";
        }
    }
}
