aboutsummaryrefslogtreecommitdiffstats
path: root/nihil.ucl/parser.ccm
diff options
context:
space:
mode:
authorLexi Winter <lexi@le-fay.org>2025-06-27 12:08:58 +0100
committerLexi Winter <lexi@le-fay.org>2025-06-27 12:08:58 +0100
commit001c9917ace09f7b1c80d96eb067e1d37e86c546 (patch)
tree89e360961b9659a8c6b897c5412b7d6834b8eed9 /nihil.ucl/parser.ccm
parent90aa957ca9b7c217af7569009d1675e0f3ff8e9b (diff)
downloadnihil-001c9917ace09f7b1c80d96eb067e1d37e86c546.tar.gz
nihil-001c9917ace09f7b1c80d96eb067e1d37e86c546.tar.bz2
improve error handling
Diffstat (limited to 'nihil.ucl/parser.ccm')
-rw-r--r--nihil.ucl/parser.ccm13
1 files changed, 6 insertions, 7 deletions
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<void, nihil::error>
+ -> std::expected<void, error>
// Only bytes (chars) are permitted.
requires(sizeof(std::ranges::range_value_t<decltype(data)>) == 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<void, nihil::error>
+ -> std::expected<void, error>
requires (!std::ranges::contiguous_range<decltype(data)>)
{
auto cdata = std::vector<char>(
@@ -139,12 +138,12 @@ private:
// Create a parser with the given flags.
export [[nodiscard]] auto
-make_parser(int flags = 0) -> std::expected<parser, nihil::error>;
+make_parser(int flags = 0) -> std::expected<parser, error>;
// Utility function to parse something and return the top-level object.
export [[nodiscard]] auto
parse(int flags, std::ranges::range auto &&data)
- -> std::expected<map<object>, nihil::error>
+ -> std::expected<map<object>, error>
{
auto p = co_await make_parser(flags);
co_await p.add(std::forward<decltype(data)>(data));
@@ -153,7 +152,7 @@ parse(int flags, std::ranges::range auto &&data)
export [[nodiscard]] auto
parse(std::ranges::range auto &&data)
- -> std::expected<map<object>, nihil::error>
+ -> std::expected<map<object>, error>
{
co_return co_await parse(0, std::forward<decltype(data)>(data));
}