From 61234fbdb2cfe340016862d6458fad48d573bf2c Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sat, 20 Jan 2024 19:07:30 +0100 Subject: w --- serialize/savegame.cpp | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/serialize/savegame.cpp b/serialize/savegame.cpp index 765d0084..79ae7f28 100644 --- a/serialize/savegame.cpp +++ b/serialize/savegame.cpp @@ -45,21 +45,6 @@ constexpr inline auto object_magic = (uint16_t)0xb00b; constexpr inline auto atlas_magic = (uint16_t)0xbeef; constexpr inline auto null_atlas = (atlasid)-1; -struct string_container -{ - StringView str; - bool operator==(const string_container&) const = default; - -#if 0 - friend void swap(string_container& a, string_container& b) - { - auto tmp = a.str; - a.str = b.str; - b.str = tmp; - } -#endif -}; - struct FILE_raii final { FILE_raii(FILE* s) noexcept : s{s} {} @@ -187,18 +172,20 @@ struct visitor_ } }; -struct writer final : visitor_ +struct string_hasher { - using string_hasher = decltype( - [](const string_container& x) { - return fnvhash_buf(x.str.data(), x.str.size()); - } - ); + inline size_t operator()(StringView s) const + { + return fnvhash_buf(s.data(), s.size()); + } +}; +struct writer final : visitor_ +{ const world& w; std::vector string_array{}; - tsl::robin_map string_map{hash_initial_size}; + tsl::robin_map string_map{hash_initial_size}; std::vector atlas_array{}; tsl::robin_map atlas_map{hash_initial_size}; -- cgit v1.2.3