#include "base.h"

extern "C" {

const char *marisa_alpha_strerror(marisa_alpha_status status) {
#define MARISA_ALPHA_STRERROR_CASE(x) case x: { return #x; }
  switch (status) {
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_OK)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_HANDLE_ERROR)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_STATE_ERROR)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_PARAM_ERROR)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_SIZE_ERROR)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_MEMORY_ERROR)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_IO_ERROR)
    MARISA_ALPHA_STRERROR_CASE(MARISA_ALPHA_UNEXPECTED_ERROR)
  }
  return "MARISA_ALPHA_UNKNOWN_ERROR";
#undef MARISA_ALPHA_STRERROR_CASE
}

}  // extern "C"