LIEF: Library to Instrument Executable Formats Version 1.0.0
Loading...
Searching...
No Matches
utf8 Namespace Reference

Namespaces

namespace  internal
namespace  unchecked

Classes

class  exception
class  invalid_code_point
class  invalid_utf8
class  invalid_utf16
class  not_enough_room
class  iterator

Typedefs

typedef unsigned char utfchar8_t
typedef unsigned short utfchar16_t
typedef unsigned int utfchar32_t

Functions

template<typename octet_iterator>
octet_iterator append (utfchar32_t cp, octet_iterator result)
 The library API - functions intended to be called by the users.
void append (utfchar32_t cp, std::string &s)
template<typename word_iterator>
word_iterator append16 (utfchar32_t cp, word_iterator result)
template<typename octet_iterator, typename output_iterator>
output_iterator replace_invalid (octet_iterator start, octet_iterator end, output_iterator out, utfchar32_t replacement)
template<typename octet_iterator, typename output_iterator>
output_iterator replace_invalid (octet_iterator start, octet_iterator end, output_iterator out)
std::string replace_invalid (const std::string &s, utfchar32_t replacement)
std::string replace_invalid (const std::string &s)
template<typename octet_iterator>
utfchar32_t next (octet_iterator &it, octet_iterator end)
template<typename word_iterator>
utfchar32_t next16 (word_iterator &it, word_iterator end)
template<typename octet_iterator>
utfchar32_t peek_next (octet_iterator it, octet_iterator end)
template<typename octet_iterator>
utfchar32_t prior (octet_iterator &it, octet_iterator start)
template<typename octet_iterator, typename distance_type>
void advance (octet_iterator &it, distance_type n, octet_iterator end)
template<typename octet_iterator>
std::iterator_traits< octet_iterator >::difference_type distance (octet_iterator first, octet_iterator last)
template<typename u16bit_iterator, typename octet_iterator>
octet_iterator utf16to8 (u16bit_iterator start, u16bit_iterator end, octet_iterator result)
template<typename u16bit_iterator, typename octet_iterator>
u16bit_iterator utf8to16 (octet_iterator start, octet_iterator end, u16bit_iterator result)
template<typename octet_iterator, typename u32bit_iterator>
octet_iterator utf32to8 (u32bit_iterator start, u32bit_iterator end, octet_iterator result)
template<typename octet_iterator, typename u32bit_iterator>
u32bit_iterator utf8to32 (octet_iterator start, octet_iterator end, u32bit_iterator result)
template<typename octet_iterator>
octet_iterator find_invalid (octet_iterator start, octet_iterator end)
const char * find_invalid (const char *str)
std::size_t find_invalid (const std::string &s)
template<typename octet_iterator>
bool is_valid (octet_iterator start, octet_iterator end)
bool is_valid (const char *str)
bool is_valid (const std::string &s)
template<typename octet_iterator>
bool starts_with_bom (octet_iterator it, octet_iterator end)
bool starts_with_bom (const std::string &s)
void append16 (utfchar32_t cp, std::u16string &s)
std::string utf16to8 (const std::u16string &s)
std::u16string utf8to16 (const std::string &s)
std::string utf32to8 (const std::u32string &s)
std::u32string utf8to32 (const std::string &s)
std::string utf16to8 (std::u16string_view s)
std::u16string utf8to16 (std::string_view s)
std::string utf32to8 (std::u32string_view s)
std::u32string utf8to32 (std::string_view s)
std::size_t find_invalid (std::string_view s)
bool is_valid (std::string_view s)
std::string replace_invalid (std::string_view s, char32_t replacement)
std::string replace_invalid (std::string_view s)
bool starts_with_bom (std::string_view s)
std::u8string utf16tou8 (const std::u16string &s)
std::u8string utf16tou8 (std::u16string_view s)
std::u16string utf8to16 (const std::u8string &s)
std::u16string utf8to16 (const std::u8string_view &s)
std::u8string utf32tou8 (const std::u32string &s)
std::u8string utf32tou8 (const std::u32string_view &s)
std::u32string utf8to32 (const std::u8string &s)
std::u32string utf8to32 (const std::u8string_view &s)
std::size_t find_invalid (const std::u8string &s)
bool is_valid (const std::u8string &s)
std::u8string replace_invalid (const std::u8string &s, char32_t replacement)
std::u8string replace_invalid (const std::u8string &s)
bool starts_with_bom (const std::u8string &s)

Variables

const utfchar8_t bom [] = {0xef, 0xbb, 0xbf}
 The library API - functions intended to be called by the users.

Typedef Documentation

◆ utfchar16_t

typedef unsigned short utf8::utfchar16_t

◆ utfchar32_t

typedef unsigned int utf8::utfchar32_t

◆ utfchar8_t

typedef unsigned char utf8::utfchar8_t

Function Documentation

◆ advance()

template<typename octet_iterator, typename distance_type>
void utf8::advance ( octet_iterator & it,
distance_type n,
octet_iterator end )

References next(), and prior().

◆ append() [1/2]

template<typename octet_iterator>
octet_iterator utf8::append ( utfchar32_t cp,
octet_iterator result )

The library API - functions intended to be called by the users.

References utf8::internal::append(), and utf8::internal::is_code_point_valid().

Referenced by append(), replace_invalid(), utf16to8(), and utf32to8().

◆ append() [2/2]

void utf8::append ( utfchar32_t cp,
std::string & s )
inline

References append().

◆ append16() [1/2]

void utf8::append16 ( utfchar32_t cp,
std::u16string & s )
inline

References append16().

◆ append16() [2/2]

template<typename word_iterator>
word_iterator utf8::append16 ( utfchar32_t cp,
word_iterator result )

◆ distance()

template<typename octet_iterator>
std::iterator_traits< octet_iterator >::difference_type utf8::distance ( octet_iterator first,
octet_iterator last )

References next().

◆ find_invalid() [1/5]

const char * utf8::find_invalid ( const char * str)
inline

References find_invalid().

◆ find_invalid() [2/5]

std::size_t utf8::find_invalid ( const std::string & s)
inline

References find_invalid().

◆ find_invalid() [3/5]

std::size_t utf8::find_invalid ( const std::u8string & s)
inline

References find_invalid().

◆ find_invalid() [4/5]

template<typename octet_iterator>
octet_iterator utf8::find_invalid ( octet_iterator start,
octet_iterator end )

◆ find_invalid() [5/5]

std::size_t utf8::find_invalid ( std::string_view s)
inline

References find_invalid().

◆ is_valid() [1/5]

bool utf8::is_valid ( const char * str)
inline

References find_invalid().

◆ is_valid() [2/5]

bool utf8::is_valid ( const std::string & s)
inline

References is_valid().

◆ is_valid() [3/5]

bool utf8::is_valid ( const std::u8string & s)
inline

References is_valid().

◆ is_valid() [4/5]

template<typename octet_iterator>
bool utf8::is_valid ( octet_iterator start,
octet_iterator end )
inline

References find_invalid().

Referenced by is_valid(), is_valid(), and is_valid().

◆ is_valid() [5/5]

bool utf8::is_valid ( std::string_view s)
inline

References is_valid().

◆ next()

◆ next16()

template<typename word_iterator>
utfchar32_t utf8::next16 ( word_iterator & it,
word_iterator end )

◆ peek_next()

template<typename octet_iterator>
utfchar32_t utf8::peek_next ( octet_iterator it,
octet_iterator end )

References next().

Referenced by prior().

◆ prior()

template<typename octet_iterator>
utfchar32_t utf8::prior ( octet_iterator & it,
octet_iterator start )

◆ replace_invalid() [1/8]

std::string utf8::replace_invalid ( const std::string & s)
inline

References replace_invalid().

◆ replace_invalid() [2/8]

std::string utf8::replace_invalid ( const std::string & s,
utfchar32_t replacement )
inline

References replace_invalid().

◆ replace_invalid() [3/8]

std::u8string utf8::replace_invalid ( const std::u8string & s)
inline

References replace_invalid().

◆ replace_invalid() [4/8]

std::u8string utf8::replace_invalid ( const std::u8string & s,
char32_t replacement )
inline

References replace_invalid().

◆ replace_invalid() [5/8]

template<typename octet_iterator, typename output_iterator>
output_iterator utf8::replace_invalid ( octet_iterator start,
octet_iterator end,
output_iterator out )
inline

◆ replace_invalid() [6/8]

◆ replace_invalid() [7/8]

std::string utf8::replace_invalid ( std::string_view s)
inline

References replace_invalid().

◆ replace_invalid() [8/8]

std::string utf8::replace_invalid ( std::string_view s,
char32_t replacement )
inline

References replace_invalid().

◆ starts_with_bom() [1/4]

bool utf8::starts_with_bom ( const std::string & s)
inline

References starts_with_bom().

◆ starts_with_bom() [2/4]

bool utf8::starts_with_bom ( const std::u8string & s)
inline

References starts_with_bom().

◆ starts_with_bom() [3/4]

template<typename octet_iterator>
bool utf8::starts_with_bom ( octet_iterator it,
octet_iterator end )
inline

◆ starts_with_bom() [4/4]

bool utf8::starts_with_bom ( std::string_view s)
inline

References starts_with_bom().

◆ utf16to8() [1/3]

std::string utf8::utf16to8 ( const std::u16string & s)
inline

References utf16to8().

◆ utf16to8() [2/3]

std::string utf8::utf16to8 ( std::u16string_view s)
inline

References utf16to8().

◆ utf16to8() [3/3]

template<typename u16bit_iterator, typename octet_iterator>
octet_iterator utf8::utf16to8 ( u16bit_iterator start,
u16bit_iterator end,
octet_iterator result )

◆ utf16tou8() [1/2]

std::u8string utf8::utf16tou8 ( const std::u16string & s)
inline

References utf16to8().

◆ utf16tou8() [2/2]

std::u8string utf8::utf16tou8 ( std::u16string_view s)
inline

References utf16to8().

◆ utf32to8() [1/3]

std::string utf8::utf32to8 ( const std::u32string & s)
inline

References utf32to8().

◆ utf32to8() [2/3]

std::string utf8::utf32to8 ( std::u32string_view s)
inline

References utf32to8().

◆ utf32to8() [3/3]

template<typename octet_iterator, typename u32bit_iterator>
octet_iterator utf8::utf32to8 ( u32bit_iterator start,
u32bit_iterator end,
octet_iterator result )

References append().

Referenced by utf32to8(), utf32to8(), utf32tou8(), and utf32tou8().

◆ utf32tou8() [1/2]

std::u8string utf8::utf32tou8 ( const std::u32string & s)
inline

References utf32to8().

◆ utf32tou8() [2/2]

std::u8string utf8::utf32tou8 ( const std::u32string_view & s)
inline

References utf32to8().

◆ utf8to16() [1/5]

std::u16string utf8::utf8to16 ( const std::string & s)
inline

References utf8to16().

◆ utf8to16() [2/5]

std::u16string utf8::utf8to16 ( const std::u8string & s)
inline

References utf8to16().

◆ utf8to16() [3/5]

std::u16string utf8::utf8to16 ( const std::u8string_view & s)
inline

References utf8to16().

◆ utf8to16() [4/5]

template<typename u16bit_iterator, typename octet_iterator>
u16bit_iterator utf8::utf8to16 ( octet_iterator start,
octet_iterator end,
u16bit_iterator result )

◆ utf8to16() [5/5]

std::u16string utf8::utf8to16 ( std::string_view s)
inline

References utf8to16().

◆ utf8to32() [1/5]

std::u32string utf8::utf8to32 ( const std::string & s)
inline

References utf8to32().

◆ utf8to32() [2/5]

std::u32string utf8::utf8to32 ( const std::u8string & s)
inline

References utf8to32().

◆ utf8to32() [3/5]

std::u32string utf8::utf8to32 ( const std::u8string_view & s)
inline

References utf8to32().

◆ utf8to32() [4/5]

template<typename octet_iterator, typename u32bit_iterator>
u32bit_iterator utf8::utf8to32 ( octet_iterator start,
octet_iterator end,
u32bit_iterator result )

References next().

Referenced by utf8to32(), utf8to32(), utf8to32(), and utf8to32().

◆ utf8to32() [5/5]

std::u32string utf8::utf8to32 ( std::string_view s)
inline

References utf8to32().

Variable Documentation

◆ bom

const utfchar8_t utf8::bom[] = {0xef, 0xbb, 0xbf}

The library API - functions intended to be called by the users.

Referenced by starts_with_bom().