From 79cdb26b4659005c8d9ae2d03c868b78fc2622f5 Mon Sep 17 00:00:00 2001 From: def Date: Fri, 27 Jun 2014 15:14:45 +0200 Subject: Add missing operators for uint and uint64: `+=`, `-=`, `*=` --- lib/core/unsigned.nim | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/core/unsigned.nim b/lib/core/unsigned.nim index a3ddd4125..db46c0c0b 100644 --- a/lib/core/unsigned.nim +++ b/lib/core/unsigned.nim @@ -57,3 +57,16 @@ proc `<=`*[T: SomeUInt](x, y: T): bool {.magic: "LeU", noSideEffect.} proc `<`*[T: SomeUInt](x, y: T): bool {.magic: "LtU", noSideEffect.} ## Returns true iff ``unsigned(x) < unsigned(y)``. + +proc `+=`*[T: uint|uint64](x: var T, y: T) {.magic: "Inc", noSideEffect.} + ## Increments uints and uint64s, uint8..uint32 are TOrdinals, and already + ## have a definition in the System module. + +proc `-=`*[T: uint|uint64](x: var T, y: T) {.magic: "Dec", noSideEffect.} + ## Decrements uints and uint64s, uint8..uint32 are TOrdinals, and already + ## have a definition in the System module. + +proc `*=`*[T: uint|uint64](x: var T, y: T) {.inline, noSideEffect.} = + ## Binary `*=` operator for uints and uint64s, uint8..uint32 are TOrdinals, + ## and already have a definition in the System module. + x = x * y -- cgit 1.4.1-2-gfad0