23 lines
927 B
C#
23 lines
927 B
C#
namespace Qrakhen.Qamp.Editor.Primitives;
|
|
|
|
public record struct CursorPosition(int line = 0, int column = 0)
|
|
{
|
|
public static readonly CursorPosition Void = new(0, 0);
|
|
public static readonly CursorPosition Left = new(0, -1);
|
|
public static readonly CursorPosition Right = new(0, 1);
|
|
public static readonly CursorPosition Up = new(-1, 0);
|
|
public static readonly CursorPosition Down = new(1, 0);
|
|
|
|
public int Line = line;
|
|
public int Column = column;
|
|
|
|
public static CursorPosition operator +(CursorPosition left, CursorPosition right)
|
|
=> new(left.Line + right.Line, left.Column + right.Column);
|
|
|
|
public static CursorPosition operator -(CursorPosition left, CursorPosition right)
|
|
=> new(left.Line - right.Line, left.Column - right.Column);
|
|
|
|
public static CursorPosition operator *(CursorPosition left, int factor)
|
|
=> new(left.Line * factor, left.Column * factor);
|
|
}
|