/* Códigos de error comunes de toda la API pública. * Regla: valor < 0 = fallo, 0 = éxito, > 0 = éxito con aviso. */ #ifndef TAHGIBU_ERROR_H #define TAHGIBU_ERROR_H #ifdef __cplusplus extern "C" { #endif typedef enum tgb_status { TGB_WARN_HISTORY_LOST = 1, /* la operación se hizo pero no se pudo guardar para deshacer */ TGB_OK = 0, TGB_ERR_INVALID_ARG = -1, /* argumento NULL o inválido */ TGB_ERR_NOMEM = -2, /* sin memoria */ TGB_ERR_RANGE = -3, /* índice o valor fuera de rango */ TGB_ERR_NOT_FOUND = -4, /* id/archivo/elemento inexistente */ TGB_ERR_EXISTS = -5, /* ya existe (p. ej. nombre repetido) */ TGB_ERR_IO = -6, /* error de lectura/escritura del sistema */ TGB_ERR_FORMAT = -7, /* el archivo no tiene el formato esperado */ TGB_ERR_CORRUPT = -8, /* datos dañados (Base64, PNG, CRC...) */ TGB_ERR_UNSUPPORTED = -9, /* válido pero no soportado todavía */ TGB_ERR_LIMIT = -10, /* supera un límite de seguridad */ TGB_ERR_STATE = -11, /* operación no permitida en el estado actual */ TGB_ERR_LOCKED = -12, /* capa bloqueada */ TGB_ERR_NOTHING = -13, /* nada que deshacer/rehacer */ TGB_ERR_PLUGIN = -14, /* fallo de una extensión */ TGB_ERR_INCOMPATIBLE = -15 /* versión de formato más nueva o desconocida */ } tgb_status; #define TGB_FAILED(s) ((s) < 0) #define TGB_SUCCEEDED(s) ((s) >= 0) /* Nombre corto del código (para registros), p. ej. "TGB_ERR_IO". */ const char *tgb_status_name(tgb_status status); /* Mensaje detallado en español del último fallo en ESTE hilo. * Nunca devuelve NULL. El puntero es válido hasta la siguiente llamada * a la API desde el mismo hilo; copia el texto si lo necesitas más tiempo. */ const char *tgb_last_error(void); #ifdef __cplusplus } #endif #endif