From fc4547b412e28164af1bf8981234c6af959ccc0b Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Tue, 13 Jun 2023 10:07:16 +0200 Subject: WIP --- utf/inc/utf32.hh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 utf/inc/utf32.hh (limited to 'utf/inc/utf32.hh') diff --git a/utf/inc/utf32.hh b/utf/inc/utf32.hh new file mode 100644 index 0000000..2d3088e --- /dev/null +++ b/utf/inc/utf32.hh @@ -0,0 +1,29 @@ +#ifndef UTF_UTF32_HH +#define UTF_UTF32_HH + +#include "macros.hh" + +#include +#include + +namespace utf { + +/* Read one unicode codepoint from UTF-32 BigEndian encoded data if possible. + * If successfull offset is incremented to point to next codepoint. + * Will fail: + * - not enough data is left in data given offset, returns NEED_MORE. + * - data is not valid UTF-32, ie. outside valid ranges, returns INVALID. + */ +uint32_t HIDDEN read32be(std::string_view data, std::size_t& offset); + +/* Read one unicode codepoint from UTF-32 LittleEndian encoded data if possible. + * If successfull offset is incremented to point to next codepoint. + * Will fail: + * - not enough data is left in data given offset, returns NEED_MORE. + * - data is not valid UTF-32, ie. outside valid ranges, returns INVALID. + */ +uint32_t HIDDEN read32le(std::string_view data, std::size_t& offset); + +} // namespace utf + +#endif // UTF_UTF32_HH -- cgit v1.2.3-70-g09d2