diff options
Diffstat (limited to 'tests/concepts/matrix.nim')
-rw-r--r-- | tests/concepts/matrix.nim | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/concepts/matrix.nim b/tests/concepts/matrix.nim new file mode 100644 index 000000000..47a709f80 --- /dev/null +++ b/tests/concepts/matrix.nim @@ -0,0 +1,14 @@ +type + Matrix*[M, N: static[int]; T] = object + data: array[M*N, T] + +proc `[]`*(M: Matrix; m, n: int): M.T = + M.data[m * M.N + n] + +proc `[]=`*(M: var Matrix; m, n: int; v: M.T) = + M.data[m * M.N + n] = v + +# Adapt the Matrix type to the concept's requirements +template Rows*(M: type Matrix): untyped = M.M +template Cols*(M: type Matrix): untyped = M.N +template ValueType*(M: type Matrix): typedesc = M.T |