65 lines
1.1 KiB
C
65 lines
1.1 KiB
C
////////////////////////////////////////////////////////////
|
|
//~ Utf8 types
|
|
|
|
Struct(Utf8DecodeResult)
|
|
{
|
|
u32 advance8;
|
|
u32 codepoint;
|
|
};
|
|
|
|
Struct(Utf8EncodeResult)
|
|
{
|
|
u32 count8;
|
|
u8 chars8[4];
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Utf16 types
|
|
|
|
Struct(Utf16DecodeResult)
|
|
{
|
|
u32 advance16;
|
|
u32 codepoint;
|
|
};
|
|
|
|
Struct(Utf16EncodeResult)
|
|
{
|
|
u32 count16;
|
|
u16 chars16[2];
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Utf32 types
|
|
|
|
Struct(Utf32DecodeResult)
|
|
{
|
|
u32 advance32;
|
|
u32 codepoint;
|
|
};
|
|
|
|
Struct(Utf32EncodeResult)
|
|
{
|
|
u32 chars32;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Utf8
|
|
|
|
Utf8DecodeResult DecodeUtf8(String str);
|
|
Utf8EncodeResult EncodeUtf8(u32 codepoint);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Utf16
|
|
|
|
Utf16DecodeResult DecodeUtf16(String16 str);
|
|
Utf16EncodeResult EncodeUtf16(u32 codepoint);
|
|
|
|
b32 IsUtf16HighSurrogate(u16 c);
|
|
b32 IsUtf16LowSurrogate(u16 c);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Utf32
|
|
|
|
Utf32DecodeResult DecodeUtf32(String32 str);
|
|
Utf32EncodeResult EncodeUtf32(u32 codepoint);
|