struct string { int len; char *data; }
len is length of string, in characters. data is string content, it does not have to be NUL terminated. Strings are passed as struct string*