- RTTI properties for types for iterators, indexing, and mapping

This commit is contained in:
2025-11-30 20:58:56 -05:00
parent 6f09c3f7fe
commit 0b76b06a1b
7 changed files with 236 additions and 9 deletions

View File

@@ -56,11 +56,33 @@ inline void fennec_test_rtti() {
fennec_test_run(string(detail::type_name<int>()), string("int"));
fennec_test_run(type::get<int>(), type::get<signed int>());
fennec_test_spacer(1);
fennec_test_run(type::get<rtti_test_sub>().name(), string(detail::type_name<rtti_test_sub>()));
fennec_test_run(type::get<rtti_test_sub>().supertypes()[0].name(), string(detail::type_name<rtti_test_base>()));
fennec_test_run(type::get<rtti_test_base>().subtypes()[0].name(), string(detail::type_name<rtti_test_sub>()));
fennec_test_run(type::get<dynarray<int>>().is_iterable(), true);
fennec_test_spacer(1);
fennec_test_run(type::get<int>().is_complete(), true);
fennec_test_run(type::get<int>().is_iterable(), false);
fennec_test_run(type::get<int>().is_indexable(), false);
fennec_test_run(type::get<int>().is_mappable(), false);
fennec_test_spacer(1);
fennec_test_run(type::get<dynarray<int>>().is_complete(), true);
fennec_test_run(type::get<dynarray<int>>().is_iterable(), true);
fennec_test_run(type::get<dynarray<int>>().is_indexable(), true);
fennec_test_run(type::get<dynarray<int>>().is_mappable(), false);
fennec_test_spacer(1);
fennec_test_run((type::get<map<string, string>>().is_complete()), true);
fennec_test_run((type::get<map<string, string>>().is_iterable()), true);
fennec_test_run((type::get<map<string, string>>().is_indexable()), true);
fennec_test_run((type::get<map<string, string>>().is_mappable()), true);
fennec_test_run((type::get<map<string, string>>().key_type()), type::get<string>());
}