From aef5b2eb54868e549082c9fd1f9a89e8edc83ee0 Mon Sep 17 00:00:00 2001 From: cooldome Date: Mon, 29 May 2017 08:41:00 +0100 Subject: Add len for Slice[T] where T is ordinal (#5847) --- lib/system.nim | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/system.nim b/lib/system.nim index fdc4c7db0..67f088730 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2047,6 +2047,14 @@ proc clamp*[T](x, a, b: T): T = if x > b: return b return x +proc len*[T: Ordinal](x: Slice[T]): int {.noSideEffect, inline.} = + ## length of ordinal slice, when x.b < x.a returns zero length + ## + ## .. code-block:: Nim + ## assert((0..5).len == 6) + ## assert((5..2).len == 0) + result = max(0, ord(x.b) - ord(x.a) + 1) + iterator items*[T](a: openArray[T]): T {.inline.} = ## iterates over each item of `a`. var i = 0 -- cgit 1.4.1-2-gfad0