Skip to content

Commit 8df0e32

Browse files
committed
Scope static const inside methods
1 parent 98e3c40 commit 8df0e32

File tree

4 files changed

+103
-123
lines changed

4 files changed

+103
-123
lines changed

samples/client/multiple/MultipleQueriesClient.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -516,13 +516,6 @@ Response parseResponse(response::Value&& response)
516516

517517
} // namespace query::UnreadCounts
518518

519-
static const std::array<std::pair<std::string_view, TaskState>, 4> s_valuesTaskState = {
520-
std::make_pair(R"gql(New)gql"sv, TaskState::New),
521-
std::make_pair(R"gql(Started)gql"sv, TaskState::Started),
522-
std::make_pair(R"gql(Complete)gql"sv, TaskState::Complete),
523-
std::make_pair(R"gql(Unassigned)gql"sv, TaskState::Unassigned)
524-
};
525-
526519
template <>
527520
TaskState Response<TaskState>::parse(response::Value&& value)
528521
{
@@ -531,8 +524,15 @@ TaskState Response<TaskState>::parse(response::Value&& value)
531524
throw std::logic_error { R"ex(not a valid TaskState value)ex" };
532525
}
533526

527+
static const std::array<std::pair<std::string_view, TaskState>, 4> s_values = {
528+
std::make_pair(R"gql(New)gql"sv, TaskState::New),
529+
std::make_pair(R"gql(Started)gql"sv, TaskState::Started),
530+
std::make_pair(R"gql(Complete)gql"sv, TaskState::Complete),
531+
std::make_pair(R"gql(Unassigned)gql"sv, TaskState::Unassigned)
532+
};
533+
534534
const auto result = internal::sorted_map_lookup<internal::shorter_or_less>(
535-
s_valuesTaskState,
535+
s_values,
536536
std::string_view { value.get<std::string>() });
537537

538538
if (!result)
@@ -637,19 +637,19 @@ Response parseResponse(response::Value&& response)
637637

638638
} // namespace query::Miscellaneous
639639

640-
static const std::array<std::string_view, 4> s_namesTaskState = {
641-
R"gql(Unassigned)gql"sv,
642-
R"gql(New)gql"sv,
643-
R"gql(Started)gql"sv,
644-
R"gql(Complete)gql"sv
645-
};
646-
647640
template <>
648641
response::Value Variable<TaskState>::serialize(TaskState&& value)
649642
{
643+
static const std::array<std::string_view, 4> s_names = {
644+
R"gql(Unassigned)gql"sv,
645+
R"gql(New)gql"sv,
646+
R"gql(Started)gql"sv,
647+
R"gql(Complete)gql"sv
648+
};
649+
650650
response::Value result { response::Type::EnumValue };
651651

652-
result.set<std::string>(std::string { s_namesTaskState[static_cast<size_t>(value)] });
652+
result.set<std::string>(std::string { s_names[static_cast<size_t>(value)] });
653653

654654
return result;
655655
}

samples/client/mutate/MutateClient.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -105,19 +105,19 @@ CompleteTaskInput& CompleteTaskInput::operator=(CompleteTaskInput&& other) noexc
105105

106106
using namespace mutate;
107107

108-
static const std::array<std::string_view, 4> s_namesTaskState = {
109-
R"gql(Unassigned)gql"sv,
110-
R"gql(New)gql"sv,
111-
R"gql(Started)gql"sv,
112-
R"gql(Complete)gql"sv
113-
};
114-
115108
template <>
116109
response::Value Variable<TaskState>::serialize(TaskState&& value)
117110
{
111+
static const std::array<std::string_view, 4> s_names = {
112+
R"gql(Unassigned)gql"sv,
113+
R"gql(New)gql"sv,
114+
R"gql(Started)gql"sv,
115+
R"gql(Complete)gql"sv
116+
};
117+
118118
response::Value result { response::Type::EnumValue };
119119

120-
result.set<std::string>(std::string { s_namesTaskState[static_cast<size_t>(value)] });
120+
result.set<std::string>(std::string { s_names[static_cast<size_t>(value)] });
121121

122122
return result;
123123
}
@@ -135,13 +135,6 @@ response::Value Variable<CompleteTaskInput>::serialize(CompleteTaskInput&& input
135135
return result;
136136
}
137137

138-
static const std::array<std::pair<std::string_view, TaskState>, 4> s_valuesTaskState = {
139-
std::make_pair(R"gql(New)gql"sv, TaskState::New),
140-
std::make_pair(R"gql(Started)gql"sv, TaskState::Started),
141-
std::make_pair(R"gql(Complete)gql"sv, TaskState::Complete),
142-
std::make_pair(R"gql(Unassigned)gql"sv, TaskState::Unassigned)
143-
};
144-
145138
template <>
146139
TaskState Response<TaskState>::parse(response::Value&& value)
147140
{
@@ -150,8 +143,15 @@ TaskState Response<TaskState>::parse(response::Value&& value)
150143
throw std::logic_error { R"ex(not a valid TaskState value)ex" };
151144
}
152145

146+
static const std::array<std::pair<std::string_view, TaskState>, 4> s_values = {
147+
std::make_pair(R"gql(New)gql"sv, TaskState::New),
148+
std::make_pair(R"gql(Started)gql"sv, TaskState::Started),
149+
std::make_pair(R"gql(Complete)gql"sv, TaskState::Complete),
150+
std::make_pair(R"gql(Unassigned)gql"sv, TaskState::Unassigned)
151+
};
152+
153153
const auto result = internal::sorted_map_lookup<internal::shorter_or_less>(
154-
s_valuesTaskState,
154+
s_values,
155155
std::string_view { value.get<std::string>() });
156156

157157
if (!result)

samples/client/query/QueryClient.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,6 @@ const peg::ast& GetRequestObject() noexcept
106106

107107
using namespace query;
108108

109-
static const std::array<std::pair<std::string_view, TaskState>, 4> s_valuesTaskState = {
110-
std::make_pair(R"gql(New)gql"sv, TaskState::New),
111-
std::make_pair(R"gql(Started)gql"sv, TaskState::Started),
112-
std::make_pair(R"gql(Complete)gql"sv, TaskState::Complete),
113-
std::make_pair(R"gql(Unassigned)gql"sv, TaskState::Unassigned)
114-
};
115-
116109
template <>
117110
TaskState Response<TaskState>::parse(response::Value&& value)
118111
{
@@ -121,8 +114,15 @@ TaskState Response<TaskState>::parse(response::Value&& value)
121114
throw std::logic_error { R"ex(not a valid TaskState value)ex" };
122115
}
123116

117+
static const std::array<std::pair<std::string_view, TaskState>, 4> s_values = {
118+
std::make_pair(R"gql(New)gql"sv, TaskState::New),
119+
std::make_pair(R"gql(Started)gql"sv, TaskState::Started),
120+
std::make_pair(R"gql(Complete)gql"sv, TaskState::Complete),
121+
std::make_pair(R"gql(Unassigned)gql"sv, TaskState::Unassigned)
122+
};
123+
124124
const auto result = internal::sorted_map_lookup<internal::shorter_or_less>(
125-
s_valuesTaskState,
125+
s_values,
126126
std::string_view { value.get<std::string>() });
127127

128128
if (!result)

src/ClientGenerator.cpp

Lines changed: 63 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -741,10 +741,8 @@ using namespace )cpp"
741741

742742
pendingSeparator.add();
743743

744-
std::unordered_set<std::string_view> outputEnumNames;
745744
std::unordered_set<std::string_view> outputModifiedVariableEnum;
746745
std::unordered_set<std::string_view> outputModifiedVariableInput;
747-
std::unordered_set<std::string_view> outputEnumValues;
748746
std::unordered_set<std::string_view> outputModifiedResponseEnum;
749747

750748
for (const auto& operation : operations)
@@ -762,48 +760,39 @@ using namespace )cpp"
762760
continue;
763761
}
764762

765-
if (outputEnumNames.insert(cppType).second)
766-
{
767-
pendingSeparator.reset();
763+
pendingSeparator.reset();
768764

769-
const auto& enumValues = enumType->enumValues();
765+
const auto& enumValues = enumType->enumValues();
770766

771-
sourceFile << R"cpp(static const std::array<std::string_view, )cpp"
772-
<< enumValues.size() << R"cpp(> s_names)cpp" << cppType
773-
<< R"cpp( = {)cpp";
767+
sourceFile << R"cpp(template <>
768+
response::Value Variable<)cpp"
769+
<< cppType << R"cpp(>::serialize()cpp" << cppType << R"cpp(&& value)
770+
{
771+
static const std::array<std::string_view, )cpp"
772+
<< enumValues.size() << R"cpp(> s_names = {)cpp";
774773

775-
bool firstValue = true;
774+
bool firstValue = true;
776775

777-
for (const auto& enumValue : enumValues)
776+
for (const auto& enumValue : enumValues)
777+
{
778+
if (!firstValue)
778779
{
779-
if (!firstValue)
780-
{
781-
sourceFile << R"cpp(,)cpp";
782-
}
783-
784-
firstValue = false;
785-
sourceFile << R"cpp(
786-
R"gql()cpp" << enumValue->name()
787-
<< R"cpp()gql"sv)cpp";
788-
pendingSeparator.add();
780+
sourceFile << R"cpp(,)cpp";
789781
}
790782

791-
pendingSeparator.reset();
792-
sourceFile << R"cpp(};
793-
794-
)cpp";
783+
firstValue = false;
784+
sourceFile << R"cpp(
785+
R"gql()cpp" << enumValue->name()
786+
<< R"cpp()gql"sv)cpp";
787+
pendingSeparator.add();
795788
}
796789

797790
pendingSeparator.reset();
791+
sourceFile << R"cpp( };
798792
799-
sourceFile << R"cpp(template <>
800-
response::Value Variable<)cpp"
801-
<< cppType << R"cpp(>::serialize()cpp" << cppType << R"cpp(&& value)
802-
{
803793
response::Value result { response::Type::EnumValue };
804794
805-
result.set<std::string>(std::string { s_names)cpp"
806-
<< cppType << R"cpp([static_cast<size_t>(value)] });
795+
result.set<std::string>(std::string { s_names[static_cast<size_t>(value)] });
807796
808797
return result;
809798
}
@@ -862,58 +851,10 @@ response::Value Variable<)cpp"
862851
continue;
863852
}
864853

865-
if (outputEnumValues.insert(cppType).second)
866-
{
867-
pendingSeparator.reset();
868-
869-
const auto& enumValues = enumType->enumValues();
870-
871-
sourceFile << R"cpp(static const std::array<std::pair<std::string_view, )cpp"
872-
<< cppType << R"cpp(>, )cpp" << enumValues.size()
873-
<< R"cpp(> s_values)cpp" << cppType << R"cpp( = {)cpp";
874-
875-
std::vector<std::pair<std::string_view, std::string_view>> sortedValues(
876-
enumValues.size());
877-
878-
std::transform(enumValues.cbegin(),
879-
enumValues.cend(),
880-
sortedValues.begin(),
881-
[](const auto& value) noexcept {
882-
return std::make_pair(value->name(),
883-
SchemaLoader::getSafeCppName(value->name()));
884-
});
885-
std::sort(sortedValues.begin(),
886-
sortedValues.end(),
887-
[](const auto& lhs, const auto& rhs) noexcept {
888-
return internal::shorter_or_less {}(lhs.first, rhs.first);
889-
});
890-
891-
bool firstValue = true;
892-
893-
for (const auto& enumValue : sortedValues)
894-
{
895-
if (!firstValue)
896-
{
897-
sourceFile << R"cpp(,)cpp";
898-
}
899-
900-
firstValue = false;
901-
sourceFile << R"cpp(
902-
std::make_pair(R"gql()cpp" << enumValue.first
903-
<< R"cpp()gql"sv, )cpp" << cppType << R"cpp(::)cpp"
904-
<< enumValue.second << R"cpp())cpp";
905-
pendingSeparator.add();
906-
}
907-
908-
pendingSeparator.reset();
909-
sourceFile << R"cpp(};
910-
)cpp";
911-
912-
pendingSeparator.add();
913-
}
914-
915854
pendingSeparator.reset();
916855

856+
const auto& enumValues = enumType->enumValues();
857+
917858
sourceFile << R"cpp(template <>
918859
)cpp" << cppType << R"cpp( Response<)cpp"
919860
<< cppType << R"cpp(>::parse(response::Value&& value)
@@ -924,9 +865,48 @@ response::Value Variable<)cpp"
924865
<< enumType->name() << R"cpp( value)ex" };
925866
}
926867
868+
static const std::array<std::pair<std::string_view, )cpp"
869+
<< cppType << R"cpp(>, )cpp" << enumValues.size()
870+
<< R"cpp(> s_values = {)cpp";
871+
872+
std::vector<std::pair<std::string_view, std::string_view>> sortedValues(
873+
enumValues.size());
874+
875+
std::transform(enumValues.cbegin(),
876+
enumValues.cend(),
877+
sortedValues.begin(),
878+
[](const auto& value) noexcept {
879+
return std::make_pair(value->name(),
880+
SchemaLoader::getSafeCppName(value->name()));
881+
});
882+
std::sort(sortedValues.begin(),
883+
sortedValues.end(),
884+
[](const auto& lhs, const auto& rhs) noexcept {
885+
return internal::shorter_or_less {}(lhs.first, rhs.first);
886+
});
887+
888+
bool firstValue = true;
889+
890+
for (const auto& enumValue : sortedValues)
891+
{
892+
if (!firstValue)
893+
{
894+
sourceFile << R"cpp(,)cpp";
895+
}
896+
897+
firstValue = false;
898+
sourceFile << R"cpp(
899+
std::make_pair(R"gql()cpp"
900+
<< enumValue.first << R"cpp()gql"sv, )cpp" << cppType << R"cpp(::)cpp"
901+
<< enumValue.second << R"cpp())cpp";
902+
pendingSeparator.add();
903+
}
904+
905+
pendingSeparator.reset();
906+
sourceFile << R"cpp( };
907+
927908
const auto result = internal::sorted_map_lookup<internal::shorter_or_less>(
928-
s_values)cpp" << cppType
929-
<< R"cpp(,
909+
s_values,
930910
std::string_view { value.get<std::string>() });
931911
932912
if (!result)

0 commit comments

Comments
 (0)