#ifndef UNICODE_H
#define UNICODE_H

#define BITMASK_1B 0b10000000
#define BITMASK_2B 0b11100000
#define BITMASK_3B 0b11110000
#define BITMASK_4B 0b11111000

#define BITMASK_CONT 0x1100000
#define RESULT_CONT 0x1000000

#define RESULT_1B 0b00000000
#define RESULT_2B 0b11000000
#define RESULT_3B 0b11100000
#define RESULT_4B 0b11110000

#define ANSI_ESCAPE 0x1b
#define ANSI_ESCAPE_BITMASK_3B 0x20
#define ANSI_ESCAPE_RESULT_3B 0x20

#define ANSI_ESCAPE_BITMASK_EXT_4B 0x20
#define ANSI_ESCAPE_RESULT_EXT_4B 0x20

struct utf8_char {
    char chars[4];
    char count;
};

struct utf8_string {
    int count;
    struct utf8_char * chars;
};

struct utf8_string parse_string(char * input);

#endif