38 namespace cacao {
class OStream; }
143 bool equals(
const uint16_t *cs,
size_t sz);
147 return strcmp(
begin(), cs) == 0;
168 operator void*()
const {
return _data; }
202 template<
typename Iterator>
205 template<
typename Iterator>
217 extern size_t num_bytes(
const uint16_t*,
size_t);
222 #define UTF8(NAME, STR) extern Utf8String NAME;
250 #define UTF_END(u) utf8_end(u)
251 #define UTF_SIZE(u) utf8_size(u)
void utf_strcat_convert_to_latin1_classname(char *buffer, Utf8String u)
Utf8String substring(size_t from) const
static const size_t sizeof_utf
static Utf8String from_utf8_dot_to_slash(const char *, size_t)
bool operator!=(const utf16_iterator &it)
size_t utf16_size() const
static Data * alloc(size_t hash, size_t utf8_size, size_t utf16_size)
allocate a Utf8String with given hash and size You still have to fill in the strings text! ...
static Utf8String from_utf8_slash_to_dot(const char *, size_t)
std::ptrdiff_t difference_type
size_t compute_hash(const uint16_t *cs, size_t)
byte_iterator end() const
void utf_display_printable_ascii_classname(Utf8String u)
void utf_fprint_printable_ascii_classname(FILE *file, Utf8String u)
static Utf8String from_utf16_dot_to_slash(const uint16_t *, size_t)
bool equals(const char *cs)
check if utf-8 strings contains same bytes as C string
void utf_strcat_convert_to_latin1(char *buffer, utf *u)
void utf_sprint_convert_to_latin1_classname(char *buffer, Utf8String u)
bool equals(const uint16_t *cs, size_t sz)
check if utf-8 strings contains the same utf-16 codepoints as a utf-16 string
char operator[](size_t idx) const
const char * byte_iterator
static void free(Utf8String u)
static bool is_initialized()
bool is_valid_name() const
utf16_iterator utf16_begin() const
static Utf8String from_utf8(const char *, size_t)
void utf_sprint_convert_to_latin1(char *buffer, Utf8String u)
static Utf8String from_utf8(const char *cs)
OStream & operator<<(OStream &OS, const std::string &t)
void utf_fprint_printable_ascii(FILE *file, Utf8String u)
void utf_display_printable_ascii(Utf8String u)
static Utf8String from_utf16(const uint16_t *, size_t)
utf16_iterator(byte_iterator it)
long num_codepoints(const char *, size_t)
byte_iterator begin() const
std::input_iterator_tag iterator_category
utf16_iterator utf16_end() const
const value_type * pointer
static Utf8String from_utf8_dot_to_slash(const char *cs)
const value_type & reference
char text[sizeof(void *)]
const char * utf8_end(utf *u)
size_t num_bytes(const uint16_t *, size_t)