|
23 | 23 |
|
24 | 24 | #pragma once |
25 | 25 |
|
| 26 | +#include <type_traits> |
| 27 | + |
26 | 28 | #include <geode/basic/bitsery_archive.hpp> |
27 | 29 |
|
28 | 30 | #include <absl/container/inlined_vector.h> |
@@ -75,17 +77,28 @@ namespace geode |
75 | 77 | template < typename Serializer > |
76 | 78 | void register_basic_pcontext( PContext& context ) |
77 | 79 | { |
| 80 | + // Base types (skip aliases registered below...) |
78 | 81 | register_attribute_type< bool, Serializer >( context, "bool" ); |
| 82 | + register_attribute_type< signed char, Serializer >( |
| 83 | + context, "signed_char" ); |
| 84 | + static_assert( std::is_same_v< unsigned char, local_index_t > ); |
| 85 | + register_attribute_type< short, Serializer >( context, "short" ); |
| 86 | + register_attribute_type< unsigned short, Serializer >( |
| 87 | + context, "unsigned_short" ); |
79 | 88 | register_attribute_type< int, Serializer >( context, "int" ); |
| 89 | + static_assert( std::is_same_v< unsigned int, index_t > ); |
80 | 90 | register_attribute_type< float, Serializer >( context, "float" ); |
81 | 91 | register_attribute_type< double, Serializer >( context, "double" ); |
| 92 | + |
| 93 | + // Other types or aliases |
82 | 94 | register_attribute_type< local_index_t, Serializer >( |
83 | 95 | context, "local_index_t" ); |
84 | 96 | register_attribute_type< index_t, Serializer >( |
85 | 97 | context, "index_t" ); |
86 | 98 | register_attribute_type< uuid, Serializer >( context, "uuid" ); |
87 | 99 | register_attribute_type< std::string, Serializer >( |
88 | 100 | context, "std::string" ); |
| 101 | + |
89 | 102 | register_attribute_type_for_all_containers< Serializer, double >( |
90 | 103 | context, "double" ); |
91 | 104 | register_attribute_type_for_all_containers< Serializer, index_t >( |
|
0 commit comments