I would like that strings can be assigned directly to seq[uint8], as a cstring
generally is a valid uint8 sequence.
Something like
var s: seq[uint8]
s = seq[uint8]("Text data for proc with uint8 based parameters".cstring)
Run
The actual fact is, that we have some gtk procs that gets a utf8 array, that is
a pointer to first utf8 char and an length argument. In earlier gintro releases
I used a faked cstring for this, which is ok in most cases, but maybe not in
all, as uint8 array can contain binary zero multiple times.
The basic API design was that the high level proc got a string and passed
cstring and length to C lib. Now the correct high level API get a seq[uint8]
and passes addr of first entry and length to C lib. That should be fine, but it
is unconvenient for the user, as he can not simple pass a string.
I think one solution may be, that I make the parameter of the high level API an
or type, this is "s: seq[uint8] or string". Then the low level code remains
identical, as both arguments have addr(s[0]) and s.len.
But general, a pure assign of string to seq[uint8] may be useful generally,
maybe a plain cast may even work, but I newer would use that.