diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-12-02 16:01:28 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-12-02 18:58:28 +0100 |
commit | db50c7a6a38eff251a14d57dcb9ae551ffe3a1d6 (patch) | |
tree | c7d6aba45e63dbbf94ff0f888d00f9da78093bb7 /serialize/magnum-vector2i.hpp | |
parent | 08e6c03c2864657ae24faec8dde2389d640aaa23 (diff) |
loader, serialize: use more exception handling
Diffstat (limited to 'serialize/magnum-vector2i.hpp')
-rw-r--r-- | serialize/magnum-vector2i.hpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/serialize/magnum-vector2i.hpp b/serialize/magnum-vector2i.hpp index a57429dc..f63bd130 100644 --- a/serialize/magnum-vector2i.hpp +++ b/serialize/magnum-vector2i.hpp @@ -1,5 +1,5 @@ #pragma once -#include "compat/assert.hpp" +#include "compat/exception.hpp" #include <cstdio> #include <string> #include <Magnum/Math/Vector2.h> @@ -21,6 +21,7 @@ struct adl_serializer<Magnum::Math::Vector2<t>> final } static void from_json(const json& j, Magnum::Math::Vector2<t>& val) { + using namespace floormat; std::string str = j; using type = std::conditional_t<std::is_signed_v<t>, std::intmax_t, std::uintmax_t>; constexpr auto format_string = std::is_signed_v<t> ? "%jd x %jd%n" : "%ju x %ju%n"; @@ -28,7 +29,7 @@ struct adl_serializer<Magnum::Math::Vector2<t>> final int n = 0; int ret = std::sscanf(str.data(), format_string, &x, &y, &n); if (ret != 2 || (std::size_t)n != str.size() || x != (t)x || y != (t)y) - fm_abort("failed to parse Vector2 '%s'", str.data()); + fm_throw("failed to parse Vector2 '{}'"_cf, str); val = { (t)x, (t)y }; } }; |