#include <uchar.h>
#include <wchar.h>

size_t mbrtoc32(char32_t* restrict pc32,
                const char* restrict s,
                size_t n,
                mbstate_t* restrict ps) {
  static unsigned internal_state;
  if (!ps)
    ps = (void*)&internal_state;
  if (!s)
    return mbrtoc32(0, "", 1, ps);
  wchar_t wc;
  size_t ret = mbrtowc(&wc, s, n, ps);
  if (ret <= 4 && pc32)
    *pc32 = wc;
  return ret;
}
