On Sun, 12 Dec 2021 08:59:04 +0100 Laslo Hunhold <[email protected]> wrote:
Dear Michael, > Two questions remain: > > 1) Would you also go down the route of just demanding an array of > unsigned integers of at least 8 bits? > 2) Would you define it as "unsigned char *" or "uint_least8_t *"? > I'd almost favor the latter, given the entire library is already > using the stdint-types. and there's also POSIX to think about. Given we're using POSIX interfaces all over libgrapheme and POSIX states "(The POSIX standard explicitly requires 8-bit char and two's-complement arithmetic.)"[0], maybe simply going with "uint8_t *" is the real deal. This still justifies the use of uint_least32_t, as POSIX does not mandate uint32_t to exist, but we can legally assume an 8-bit-type exists. This might be stronger to convey in the API using the explicit uint8_t rather than using "unsigned char", which still has all the "legacy" attached to it, and FFIs have no open questions about what we are accepting. With best regards Laslo [0]:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html
