Well, the data "on disk" is not NUL-terminated. So, though the type I am using is called "cstring" the string data is not terminated. If anything, the data is more "newline terminated" in your file format. Those newlines are mapped out by the `memSlices` iterator, though with the result stored in `.size`. So, I just use that to bound the loop.
I used that type because Nim defines convenient `[]` style access to the bytes of a `cstring` giving back `char` s. It isn't strictly necessary, but that was my reason. (You would have to do your own pointer arithmetic and dereferencing otherwise).
