From 001c9917ace09f7b1c80d96eb067e1d37e86c546 Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Fri, 27 Jun 2025 12:08:58 +0100 Subject: improve error handling --- nihil.ucl/parser.ccm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'nihil.ucl/parser.ccm') diff --git a/nihil.ucl/parser.ccm b/nihil.ucl/parser.ccm index efddd5f..2630c81 100644 --- a/nihil.ucl/parser.ccm +++ b/nihil.ucl/parser.ccm @@ -17,7 +17,6 @@ module; export module nihil.ucl:parser; import nihil; -import :error; import :object; import :map; @@ -92,7 +91,7 @@ struct parser { // Add data to the parser. [[nodiscard]] auto add(this parser &self, std::ranges::contiguous_range auto &&data) - -> std::expected + -> std::expected // Only bytes (chars) are permitted. requires(sizeof(std::ranges::range_value_t) == 1) { @@ -106,12 +105,12 @@ struct parser { if (ret == true) return {}; - return std::unexpected(nihil::error(::ucl_parser_get_error(p))); + return std::unexpected(error(::ucl_parser_get_error(p))); } [[nodiscard]] auto add(this parser &self, std::ranges::range auto &&data) - -> std::expected + -> std::expected requires (!std::ranges::contiguous_range) { auto cdata = std::vector( @@ -139,12 +138,12 @@ private: // Create a parser with the given flags. export [[nodiscard]] auto -make_parser(int flags = 0) -> std::expected; +make_parser(int flags = 0) -> std::expected; // Utility function to parse something and return the top-level object. export [[nodiscard]] auto parse(int flags, std::ranges::range auto &&data) - -> std::expected, nihil::error> + -> std::expected, error> { auto p = co_await make_parser(flags); co_await p.add(std::forward(data)); @@ -153,7 +152,7 @@ parse(int flags, std::ranges::range auto &&data) export [[nodiscard]] auto parse(std::ranges::range auto &&data) - -> std::expected, nihil::error> + -> std::expected, error> { co_return co_await parse(0, std::forward(data)); } -- cgit v1.2.3