#ifndef _INTS_H
#define _INTS_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include <stddef.h>
#include <stdlib.h>


#define DEF(s, n) typedef s ## int ## n ## _t s ## n
#define DEFINT(n) typedef uint ## n ## _t u ## n; \
		  typedef int ## n ## _t i ## n
		  
DEFINT(8);
DEFINT(16);
DEFINT(32);
DEFINT(64);

#ifdef __cplusplus
#else
#include <stdbool.h>
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
typedef signed __int128 i128;
typedef unsigned __int128 u128;
#pragma GCC diagnostic pop
#endif
typedef float f32;
typedef double f64;

typedef size_t usize;
typedef ssize_t isize;

typedef bool u1;
typedef bool i1;

typedef uintptr_t ptr_t;

#undef DEFINT
#undef DEF

#ifdef __cplusplus
}
#endif

#endif /* _INTS_H */
