Skip to content

Commit d6c7aef

Browse files
authored
Merge pull request #174 from wravery/next
More progress on 4.0 tasks
2 parents f6b09ee + 5b88b3e commit d6c7aef

File tree

173 files changed

+1784
-1694
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+1784
-1694
lines changed

cmake/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@ write_basic_package_version_file(${PROJECT_NAME}-config-version.cmake COMPATIBIL
1010
install(FILES
1111
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-config.cmake
1212
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
13+
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-functions.cmake
14+
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-update-schema-files.cmake
15+
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}-update-client-files.cmake
1316
DESTINATION ${GRAPHQL_INSTALL_CMAKE_DIR}/${PROJECT_NAME})

cmake/cppgraphqlgen-config.cmake

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
cppgraphqlgen
66
-------------
77
8-
The following import targets are created
8+
The following import targets are created:
99
1010
::
1111
@@ -15,8 +15,20 @@ The following import targets are created
1515
cppgraphqlgen::graphqlintrospection
1616
cppgraphqlgen::graphqljson
1717
cppgraphqlgen::schemagen
18+
cppgraphqlgen::clientgen
19+
20+
The following functions are defined to help with code generation and build targets:
21+
22+
::
23+
24+
update_graphql_schema_files
25+
add_graphql_schema_target
26+
add_graphql_schema_no_introspection_target
27+
update_graphql_client_files
28+
add_graphql_client_target
1829
#]=======================================================================]
1930

2031
include(CMakeFindDependencyMacro)
2132
find_package(Threads REQUIRED)
2233
include("${CMAKE_CURRENT_LIST_DIR}/cppgraphqlgen-targets.cmake")
34+
include("${CMAKE_CURRENT_LIST_DIR}/cppgraphqlgen-functions.cmake")

cmake/cppgraphqlgen-functions.cmake

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
get_filename_component(GRAPHQL_UPDATE_SCHEMA_FILES_SCRIPT
5+
"${CMAKE_CURRENT_LIST_DIR}/cppgraphqlgen-update-schema-files.cmake"
6+
ABSOLUTE)
7+
8+
get_filename_component(GRAPHQL_UPDATE_CLIENT_FILES_SCRIPT
9+
"${CMAKE_CURRENT_LIST_DIR}/cppgraphqlgen-update-client-files.cmake"
10+
ABSOLUTE)
11+
12+
function(update_graphql_schema_files SCHEMA_TARGET SCHEMA_GRAPHQL SCHEMA_PREFIX SCHEMA_NAMESPACE)
13+
set_property(DIRECTORY APPEND
14+
PROPERTY CMAKE_CONFIGURE_DEPENDS ${SCHEMA_TARGET}_schema_files)
15+
16+
# Collect optional arguments
17+
set(ADDITIONAL_SCHEMAGEN_ARGS "")
18+
if(ARGC GREATER 4)
19+
math(EXPR LAST_ARG "${ARGC} - 1")
20+
foreach(ARGN RANGE 4 ${LAST_ARG})
21+
set(NEXT_ARG "${ARGV${ARGN}}")
22+
list(APPEND ADDITIONAL_SCHEMAGEN_ARGS "${NEXT_ARG}")
23+
endforeach()
24+
endif()
25+
26+
add_custom_command(
27+
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_TARGET}_schema_files
28+
COMMAND
29+
${CMAKE_COMMAND} "-DSCHEMA_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
30+
"-DSCHEMA_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}"
31+
"-DSCHEMAGEN_PROGRAM=$<TARGET_FILE:cppgraphqlgen::schemagen>"
32+
"-DSCHEMA_TARGET=${SCHEMA_TARGET}" "-DSCHEMA_GRAPHQL=${SCHEMA_GRAPHQL}"
33+
"-DSCHEMA_PREFIX=${SCHEMA_PREFIX}" "-DSCHEMA_NAMESPACE=${SCHEMA_NAMESPACE}"
34+
"-DADDITIONAL_SCHEMAGEN_ARGS=${ADDITIONAL_SCHEMAGEN_ARGS}"
35+
-P ${GRAPHQL_UPDATE_SCHEMA_FILES_SCRIPT}
36+
DEPENDS ${SCHEMA_GRAPHQL} ${GRAPHQL_UPDATE_SCHEMA_FILES_SCRIPT}
37+
COMMENT "Generating ${SCHEMA_TARGET} GraphQL schema"
38+
VERBATIM)
39+
endfunction()
40+
41+
function(add_graphql_schema_target SCHEMA_TARGET)
42+
add_custom_target(${SCHEMA_TARGET}_update_schema ALL
43+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_TARGET}_schema_files)
44+
45+
file(STRINGS ${SCHEMA_TARGET}_schema_files SCHEMA_FILES)
46+
add_library(${SCHEMA_TARGET}_schema STATIC ${SCHEMA_FILES})
47+
add_dependencies(${SCHEMA_TARGET}_schema ${SCHEMA_TARGET}_update_schema)
48+
target_include_directories(${SCHEMA_TARGET}_schema PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
49+
target_link_libraries(${SCHEMA_TARGET}_schema PUBLIC cppgraphqlgen::graphqlintrospection)
50+
endfunction()
51+
52+
function(add_graphql_schema_no_introspection_target SCHEMA_NO_INTROSPECTION_TARGET)
53+
add_custom_target(${SCHEMA_NO_INTROSPECTION_TARGET}_update_schema ALL
54+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NO_INTROSPECTION_TARGET}_schema_files)
55+
56+
file(STRINGS ${SCHEMA_NO_INTROSPECTION_TARGET}_schema_files SCHEMA_FILES)
57+
add_library(${SCHEMA_NO_INTROSPECTION_TARGET}_schema STATIC ${SCHEMA_FILES})
58+
add_dependencies(${SCHEMA_NO_INTROSPECTION_TARGET}_schema ${SCHEMA_NO_INTROSPECTION_TARGET}_update_schema)
59+
target_include_directories(${SCHEMA_NO_INTROSPECTION_TARGET}_schema PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
60+
target_link_libraries(${SCHEMA_NO_INTROSPECTION_TARGET}_schema PUBLIC cppgraphqlgen::graphqlservice)
61+
endfunction()
62+
63+
function(update_graphql_client_files CLIENT_TARGET SCHEMA_GRAPHQL REQUEST_GRAPHQL CLIENT_PREFIX CLIENT_NAMESPACE)
64+
set_property(DIRECTORY APPEND
65+
PROPERTY CMAKE_CONFIGURE_DEPENDS ${CLIENT_TARGET}_client_files)
66+
67+
# Collect optional arguments
68+
set(ADDITIONAL_CLIENTGEN_ARGS "")
69+
if(ARGC GREATER 5)
70+
math(EXPR LAST_ARG "${ARGC} - 1")
71+
foreach(ARGN RANGE 5 ${LAST_ARG})
72+
set(NEXT_ARG "${ARGV${ARGN}}")
73+
list(APPEND ADDITIONAL_CLIENTGEN_ARGS "${NEXT_ARG}")
74+
endforeach()
75+
endif()
76+
77+
add_custom_command(
78+
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${CLIENT_TARGET}_client_files
79+
COMMAND
80+
${CMAKE_COMMAND} "-DCLIENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
81+
"-DCLIENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}"
82+
"-DCLIENTGEN_PROGRAM=$<TARGET_FILE:cppgraphqlgen::clientgen>" "-DCLIENT_TARGET=${CLIENT_TARGET}"
83+
"-DSCHEMA_GRAPHQL=${SCHEMA_GRAPHQL}" "-DREQUEST_GRAPHQL=${REQUEST_GRAPHQL}"
84+
"-DCLIENT_PREFIX=${CLIENT_PREFIX}" "-DCLIENT_NAMESPACE=${CLIENT_NAMESPACE}"
85+
"-DADDITIONAL_CLIENTGEN_ARGS=${ADDITIONAL_CLIENTGEN_ARGS}"
86+
-P ${GRAPHQL_UPDATE_CLIENT_FILES_SCRIPT}
87+
DEPENDS ${SCHEMA_GRAPHQL} ${REQUEST_GRAPHQL} ${GRAPHQL_UPDATE_CLIENT_FILES_SCRIPT}
88+
COMMENT "Generating ${CLIENT_TARGET} client"
89+
VERBATIM)
90+
endfunction()
91+
92+
function(add_graphql_client_target CLIENT_TARGET)
93+
add_custom_target(${CLIENT_TARGET}_update_client ALL
94+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${CLIENT_TARGET}_client_files)
95+
96+
file(STRINGS ${CLIENT_TARGET}_client_files CLIENT_FILES)
97+
add_library(${CLIENT_TARGET}_client STATIC ${CLIENT_FILES})
98+
add_dependencies(${CLIENT_TARGET}_client ${CLIENT_TARGET}_update_client)
99+
target_include_directories(${CLIENT_TARGET}_client PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
100+
target_link_libraries(${CLIENT_TARGET}_client PUBLIC cppgraphqlgen::graphqlclient)
101+
endfunction()
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
# Normalize the filesystem paths
5+
get_filename_component(CLIENT_SOURCE_DIR ${CLIENT_SOURCE_DIR} ABSOLUTE)
6+
get_filename_component(CLIENT_BINARY_DIR ${CLIENT_BINARY_DIR} ABSOLUTE)
7+
get_filename_component(CLIENTGEN_PROGRAM ${CLIENTGEN_PROGRAM} ABSOLUTE)
8+
get_filename_component(SCHEMA_GRAPHQL "${CLIENT_SOURCE_DIR}/${SCHEMA_GRAPHQL}" ABSOLUTE)
9+
get_filename_component(REQUEST_GRAPHQL "${CLIENT_SOURCE_DIR}/${REQUEST_GRAPHQL}" ABSOLUTE)
10+
11+
file(MAKE_DIRECTORY ${CLIENT_BINARY_DIR})
12+
13+
# Cleanup all of the stale files in the binary directory
14+
file(GLOB PREVIOUS_FILES ${CLIENT_BINARY_DIR}/*.h ${CLIENT_BINARY_DIR}/*.cpp
15+
${CLIENT_BINARY_DIR}/${CLIENT_TARGET}_client_files)
16+
foreach(PREVIOUS_FILE ${PREVIOUS_FILES})
17+
file(REMOVE ${PREVIOUS_FILE})
18+
endforeach()
19+
20+
set(CLIENTGEN_ARGS "--schema=${SCHEMA_GRAPHQL}" "--request=${REQUEST_GRAPHQL}" "--prefix=${CLIENT_PREFIX}" "--namespace=${CLIENT_NAMESPACE}")
21+
foreach(CLIENTGEN_ARG ${ADDITIONAL_CLIENTGEN_ARGS})
22+
list(APPEND CLIENTGEN_ARGS ${CLIENTGEN_ARG})
23+
endforeach()
24+
25+
# Regenerate the sources in the binary directory
26+
execute_process(
27+
COMMAND ${CLIENTGEN_PROGRAM} ${CLIENTGEN_ARGS}
28+
OUTPUT_FILE ${CLIENT_TARGET}_client_files
29+
WORKING_DIRECTORY ${CLIENT_BINARY_DIR})
30+
31+
# Get the up-to-date list of files in the binary directory
32+
set(FILE_NAMES "")
33+
file(GLOB NEW_FILES ${CLIENT_BINARY_DIR}/*.h ${CLIENT_BINARY_DIR}/*.cpp)
34+
foreach(NEW_FILE ${NEW_FILES})
35+
get_filename_component(NEW_FILE ${NEW_FILE} NAME)
36+
list(APPEND FILE_NAMES "${NEW_FILE}")
37+
endforeach()
38+
39+
# Don't update the files in the source directory if no files were generated in the binary directory.
40+
if(NOT FILE_NAMES)
41+
message(FATAL_ERROR "Schema generation failed!")
42+
endif()
43+
44+
# Remove stale files in the source directory
45+
cmake_policy(SET CMP0057 NEW)
46+
file(GLOB OLD_FILES ${CLIENT_SOURCE_DIR}/*.h ${CLIENT_SOURCE_DIR}/*.cpp)
47+
foreach(OLD_FILE ${OLD_FILES})
48+
get_filename_component(OLD_FILE ${OLD_FILE} NAME)
49+
if(NOT OLD_FILE IN_LIST FILE_NAMES)
50+
file(REMOVE "${CLIENT_SOURCE_DIR}/${OLD_FILE}")
51+
endif()
52+
endforeach()
53+
54+
# Copy new and modified files from the binary directory to the source directory
55+
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
56+
${CLIENT_BINARY_DIR}/${CLIENT_TARGET}_client_files
57+
${NEW_FILES}
58+
${CLIENT_SOURCE_DIR})
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
# Normalize the filesystem paths
5+
get_filename_component(SCHEMA_SOURCE_DIR ${SCHEMA_SOURCE_DIR} ABSOLUTE)
6+
get_filename_component(SCHEMA_BINARY_DIR ${SCHEMA_BINARY_DIR} ABSOLUTE)
7+
get_filename_component(SCHEMAGEN_PROGRAM ${SCHEMAGEN_PROGRAM} ABSOLUTE)
8+
get_filename_component(SCHEMA_GRAPHQL "${SCHEMA_SOURCE_DIR}/${SCHEMA_GRAPHQL}" ABSOLUTE)
9+
10+
file(MAKE_DIRECTORY ${SCHEMA_BINARY_DIR})
11+
12+
# Cleanup all of the stale files in the binary directory
13+
file(GLOB PREVIOUS_FILES ${SCHEMA_BINARY_DIR}/*.h ${SCHEMA_BINARY_DIR}/*.cpp
14+
${SCHEMA_BINARY_DIR}/${SCHEMA_TARGET}_schema_files)
15+
foreach(PREVIOUS_FILE ${PREVIOUS_FILES})
16+
file(REMOVE ${PREVIOUS_FILE})
17+
endforeach()
18+
19+
set(SCHEMAGEN_ARGS "--schema=${SCHEMA_GRAPHQL}" "--prefix=${SCHEMA_PREFIX}" "--namespace=${SCHEMA_NAMESPACE}")
20+
foreach(SCHEMAGEN_ARG ${ADDITIONAL_SCHEMAGEN_ARGS})
21+
list(APPEND SCHEMAGEN_ARGS ${SCHEMAGEN_ARG})
22+
endforeach()
23+
24+
# Regenerate the sources in the binary directory
25+
execute_process(
26+
COMMAND ${SCHEMAGEN_PROGRAM} ${SCHEMAGEN_ARGS}
27+
OUTPUT_FILE ${SCHEMA_TARGET}_schema_files
28+
WORKING_DIRECTORY ${SCHEMA_BINARY_DIR})
29+
30+
# Get the up-to-date list of files in the binary directory
31+
set(FILE_NAMES "")
32+
file(GLOB NEW_FILES ${SCHEMA_BINARY_DIR}/*.h ${SCHEMA_BINARY_DIR}/*.cpp)
33+
foreach(NEW_FILE ${NEW_FILES})
34+
get_filename_component(NEW_FILE ${NEW_FILE} NAME)
35+
list(APPEND FILE_NAMES "${NEW_FILE}")
36+
endforeach()
37+
38+
# Don't update the files in the source directory if no files were generated in the binary directory.
39+
if(NOT FILE_NAMES)
40+
message(FATAL_ERROR "Schema generation failed!")
41+
endif()
42+
43+
# Remove stale files in the source directory
44+
cmake_policy(SET CMP0057 NEW)
45+
file(GLOB OLD_FILES ${SCHEMA_SOURCE_DIR}/*.h ${SCHEMA_SOURCE_DIR}/*.cpp)
46+
foreach(OLD_FILE ${OLD_FILES})
47+
get_filename_component(OLD_FILE ${OLD_FILE} NAME)
48+
if(NOT OLD_FILE IN_LIST FILE_NAMES)
49+
file(REMOVE "${SCHEMA_SOURCE_DIR}/${OLD_FILE}")
50+
endif()
51+
endforeach()
52+
53+
# Copy new and modified files from the binary directory to the source directory
54+
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
55+
${SCHEMA_BINARY_DIR}/${SCHEMA_TARGET}_schema_files
56+
${NEW_FILES}
57+
${SCHEMA_SOURCE_DIR})

include/SchemaGenerator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ struct GeneratorOptions
2020
{
2121
const std::optional<GeneratorPaths> paths;
2222
const bool verbose = false;
23-
const bool separateFiles = false;
24-
const bool noStubs = false;
23+
const bool stubs = false;
24+
const bool mergeFiles = false;
2525
const bool noIntrospection = false;
2626
};
2727

include/Validation.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,16 @@ struct ValidateArgumentMap
7979
internal::string_view_map<ValidateArgumentValuePtr> values;
8080
};
8181

82-
using ValidateArgumentVariant = std::variant<ValidateArgumentVariable, response::IntType,
83-
response::FloatType, std::string_view, response::BooleanType, ValidateArgumentEnumValue,
84-
ValidateArgumentList, ValidateArgumentMap>;
82+
using ValidateArgumentVariant = std::variant<ValidateArgumentVariable, int, double,
83+
std::string_view, bool, ValidateArgumentEnumValue, ValidateArgumentList, ValidateArgumentMap>;
8584

8685
struct ValidateArgumentValue
8786
{
8887
ValidateArgumentValue(ValidateArgumentVariable&& value);
89-
ValidateArgumentValue(response::IntType value);
90-
ValidateArgumentValue(response::FloatType value);
88+
ValidateArgumentValue(int value);
89+
ValidateArgumentValue(double value);
9190
ValidateArgumentValue(std::string_view value);
92-
ValidateArgumentValue(response::BooleanType value);
91+
ValidateArgumentValue(bool value);
9392
ValidateArgumentValue(ValidateArgumentEnumValue&& value);
9493
ValidateArgumentValue(ValidateArgumentList&& value);
9594
ValidateArgumentValue(ValidateArgumentMap&& value);

include/graphqlservice/GraphQLClient.h

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ namespace graphql::client {
3434
// Errors may specify the line number and column number where the error occurred.
3535
struct ErrorLocation
3636
{
37-
response::IntType line {};
38-
response::IntType column {};
37+
int line {};
38+
int column {};
3939
};
4040

4141
// Errors may specify a path to the field which triggered the error. The path consists of
4242
// field names and the indices of elements in a list.
43-
using ErrorPathSegment = std::variant<response::StringType, response::IntType>;
43+
using ErrorPathSegment = std::variant<std::string, int>;
4444

4545
// Error returned from the service.
4646
struct Error
@@ -141,27 +141,23 @@ struct ModifiedVariable
141141
// Convenient type aliases for testing, generated code won't actually use these. These are also
142142
// the specializations which are implemented in the GraphQLClient library, other specializations
143143
// for input types should be generated in schemagen.
144-
using IntVariable = ModifiedVariable<response::IntType>;
145-
using FloatVariable = ModifiedVariable<response::FloatType>;
146-
using StringVariable = ModifiedVariable<response::StringType>;
147-
using BooleanVariable = ModifiedVariable<response::BooleanType>;
144+
using IntVariable = ModifiedVariable<int>;
145+
using FloatVariable = ModifiedVariable<double>;
146+
using StringVariable = ModifiedVariable<std::string>;
147+
using BooleanVariable = ModifiedVariable<bool>;
148148
using IdVariable = ModifiedVariable<response::IdType>;
149149
using ScalarVariable = ModifiedVariable<response::Value>;
150150

151151
#ifdef GRAPHQL_DLLEXPORTS
152152
// Export all of the built-in converters
153153
template <>
154-
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<response::IntType>::serialize(
155-
response::IntType&& value);
154+
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<int>::serialize(int&& value);
156155
template <>
157-
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<response::FloatType>::serialize(
158-
response::FloatType&& value);
156+
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<double>::serialize(double&& value);
159157
template <>
160-
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<response::StringType>::serialize(
161-
response::StringType&& value);
158+
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<std::string>::serialize(std::string&& value);
162159
template <>
163-
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<response::BooleanType>::serialize(
164-
response::BooleanType&& value);
160+
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<bool>::serialize(bool&& value);
165161
template <>
166162
GRAPHQLCLIENT_EXPORT response::Value ModifiedVariable<response::IdType>::serialize(
167163
response::IdType&& value);
@@ -245,27 +241,23 @@ struct ModifiedResponse
245241
// Convenient type aliases for testing, generated code won't actually use these. These are also
246242
// the specializations which are implemented in the GraphQLClient library, other specializations
247243
// for output types should be generated in schemagen.
248-
using IntResponse = ModifiedResponse<response::IntType>;
249-
using FloatResponse = ModifiedResponse<response::FloatType>;
250-
using StringResponse = ModifiedResponse<response::StringType>;
251-
using BooleanResponse = ModifiedResponse<response::BooleanType>;
244+
using IntResponse = ModifiedResponse<int>;
245+
using FloatResponse = ModifiedResponse<double>;
246+
using StringResponse = ModifiedResponse<std::string>;
247+
using BooleanResponse = ModifiedResponse<bool>;
252248
using IdResponse = ModifiedResponse<response::IdType>;
253249
using ScalarResponse = ModifiedResponse<response::Value>;
254250

255251
#ifdef GRAPHQL_DLLEXPORTS
256252
// Export all of the built-in converters
257253
template <>
258-
GRAPHQLCLIENT_EXPORT response::IntType ModifiedResponse<response::IntType>::parse(
259-
response::Value response);
254+
GRAPHQLCLIENT_EXPORT int ModifiedResponse<int>::parse(response::Value response);
260255
template <>
261-
GRAPHQLCLIENT_EXPORT response::FloatType ModifiedResponse<response::FloatType>::parse(
262-
response::Value response);
256+
GRAPHQLCLIENT_EXPORT double ModifiedResponse<double>::parse(response::Value response);
263257
template <>
264-
GRAPHQLCLIENT_EXPORT response::StringType ModifiedResponse<response::StringType>::parse(
265-
response::Value response);
258+
GRAPHQLCLIENT_EXPORT std::string ModifiedResponse<std::string>::parse(response::Value response);
266259
template <>
267-
GRAPHQLCLIENT_EXPORT response::BooleanType ModifiedResponse<response::BooleanType>::parse(
268-
response::Value response);
260+
GRAPHQLCLIENT_EXPORT bool ModifiedResponse<bool>::parse(response::Value response);
269261
template <>
270262
GRAPHQLCLIENT_EXPORT response::IdType ModifiedResponse<response::IdType>::parse(
271263
response::Value response);

0 commit comments

Comments
 (0)