From 6437d21bcea5c482a6bbdbbe99bf972ec5c77f5b Mon Sep 17 00:00:00 2001 From: Yoann Le Montagner Date: Tue, 30 Sep 2025 17:54:00 +0200 Subject: [PATCH] fix(IO): enable serialization for signed/unsigned 8/16-bits attributes --- include/geode/basic/detail/bitsery_archive.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/geode/basic/detail/bitsery_archive.hpp b/include/geode/basic/detail/bitsery_archive.hpp index e8e0cad62..b7aec207f 100644 --- a/include/geode/basic/detail/bitsery_archive.hpp +++ b/include/geode/basic/detail/bitsery_archive.hpp @@ -23,6 +23,8 @@ #pragma once +#include + #include #include @@ -75,10 +77,20 @@ namespace geode template < typename Serializer > void register_basic_pcontext( PContext& context ) { + // Base types (skip aliases registered below...) register_attribute_type< bool, Serializer >( context, "bool" ); + register_attribute_type< signed char, Serializer >( + context, "signed_char" ); + static_assert( std::is_same_v< unsigned char, local_index_t > ); + register_attribute_type< short, Serializer >( context, "short" ); + register_attribute_type< unsigned short, Serializer >( + context, "unsigned_short" ); register_attribute_type< int, Serializer >( context, "int" ); + static_assert( std::is_same_v< unsigned int, index_t > ); register_attribute_type< float, Serializer >( context, "float" ); register_attribute_type< double, Serializer >( context, "double" ); + + // Other types or aliases register_attribute_type< local_index_t, Serializer >( context, "local_index_t" ); register_attribute_type< index_t, Serializer >( @@ -86,6 +98,7 @@ namespace geode register_attribute_type< uuid, Serializer >( context, "uuid" ); register_attribute_type< std::string, Serializer >( context, "std::string" ); + register_attribute_type_for_all_containers< Serializer, double >( context, "double" ); register_attribute_type_for_all_containers< Serializer, index_t >(