Skip to content

Commit c09ecbd

Browse files
committed
Deduplicate enum and input types in schema namespace
1 parent e5029b2 commit c09ecbd

File tree

12 files changed

+247
-194
lines changed

12 files changed

+247
-194
lines changed

samples/client/benchmark/BenchmarkClient.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ const peg::ast& GetRequestObject() noexcept
5858

5959
} // namespace benchmark
6060

61+
using namespace benchmark;
62+
6163
template <>
6264
query::Query::Response::appointments_AppointmentConnection::pageInfo_PageInfo ModifiedResponse<query::Query::Response::appointments_AppointmentConnection::pageInfo_PageInfo>::parse(response::Value&& response)
6365
{

samples/client/multiple/MultipleQueriesClient.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,17 @@ const peg::ast& GetRequestObject() noexcept
107107
return s_request;
108108
}
109109

110+
static const std::array<std::string_view, 4> s_namesTaskState = {
111+
"New"sv,
112+
"Started"sv,
113+
"Complete"sv,
114+
"Unassigned"sv,
115+
};
116+
110117
} // namespace multiple
111118

119+
using namespace multiple;
120+
112121
template <>
113122
query::Appointments::Response::appointments_AppointmentConnection::edges_AppointmentEdge::node_Appointment ModifiedResponse<query::Appointments::Response::appointments_AppointmentConnection::edges_AppointmentEdge::node_Appointment>::parse(response::Value&& response)
114123
{
@@ -453,15 +462,8 @@ Response parseResponse(response::Value&& response)
453462

454463
} // namespace query::UnreadCounts
455464

456-
static const std::array<std::string_view, 4> s_namesTaskState = {
457-
"New"sv,
458-
"Started"sv,
459-
"Complete"sv,
460-
"Unassigned"sv,
461-
};
462-
463465
template <>
464-
query::Miscellaneous::TaskState ModifiedResponse<query::Miscellaneous::TaskState>::parse(response::Value&& value)
466+
TaskState ModifiedResponse<TaskState>::parse(response::Value&& value)
465467
{
466468
if (!value.maybe_enum())
467469
{
@@ -475,7 +477,7 @@ query::Miscellaneous::TaskState ModifiedResponse<query::Miscellaneous::TaskState
475477
throw std::logic_error { "not a valid TaskState value" };
476478
}
477479

478-
return static_cast<query::Miscellaneous::TaskState>(itr - s_namesTaskState.cbegin());
480+
return static_cast<TaskState>(itr - s_namesTaskState.cbegin());
479481
}
480482

481483
template <>

samples/client/multiple/MultipleQueriesClient.h

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ const std::string& GetRequestText() noexcept;
106106
// Return a pre-parsed, pre-validated request object.
107107
const peg::ast& GetRequestObject() noexcept;
108108

109+
enum class [[nodiscard]] TaskState
110+
{
111+
New,
112+
Started,
113+
Complete,
114+
Unassigned,
115+
};
116+
109117
} // namespace multiple
110118

111119
namespace query::Appointments {
@@ -222,13 +230,7 @@ using multiple::GetRequestObject;
222230
// Return the name of this operation in the shared request document.
223231
const std::string& GetOperationName() noexcept;
224232

225-
enum class [[nodiscard]] TaskState
226-
{
227-
New,
228-
Started,
229-
Complete,
230-
Unassigned,
231-
};
233+
using multiple::TaskState;
232234

233235
struct Response
234236
{

samples/client/mutate/MutateClient.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,25 @@ const peg::ast& GetRequestObject() noexcept
5151
return s_request;
5252
}
5353

54-
} // namespace mutate
55-
5654
static const std::array<std::string_view, 4> s_namesTaskState = {
5755
"New"sv,
5856
"Started"sv,
5957
"Complete"sv,
6058
"Unassigned"sv,
6159
};
6260

61+
} // namespace mutate
62+
63+
using namespace mutate;
64+
6365
template <>
64-
constexpr bool isInputType<mutation::CompleteTaskMutation::Variables::CompleteTaskInput>() noexcept
66+
constexpr bool isInputType<CompleteTaskInput>() noexcept
6567
{
6668
return true;
6769
}
6870

6971
template <>
70-
response::Value ModifiedVariable<mutation::CompleteTaskMutation::TaskState>::serialize(mutation::CompleteTaskMutation::TaskState&& value)
72+
response::Value ModifiedVariable<TaskState>::serialize(TaskState&& value)
7173
{
7274
response::Value result { response::Type::EnumValue };
7375

@@ -77,20 +79,20 @@ response::Value ModifiedVariable<mutation::CompleteTaskMutation::TaskState>::ser
7779
}
7880

7981
template <>
80-
response::Value ModifiedVariable<mutation::CompleteTaskMutation::Variables::CompleteTaskInput>::serialize(mutation::CompleteTaskMutation::Variables::CompleteTaskInput&& inputValue)
82+
response::Value ModifiedVariable<CompleteTaskInput>::serialize(CompleteTaskInput&& inputValue)
8183
{
8284
response::Value result { response::Type::Map };
8385

8486
result.emplace_back(R"js(id)js"s, ModifiedVariable<response::IdType>::serialize(std::move(inputValue.id)));
85-
result.emplace_back(R"js(testTaskState)js"s, ModifiedVariable<mutation::CompleteTaskMutation::TaskState>::serialize<TypeModifier::Nullable>(std::move(inputValue.testTaskState)));
87+
result.emplace_back(R"js(testTaskState)js"s, ModifiedVariable<TaskState>::serialize<TypeModifier::Nullable>(std::move(inputValue.testTaskState)));
8688
result.emplace_back(R"js(isComplete)js"s, ModifiedVariable<bool>::serialize<TypeModifier::Nullable>(std::move(inputValue.isComplete)));
8789
result.emplace_back(R"js(clientMutationId)js"s, ModifiedVariable<std::string>::serialize<TypeModifier::Nullable>(std::move(inputValue.clientMutationId)));
8890

8991
return result;
9092
}
9193

9294
template <>
93-
mutation::CompleteTaskMutation::TaskState ModifiedResponse<mutation::CompleteTaskMutation::TaskState>::parse(response::Value&& value)
95+
TaskState ModifiedResponse<TaskState>::parse(response::Value&& value)
9496
{
9597
if (!value.maybe_enum())
9698
{
@@ -104,7 +106,7 @@ mutation::CompleteTaskMutation::TaskState ModifiedResponse<mutation::CompleteTas
104106
throw std::logic_error { "not a valid TaskState value" };
105107
}
106108

107-
return static_cast<mutation::CompleteTaskMutation::TaskState>(itr - s_namesTaskState.cbegin());
109+
return static_cast<TaskState>(itr - s_namesTaskState.cbegin());
108110
}
109111

110112
template <>
@@ -179,7 +181,7 @@ response::Value serializeVariables(Variables&& variables)
179181
{
180182
response::Value result { response::Type::Map };
181183

182-
result.emplace_back(R"js(input)js"s, ModifiedVariable<Variables::CompleteTaskInput>::serialize<TypeModifier::Nullable>(std::move(variables.input)));
184+
result.emplace_back(R"js(input)js"s, ModifiedVariable<CompleteTaskInput>::serialize<TypeModifier::Nullable>(std::move(variables.input)));
183185
result.emplace_back(R"js(skipClientMutationId)js"s, ModifiedVariable<bool>::serialize(std::move(variables.skipClientMutationId)));
184186

185187
return result;

samples/client/mutate/MutateClient.h

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,22 @@ const std::string& GetRequestText() noexcept;
5050
// Return a pre-parsed, pre-validated request object.
5151
const peg::ast& GetRequestObject() noexcept;
5252

53+
enum class [[nodiscard]] TaskState
54+
{
55+
New,
56+
Started,
57+
Complete,
58+
Unassigned,
59+
};
60+
61+
struct CompleteTaskInput
62+
{
63+
response::IdType id {};
64+
std::optional<TaskState> testTaskState {};
65+
std::optional<bool> isComplete {};
66+
std::optional<std::string> clientMutationId {};
67+
};
68+
5369
} // namespace mutate
5470

5571
namespace mutation::CompleteTaskMutation {
@@ -60,24 +76,12 @@ using mutate::GetRequestObject;
6076
// Return the name of this operation in the shared request document.
6177
const std::string& GetOperationName() noexcept;
6278

63-
enum class [[nodiscard]] TaskState
64-
{
65-
New,
66-
Started,
67-
Complete,
68-
Unassigned,
69-
};
79+
using mutate::TaskState;
80+
81+
using mutate::CompleteTaskInput;
7082

7183
struct Variables
7284
{
73-
struct CompleteTaskInput
74-
{
75-
response::IdType id {};
76-
std::optional<TaskState> testTaskState {};
77-
std::optional<bool> isComplete {};
78-
std::optional<std::string> clientMutationId {};
79-
};
80-
8185
std::unique_ptr<CompleteTaskInput> input {};
8286
bool skipClientMutationId {};
8387
};

samples/client/nestedinput/NestedInputClient.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,32 +47,34 @@ const peg::ast& GetRequestObject() noexcept
4747

4848
} // namespace nestedinput
4949

50+
using namespace nestedinput;
51+
5052
template <>
51-
constexpr bool isInputType<query::testQuery::Variables::InputA>() noexcept
53+
constexpr bool isInputType<InputA>() noexcept
5254
{
5355
return true;
5456
}
5557

5658
template <>
57-
constexpr bool isInputType<query::testQuery::Variables::InputB>() noexcept
59+
constexpr bool isInputType<InputB>() noexcept
5860
{
5961
return true;
6062
}
6163

6264
template <>
63-
constexpr bool isInputType<query::testQuery::Variables::InputABCD>() noexcept
65+
constexpr bool isInputType<InputABCD>() noexcept
6466
{
6567
return true;
6668
}
6769

6870
template <>
69-
constexpr bool isInputType<query::testQuery::Variables::InputBC>() noexcept
71+
constexpr bool isInputType<InputBC>() noexcept
7072
{
7173
return true;
7274
}
7375

7476
template <>
75-
response::Value ModifiedVariable<query::testQuery::Variables::InputA>::serialize(query::testQuery::Variables::InputA&& inputValue)
77+
response::Value ModifiedVariable<InputA>::serialize(InputA&& inputValue)
7678
{
7779
response::Value result { response::Type::Map };
7880

@@ -82,7 +84,7 @@ response::Value ModifiedVariable<query::testQuery::Variables::InputA>::serialize
8284
}
8385

8486
template <>
85-
response::Value ModifiedVariable<query::testQuery::Variables::InputB>::serialize(query::testQuery::Variables::InputB&& inputValue)
87+
response::Value ModifiedVariable<InputB>::serialize(InputB&& inputValue)
8688
{
8789
response::Value result { response::Type::Map };
8890

@@ -92,25 +94,25 @@ response::Value ModifiedVariable<query::testQuery::Variables::InputB>::serialize
9294
}
9395

9496
template <>
95-
response::Value ModifiedVariable<query::testQuery::Variables::InputABCD>::serialize(query::testQuery::Variables::InputABCD&& inputValue)
97+
response::Value ModifiedVariable<InputABCD>::serialize(InputABCD&& inputValue)
9698
{
9799
response::Value result { response::Type::Map };
98100

99101
result.emplace_back(R"js(d)js"s, ModifiedVariable<std::string>::serialize(std::move(inputValue.d)));
100-
result.emplace_back(R"js(a)js"s, ModifiedVariable<query::testQuery::Variables::InputA>::serialize(std::move(inputValue.a)));
101-
result.emplace_back(R"js(b)js"s, ModifiedVariable<query::testQuery::Variables::InputB>::serialize(std::move(inputValue.b)));
102-
result.emplace_back(R"js(bc)js"s, ModifiedVariable<query::testQuery::Variables::InputBC>::serialize<TypeModifier::List>(std::move(inputValue.bc)));
102+
result.emplace_back(R"js(a)js"s, ModifiedVariable<InputA>::serialize(std::move(inputValue.a)));
103+
result.emplace_back(R"js(b)js"s, ModifiedVariable<InputB>::serialize(std::move(inputValue.b)));
104+
result.emplace_back(R"js(bc)js"s, ModifiedVariable<InputBC>::serialize<TypeModifier::List>(std::move(inputValue.bc)));
103105

104106
return result;
105107
}
106108

107109
template <>
108-
response::Value ModifiedVariable<query::testQuery::Variables::InputBC>::serialize(query::testQuery::Variables::InputBC&& inputValue)
110+
response::Value ModifiedVariable<InputBC>::serialize(InputBC&& inputValue)
109111
{
110112
response::Value result { response::Type::Map };
111113

112114
result.emplace_back(R"js(c)js"s, ModifiedVariable<response::IdType>::serialize(std::move(inputValue.c)));
113-
result.emplace_back(R"js(b)js"s, ModifiedVariable<query::testQuery::Variables::InputB>::serialize(std::move(inputValue.b)));
115+
result.emplace_back(R"js(b)js"s, ModifiedVariable<InputB>::serialize(std::move(inputValue.b)));
114116

115117
return result;
116118
}
@@ -172,7 +174,7 @@ response::Value serializeVariables(Variables&& variables)
172174
{
173175
response::Value result { response::Type::Map };
174176

175-
result.emplace_back(R"js(stream)js"s, ModifiedVariable<Variables::InputABCD>::serialize(std::move(variables.stream)));
177+
result.emplace_back(R"js(stream)js"s, ModifiedVariable<InputABCD>::serialize(std::move(variables.stream)));
176178

177179
return result;
178180
}

samples/client/nestedinput/NestedInputClient.h

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,32 @@ const std::string& GetRequestText() noexcept;
4444
// Return a pre-parsed, pre-validated request object.
4545
const peg::ast& GetRequestObject() noexcept;
4646

47+
struct InputA
48+
{
49+
bool a {};
50+
};
51+
52+
struct InputB
53+
{
54+
double b {};
55+
};
56+
57+
struct InputBC;
58+
59+
struct InputABCD
60+
{
61+
std::string d {};
62+
InputA a {};
63+
InputB b {};
64+
std::vector<InputBC> bc {};
65+
};
66+
67+
struct InputBC
68+
{
69+
response::IdType c {};
70+
InputB b {};
71+
};
72+
4773
} // namespace nestedinput
4874

4975
namespace query::testQuery {
@@ -54,34 +80,13 @@ using nestedinput::GetRequestObject;
5480
// Return the name of this operation in the shared request document.
5581
const std::string& GetOperationName() noexcept;
5682

83+
using nestedinput::InputA;
84+
using nestedinput::InputB;
85+
using nestedinput::InputABCD;
86+
using nestedinput::InputBC;
87+
5788
struct Variables
5889
{
59-
struct InputA
60-
{
61-
bool a {};
62-
};
63-
64-
struct InputB
65-
{
66-
double b {};
67-
};
68-
69-
struct InputBC;
70-
71-
struct InputABCD
72-
{
73-
std::string d {};
74-
InputA a {};
75-
InputB b {};
76-
std::vector<InputBC> bc {};
77-
};
78-
79-
struct InputBC
80-
{
81-
response::IdType c {};
82-
InputB b {};
83-
};
84-
8590
InputABCD stream {};
8691
};
8792

0 commit comments

Comments
 (0)