CoriEngine
Loading...
Searching...
No Matches
UTF.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <utf8.h>
3
4
namespace
Cori
{
5
namespace
Utility
{
11
inline
std::u32string
Utf8ToUtf32
(
const
std::string_view& view) {
12
std::u32string dest;
13
14
if
(!view.empty()) {
15
try
{
16
dest.reserve(utf8::distance(view.begin(), view.end()));
17
}
catch
(
const
utf8::invalid_utf8& e) {
18
CORI_CORE_ERROR_TAGGED
({
Logger::Tags::Utility::Self
,
Logger::Tags::Utility::UTF
},
"Failed to convert to UTF-8 to UTF-32, Error: {}"
, e.what());
19
}
20
21
try
{
22
utf8::utf8to32(view.begin(), view.end(), std::back_inserter(dest));
23
}
catch
(
const
utf8::invalid_utf8& e) {
24
CORI_CORE_ERROR_TAGGED
({
Logger::Tags::Utility::Self
,
Logger::Tags::Utility::UTF
},
"Failed to convert to UTF-8 to UTF-32, Error: {}"
, e.what());
25
dest.clear();
26
}
27
}
28
29
return
dest;
30
}
31
37
inline
std::u32string
Utf8ToUtf32
(
const
std::string&
string
) {
38
return
Utf8ToUtf32
(std::string_view(
string
));
39
}
40
}
41
}
CORI_CORE_ERROR_TAGGED
#define CORI_CORE_ERROR_TAGGED(...)
Definition
Logger.hpp:1039
Cori::Utility
A namespace for utilities of different kinds.
Definition
AABB.hpp:7
Cori::Utility::Utf8ToUtf32
std::u32string Utf8ToUtf32(const std::string_view &view)
Converts a UTF-8 variable length encoded string to a UTF-32 fixed length encoded string.
Definition
UTF.hpp:11
Cori
Global engine namespace.
Definition
AssetLoadStatus.hpp:3
Cori::Logger::Tags::Utility::Self
static constexpr char Self[]
Definition
Logger.hpp:150
Cori::Logger::Tags::Utility::UTF
static constexpr char UTF[]
Definition
Logger.hpp:152
CoriEngine
Engine
src
Utility
UTF.hpp
Generated by
1.14.0