using System; namespace MultiWheelC.TrajectoryPlanning.Utils; public readonly struct GridIndex : IEquatable { public GridIndex(int row, int col) { Row = row; Col = col; } public int Row { get; } public int Col { get; } public bool Equals(GridIndex other) { return Row == other.Row && Col == other.Col; } public override bool Equals(object obj) { return obj is GridIndex && Equals((GridIndex)obj); } public override int GetHashCode() { unchecked { return Row * 397 ^ Col; } } public static bool operator ==(GridIndex left, GridIndex right) { return left.Equals(right); } public static bool operator !=(GridIndex left, GridIndex right) { return !left.Equals(right); } }