summaryrefslogtreecommitdiff
path: root/src/line.hh
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2025-09-22 23:38:21 +0200
committerJoel Klinghed <the_jk@spawned.biz>2025-09-22 23:38:21 +0200
commitce271f82f16ee89a18e7bfc9ed8eab7cbd6f37bc (patch)
tree3e568faf83ae750aa244cca87b55951c7401ef03 /src/line.hh
parent50348284f5d82ccfd65b0c803ba0ba895912ceff (diff)
Change io::Reader and company to return ReadError::Eof instead of 0.
It's debatable if Eof should be considered an error or not. But it is pretty clear it generally is a special response that needs special handling, so easier to keep with the unexpected lot. Also keeps better at higher abstraction levels, such as the line reader.
Diffstat (limited to 'src/line.hh')
-rw-r--r--src/line.hh11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/line.hh b/src/line.hh
index 5ce42dd..a8eeea8 100644
--- a/src/line.hh
+++ b/src/line.hh
@@ -11,20 +11,13 @@
namespace line {
-struct ReadError {
- bool eof;
- std::optional<io::ReadError> io_error;
-
- ReadError();
- explicit ReadError(io::ReadError error);
-};
-
class Reader {
public:
virtual ~Reader() = default;
// Returned view is only valid until next call to read.
- [[nodiscard]] virtual std::expected<std::string_view, ReadError> read() = 0;
+ [[nodiscard]]
+ virtual std::expected<std::string_view, io::ReadError> read() = 0;
// Starts at zero. Returns next line.
// So, before first read it is zero, after first read it is one.
[[nodiscard]] virtual uint64_t number() const = 0;