Formatting
publish / publish (push) Successful in 15m37s

This commit is contained in:
khodowany
2026-09-14 23:56:06 -05:00
parent 86cf029ad7
commit bb96aaf95d
30 changed files with 1030 additions and 950 deletions
+28 -26
View File
@@ -15,13 +15,13 @@
#include <luma/detail/errors.hpp>
#include <luma/theme.hpp>
namespace {
constexpr auto json_options = modulus::json_config::options{
.category = "luma",
.invalid_argument_code = luma::detail::error_invalid_argument,
.not_found_code = luma::detail::error_not_found
};
.not_found_code = luma::detail::error_not_found};
auto invalid_display(std::string message) -> std::expected<luma::display_config, modulus::error> {
assert(!message.empty());
@@ -40,7 +40,7 @@ auto invalid_application(std::string message) -> std::expected<luma::application
}
auto luma::validate(luma::display_config const& config) -> std::expected<void, modulus::error> {
auto luma::validate(luma::display_config const &config) -> std::expected<void, modulus::error> {
if (config.width <= 0) {
return luma::detail::fail<void>(luma::detail::error_invalid_argument, "display.width must be positive");
}
@@ -59,14 +59,14 @@ auto luma::validate(luma::display_config const& config) -> std::expected<void, m
return {};
}
auto luma::validate(luma::touch_config const& config) -> std::expected<void, modulus::error> {
auto luma::validate(luma::touch_config const &config) -> std::expected<void, modulus::error> {
if (config.max_points <= 0) {
return luma::detail::fail<void>(luma::detail::error_invalid_argument, "touch.max_points must be positive");
}
return {};
}
auto luma::validate(luma::application_config const& config) -> std::expected<void, modulus::error> {
auto luma::validate(luma::application_config const &config) -> std::expected<void, modulus::error> {
if (config.title.empty()) {
return luma::detail::fail<void>(luma::detail::error_invalid_argument, "title must not be empty");
}
@@ -82,18 +82,19 @@ auto luma::validate(luma::application_config const& config) -> std::expected<voi
return {};
}
auto luma::parse_display_config(boost::json::value const& value) -> std::expected<luma::display_config, modulus::error> {
auto luma::parse_display_config(boost::json::value const &value) -> std::expected<luma::display_config, modulus::error> {
auto object = modulus::json_config::require_object(value, "display", json_options);
if (!object) {
return invalid_display(std::string{object.error().message()});
}
auto unknown = modulus::json_config::reject_unknown_fields(**object, {
"width",
"height",
"target_fps",
"idle_fps",
"fullscreen",
}, "display", json_options);
"width",
"height",
"target_fps",
"idle_fps",
"fullscreen",
},
"display", json_options);
if (!unknown) {
return invalid_display(std::string{unknown.error().message()});
}
@@ -129,7 +130,7 @@ auto luma::parse_display_config(boost::json::value const& value) -> std::expecte
return modulus::success(config);
}
auto luma::parse_touch_config(boost::json::value const& value) -> std::expected<luma::touch_config, modulus::error> {
auto luma::parse_touch_config(boost::json::value const &value) -> std::expected<luma::touch_config, modulus::error> {
auto object = modulus::json_config::require_object(value, "touch", json_options);
if (!object) {
return invalid_touch(std::string{object.error().message()});
@@ -150,17 +151,18 @@ auto luma::parse_touch_config(boost::json::value const& value) -> std::expected<
return modulus::success(config);
}
auto luma::parse_application_config(boost::json::value const& value) -> std::expected<luma::application_config, modulus::error> {
auto luma::parse_application_config(boost::json::value const &value) -> std::expected<luma::application_config, modulus::error> {
auto object = modulus::json_config::require_object(value, "application config", json_options);
if (!object) {
return invalid_application(std::string{object.error().message()});
}
auto unknown = modulus::json_config::reject_unknown_fields(**object, {
"title",
"display",
"touch",
"theme",
}, "application config", json_options);
"title",
"display",
"touch",
"theme",
},
"application config", json_options);
if (!unknown) {
return invalid_application(std::string{unknown.error().message()});
}
@@ -170,21 +172,21 @@ auto luma::parse_application_config(boost::json::value const& value) -> std::exp
return invalid_application(std::string{title.error().message()});
}
config.title = *title;
if (auto const* display = (*object)->if_contains("display")) {
if (auto const *display = (*object)->if_contains("display")) {
auto parsed = luma::parse_display_config(*display);
if (!parsed) {
return invalid_application(std::string{parsed.error().message()});
}
config.display = *parsed;
}
if (auto const* touch = (*object)->if_contains("touch")) {
if (auto const *touch = (*object)->if_contains("touch")) {
auto parsed = luma::parse_touch_config(*touch);
if (!parsed) {
return invalid_application(std::string{parsed.error().message()});
}
config.touch = *parsed;
}
if (auto const* theme = (*object)->if_contains("theme")) {
if (auto const *theme = (*object)->if_contains("theme")) {
auto parsed = luma::parse_theme(*theme);
if (!parsed) {
return invalid_application(std::string{parsed.error().message()});
@@ -197,7 +199,7 @@ auto luma::parse_application_config(boost::json::value const& value) -> std::exp
return modulus::success(config);
}
auto luma::load_application_config(std::string const& path) -> std::expected<luma::application_config, modulus::error> {
auto luma::load_application_config(std::string const &path) -> std::expected<luma::application_config, modulus::error> {
auto value = modulus::json_config::load_value(path, json_options);
if (!value) {
return modulus::fail<luma::application_config>(value.error());
@@ -205,7 +207,7 @@ auto luma::load_application_config(std::string const& path) -> std::expected<lum
return luma::parse_application_config(*value);
}
auto luma::to_json(luma::display_config const& config) -> boost::json::value {
auto luma::to_json(luma::display_config const &config) -> boost::json::value {
return boost::json::object{
{
"width",
@@ -230,7 +232,7 @@ auto luma::to_json(luma::display_config const& config) -> boost::json::value {
};
}
auto luma::to_json(luma::touch_config const& config) -> boost::json::value {
auto luma::to_json(luma::touch_config const &config) -> boost::json::value {
return boost::json::object{
{
"max_points",
@@ -239,7 +241,7 @@ auto luma::to_json(luma::touch_config const& config) -> boost::json::value {
};
}
auto luma::to_json(luma::application_config const& config) -> boost::json::value {
auto luma::to_json(luma::application_config const &config) -> boost::json::value {
return boost::json::object{
{
"title",