22 lines
933 B
C#
22 lines
933 B
C#
namespace Qrakhen.Qamp.Editor.Primitives;
|
|
|
|
public readonly record struct BufferPosition(int Line = 0, int Column = 0)
|
|
{
|
|
public bool IsInitial => Line == 0 && Column == 0;
|
|
|
|
public static readonly BufferPosition Initial = new(0, 0);
|
|
public static readonly BufferPosition Left = new(0, -1);
|
|
public static readonly BufferPosition Right = new(0, 1);
|
|
public static readonly BufferPosition Up = new(-1, 0);
|
|
public static readonly BufferPosition Down = new(1, 0);
|
|
|
|
public static BufferPosition operator +(BufferPosition left, BufferPosition right)
|
|
=> new(left.Line + right.Line, left.Column + right.Column);
|
|
|
|
public static BufferPosition operator -(BufferPosition left, BufferPosition right)
|
|
=> new(left.Line - right.Line, left.Column - right.Column);
|
|
|
|
public static BufferPosition operator *(BufferPosition left, int factor)
|
|
=> new(left.Line * factor, left.Column * factor);
|
|
}
|