libc::types::common::c99 only contains a small subset of actual C99 integer types.
Recently I was trying to interface with a C library that uses some of the other int types and it turned to be surprisingly difficult.
For the full palette of C99 int types se here:
http://en.cppreference.com/w/c/types/integer
or here:
https://en.wikipedia.org/wiki/C_data_types#inttypes.h
Another missing C99 type is _Bool, defined in stdbool.h
Especially the *_fast* types seem to be widely used. I’m not sure about actual merit of these ‘fast’ types, but that’s beside the point, what is important here is that people seem to be using them in library interfaces and sometimes we need to interface with those libraries.
Rust’s liblibc seems to define all the integer types by hand per architecture. Wouldn’t it perhaps be easier to write a snippet of a C code that would figure out the size of each integer? As far as I know, the build process has to use C/C++ compiler for LLVM anyway…