diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2025-09-17 23:09:18 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2025-09-17 23:09:18 +0200 |
| commit | b148bc31697698959ab02c95e45f87e3b31fa565 (patch) | |
| tree | 56e7c994ddac78e9a39fd5bd3be150504954c353 | |
| parent | 5fb06d7fc3a16df2a560021b0a2aacfb8972ba99 (diff) | |
fixup! uline: Add unicode line reader
| -rw-r--r-- | src/uline.cc | 23 | ||||
| -rw-r--r-- | src/uline.hh | 16 | ||||
| -rw-r--r-- | test/uio.cc | 2 |
3 files changed, 13 insertions, 28 deletions
diff --git a/src/uline.cc b/src/uline.cc index 21927b3..7d4c7c7 100644 --- a/src/uline.cc +++ b/src/uline.cc @@ -3,6 +3,7 @@ #include "check.hh" #include <algorithm> +#include <array> #include <cassert> #include <cstdint> #include <cstring> @@ -108,7 +109,7 @@ class UnicodeReader { std::expected<size_t, io::ReadError> fill() { auto ret = reader_->read(wptr_, (end_ - wptr_) * sizeof(T)); if (ret.has_value()) - wptr_ += ret.value() / sizeof(T); + wptr_ += ret.value() / sizeof(T); // NOLINT(bugprone-sizeof-expression) return ret; } @@ -125,9 +126,7 @@ class UnicodeReader { } // namespace -namespace u8 { - -namespace line { +namespace u8::line { namespace { @@ -154,16 +153,12 @@ class ReaderImpl : public UnicodeReader<char, u8::Reader>, [[nodiscard]] std::unique_ptr<Reader> open(std::unique_ptr<u8::Reader> reader, size_t max_len) { - return std::make_unique<ReaderImpl>(std::move(reader), std::move(max_len)); + return std::make_unique<ReaderImpl>(std::move(reader), max_len); } -} // namespace line - -} // namespace u8 +} // namespace u8::line -namespace u16 { - -namespace line { +namespace u16::line { namespace { @@ -190,9 +185,7 @@ class ReaderImpl : public UnicodeReader<char16_t, u16::Reader>, [[nodiscard]] std::unique_ptr<Reader> open(std::unique_ptr<u16::Reader> reader, size_t max_len) { - return std::make_unique<ReaderImpl>(std::move(reader), std::move(max_len)); + return std::make_unique<ReaderImpl>(std::move(reader), max_len); } -} // namespace line - -} // namespace u16 +} // namespace u16::line diff --git a/src/uline.hh b/src/uline.hh index a3bcef3..28e2936 100644 --- a/src/uline.hh +++ b/src/uline.hh @@ -9,9 +9,7 @@ #include <memory> #include <string_view> -namespace u8 { - -namespace line { +namespace u8::line { class Reader { public: @@ -35,13 +33,9 @@ class Reader { [[nodiscard]] std::unique_ptr<Reader> open(std::unique_ptr<u8::Reader> reader, size_t max_len = 8192); -} // namespace line - -} // namespace u8 +} // namespace u8::line -namespace u16 { - -namespace line { +namespace u16::line { class Reader { public: @@ -65,8 +59,6 @@ class Reader { [[nodiscard]] std::unique_ptr<Reader> open(std::unique_ptr<u16::Reader> reader, size_t max_len = 8192); -} // namespace line - -} // namespace u16 +} // namespace u16::line #endif // ULINE_HH diff --git a/test/uio.cc b/test/uio.cc index 7c8d175..47646e0 100644 --- a/test/uio.cc +++ b/test/uio.cc @@ -40,7 +40,7 @@ TEST(uio_u8, sample) { TEST(uio_u16, sample_be) { auto uio = - u16::open(io::memory("\x00\x24\xD8\x01\xDC\x37"s), + u16::open(io::memory("\x00\x24\xD8\x01\xDC\x37"s), // NOLINT u::ReaderConfig{.input = u::ReaderInputFormat::UTF16_BE}); std::u16string tmp; auto ret = uio->repeat_read(tmp, 5); |
