summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorCharles Blake <cb@cblake.net>2016-12-22 15:25:13 -0500
committerCharles Blake <cb@cblake.net>2016-12-22 15:25:13 -0500
commit1bb6775f92ac346197ef35ec891f4cb260b15426 (patch)
treefea3ca4948bd50897abf5aa2f5957f44bc20682a /lib
parent0daca5c46301420df86460c61bfe60951956bb94 (diff)
downloadNim-1bb6775f92ac346197ef35ec891f4cb260b15426.tar.gz
Add a proc `==` for MemSlice.
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/memfiles.nim5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index aa32778c5..67a7609a4 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -271,6 +271,11 @@ type MemSlice* = object  ## represent slice of a MemFile for iteration over deli
   data*: pointer
   size*: int
 
+proc `==` (x, y: MemSlice): bool =
+  ## Compare a pair of MemSlice for strict equality.
+  proc memcmp(a, b: pointer, n:int):int {.importc: "memcmp",header: "string.h".}
+  result = (x.size == y.size and memcmp(x.data, y.data, x.size) == 0)
+
 proc `$`*(ms: MemSlice): string {.inline.} =
   ## Return a Nim string built from a MemSlice.
   var buf = newString(ms.size)