Skip to content

Commit 36efbc1

Browse files
Using latest changes to the-moisrex branch to prove reflection can work for documents as well.
1 parent f6502d4 commit 36efbc1

4 files changed

Lines changed: 13 additions & 9 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ include(cmake/CPM.cmake)
5353
CPMAddPackage(
5454
NAME simdjson
5555
GITHUB_REPOSITORY the-moisrex/simdjson-custom-types
56-
GIT_TAG master
56+
GIT_TAG builder_development_branch
5757
) # include simdjson
5858

5959
add_subdirectory(examples)

examples/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ add_compile_options(-Wall -Wextra -Weffc++ -Wsign-compare -Wshadow -Wwrite-strin
44
add_executable(example example.cpp)
55
target_link_libraries(example PRIVATE simdjson::serialization simdjson::simdjson)
66

7-
#add_executable(example2 example2.cpp)
8-
#target_link_libraries(example2 PRIVATE simdjson::serialization simdjson::simdjson)
7+
add_executable(example2 example2.cpp)
8+
target_link_libraries(example2 PRIVATE simdjson::serialization simdjson::simdjson)
99

1010
add_executable(example3 example3.cpp)
1111
target_link_libraries(example3 PRIVATE simdjson::serialization simdjson::simdjson)

examples/example2.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ concept PushableContainer =
4848
template <typename T>
4949
requires PushableContainer<T>
5050
simdjson_result<T>
51-
tag_invoke(deserialize_tag, std::type_identity<T>, ondemand::value &val) {
51+
tag_invoke(deserialize_tag, std::type_identity<T>, auto &val) {
5252
T vec;
5353
auto array_result = val.get_array();
5454
if (array_result.error()) return array_result.error();
@@ -91,7 +91,7 @@ tag_invoke(deserialize_tag, std::type_identity<T>, ondemand::value &val) {
9191
template <typename T>
9292
requires (json_builder::UserDefinedType<T> && ! PushableContainer<T>)
9393
simdjson_result<T>
94-
tag_invoke(deserialize_tag, std::type_identity<T>, ondemand::value &val) {
94+
tag_invoke(deserialize_tag, std::type_identity<T>, auto &val) {
9595
ondemand::object obj;
9696
auto error = val.get_object().get(obj);
9797
if (error) {
@@ -136,7 +136,11 @@ int main() {
136136
ondemand::document doc = parser.iterate(json_str);
137137

138138
MyStruct my_struct(doc);
139-
simdjson::json_builder::StringBuilder sb;
139+
std::cout << my_struct.id << std::endl;
140+
std::cout << my_struct.name << std::endl;
141+
std::cout << my_struct.values.size() << std::endl;
142+
143+
/* simdjson::json_builder::StringBuilder sb;
140144
simdjson::json_builder::fast_to_json_string(sb, my_struct);
141145
std::cout << sb.c_str() << std::endl;
142146
@@ -147,7 +151,7 @@ int main() {
147151
X s1 = X(doc);
148152
simdjson::json_builder::StringBuilder sb2;
149153
simdjson::json_builder::fast_to_json_string(sb2, s1);
150-
std::cout << sb2.c_str() << std::endl;
154+
std::cout << sb2.c_str() << std::endl;*/
151155

152156
return 0;
153157
}

examples/example3.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ concept PushableContainer =
3535
template <typename T>
3636
requires PushableContainer<T>
3737
simdjson_result<T>
38-
tag_invoke(deserialize_tag, std::type_identity<T>, ondemand::value &val) {
38+
tag_invoke(deserialize_tag, std::type_identity<T>, auto &val) {
3939
T vec;
4040
auto array_result = val.get_array();
4141
if (array_result.error()) return array_result.error();
@@ -78,7 +78,7 @@ tag_invoke(deserialize_tag, std::type_identity<T>, ondemand::value &val) {
7878
template <typename T>
7979
requires (json_builder::UserDefinedType<T> && ! PushableContainer<T>)
8080
simdjson_result<T>
81-
tag_invoke(deserialize_tag, std::type_identity<T>, ondemand::value &val) {
81+
tag_invoke(deserialize_tag, std::type_identity<T>, auto &val) {
8282
ondemand::object obj;
8383
auto error = val.get_object().get(obj);
8484
if (error) {

0 commit comments

Comments
 (0)