diff --git a/compiler/back_end/cpp/generated_code_templates b/compiler/back_end/cpp/generated_code_templates index e8f7c46..96ace9d 100644 --- a/compiler/back_end/cpp/generated_code_templates +++ b/compiler/back_end/cpp/generated_code_templates @@ -283,7 +283,7 @@ ${decode_fields} void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -295,11 +295,18 @@ ${write_fields} // Avoid unused variable warnings for empty structures: (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -323,20 +330,28 @@ ${write_fields} // they are not `Ok()` overall, since submembers may still be `Ok()`. if (!emboss_reserved_local_field_options.allow_partial_output() || ${field_name}().IsAggregate() || ${field_name}().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("${field_name}: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"${field_name}\":"); + } else { + emboss_reserved_local_stream->Write("${field_name}: "); + } ${field_name}().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && diff --git a/compiler/back_end/cpp/testcode/text_format_test.cc b/compiler/back_end/cpp/testcode/text_format_test.cc index 82559cd..03d2854 100644 --- a/compiler/back_end/cpp/testcode/text_format_test.cc +++ b/compiler/back_end/cpp/testcode/text_format_test.cc @@ -15,11 +15,11 @@ // Tests of generated code for text format. #include -#include -#include -#include +#include +#include #include "gtest/gtest.h" +#include "runtime/cpp/emboss_text_util.h" #include "testdata/text_format.emb.h" namespace emboss { @@ -93,6 +93,113 @@ TEST(TextFormat, UpdateFromText) { EXPECT_EQ(view.b().Read(), 4); } +TEST(TextFormat, JsonOutput) { + ::std::array values = {}; + ::std::iota(values.begin(), values.end(), 0); + + const auto view = MakeJsonTestStructView(&values); + EXPECT_EQ( + "{\"one_byte_enum\":\"ZERO\",\"seven_bit_uint\":1,\"one_bit_flag\":" + "false,\"one_byte_uint\":2,\"two_byte_uint\":1027," + "\"four_byte_uint\":134678021,\"eight_byte_uint\":" + "1157159078456920585,\"uint8_array\":[17,18,19,20,21,22,23,24," + "25,26],\"uint16_array\":[7195,7709,8223,8737,9251,9765,10279," + "10793,11307,11821],\"struct_array\":[{\"element_one\":47," + "\"element_two\":48,\"element_three\":49,\"element_four\":50}," + "{\"element_one\":51,\"element_two\":52,\"element_three\":53," + "\"element_four\":54}]}", + ::emboss::WriteToString(view, TextOutputOptions().Json(true))); +} + +TEST(TextFormat, JsonOutputRobustness) { + ::std::array values = {}; + ::std::iota(values.begin(), values.end(), 0); + + const auto view = MakeJsonTestStructView(&values); + auto options = ::emboss::TextOutputOptions() + .Json(true) + .WithComments(true) + .WithDigitGrouping(true) + .WithNumericBase(16); + EXPECT_EQ( + "{\"one_byte_enum\":\"ZERO\",\"seven_bit_uint\":1,\"one_bit_flag\":" + "false,\"one_byte_uint\":2,\"two_byte_uint\":1027," + "\"four_byte_uint\":134678021,\"eight_byte_uint\":" + "1157159078456920585,\"uint8_array\":[17,18,19,20,21,22,23,24," + "25,26],\"uint16_array\":[7195,7709,8223,8737,9251,9765,10279," + "10793,11307,11821],\"struct_array\":[{\"element_one\":47," + "\"element_two\":48,\"element_three\":49,\"element_four\":50}," + "{\"element_one\":51,\"element_two\":52,\"element_three\":53," + "\"element_four\":54}]}", + ::emboss::WriteToString(view, options)); +} + +TEST(TextFormat, DigitGroupingAndNumericBase) { + ::std::array values = {}; + ::std::iota(values.begin(), values.end(), 0); + + const auto view = MakeJsonTestStructView(&values); + auto options = + ::emboss::TextOutputOptions().WithDigitGrouping(true).WithNumericBase(16); + EXPECT_EQ( + "{ one_byte_enum: ZERO, seven_bit_uint: 0x1, one_bit_flag: false, " + "one_byte_uint: 0x2, two_byte_uint: 0x403, four_byte_uint: 0x807_0605, " + "eight_byte_uint: 0x100f_0e0d_0c0b_0a09, uint8_array: { [0x0]: 0x11, " + "0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, [0x8]: 0x19, 0x1a }, " + "uint16_array: { [0x0]: 0x1c1b, 0x1e1d, 0x201f, 0x2221, 0x2423, 0x2625, " + "0x2827, 0x2a29, [0x8]: 0x2c2b, 0x2e2d }, struct_array: { [0x0]: { " + "element_one: 0x2f, element_two: 0x30, element_three: 0x31, " + "element_four: 0x32 }, { element_one: 0x33, element_two: 0x34, " + "element_three: 0x35, element_four: 0x36 } } }", + ::emboss::WriteToString(view, options)); +} + +TEST(TextFormat, MultilineAndPartial) { + ::std::array values = {10}; + // MakeVanillaView expects a pointer to an array of size 2, so we have to + // construct the view manually. + auto view = VanillaWriter(values.data(), values.size()); + auto options = + ::emboss::TextOutputOptions().Multiline(true).WithAllowPartialOutput( + true); + EXPECT_EQ( + "{\n" + "a: 10\n" + "}", + ::emboss::WriteToString(view, options)); +} + +TEST(TextFormat, JsonSkippedFieldOutput) { + ::std::array values = {1, 2, 3}; + const auto view = MakeStructWithSkippedFieldsView(&values); + EXPECT_EQ("{\"a\":1,\"c\":3}", + ::emboss::WriteToString(view, TextOutputOptions().Json(true))); +} + +TEST(TextFormat, JsonLargeIntegerAsString) { + ::std::array values = {}; + ::std::iota(values.begin(), values.end(), 0); + + const auto view = MakeJsonTestStructView(&values); + auto options = ::emboss::TextOutputOptions() + .Json(true) + .WithJsonLargeIntegerHandling( + JsonLargeIntegerHandling::kLargeAsString); + // With kLargeAsString, the eight_byte_uint should be quoted, but smaller + // integers should remain as numbers. + EXPECT_EQ( + "{\"one_byte_enum\":\"ZERO\",\"seven_bit_uint\":1,\"one_bit_flag\":" + "false,\"one_byte_uint\":2,\"two_byte_uint\":1027," + "\"four_byte_uint\":134678021,\"eight_byte_uint\":" + "\"1157159078456920585\",\"uint8_array\":[17,18,19,20,21,22,23,24," + "25,26],\"uint16_array\":[7195,7709,8223,8737,9251,9765,10279," + "10793,11307,11821],\"struct_array\":[{\"element_one\":47," + "\"element_two\":48,\"element_three\":49,\"element_four\":50}," + "{\"element_one\":51,\"element_two\":52,\"element_three\":53," + "\"element_four\":54}]}", + ::emboss::WriteToString(view, options)); +} + } // namespace } // namespace test } // namespace emboss diff --git a/compiler/util/parser_types.py b/compiler/util/parser_types.py index a3ef34d..89cb186 100644 --- a/compiler/util/parser_types.py +++ b/compiler/util/parser_types.py @@ -15,7 +15,7 @@ """Types related to the LR(1) parser. This module contains types used by the LR(1) parser, which are also used in -other parts of the compiler: +other parts of the compiler: SourcePosition: a position (zero-width) within a source file. SourceLocation: a span within a source file. diff --git a/runtime/cpp/emboss_text_util.h b/runtime/cpp/emboss_text_util.h index 9cfe03d..1d1a1b8 100644 --- a/runtime/cpp/emboss_text_util.h +++ b/runtime/cpp/emboss_text_util.h @@ -13,10 +13,11 @@ // limitations under the License. // This header contains functionality related to Emboss text output. -#ifndef EMBOSS_RUNTIME_CPP_EMBOSS_TEXT_UTIL_H_ -#define EMBOSS_RUNTIME_CPP_EMBOSS_TEXT_UTIL_H_ +#ifndef THIRD_PARTY_EMBOSS_RUNTIME_CPP_EMBOSS_TEXT_UTIL_H_ +#define THIRD_PARTY_EMBOSS_RUNTIME_CPP_EMBOSS_TEXT_UTIL_H_ #include +#include #include #include #include @@ -25,12 +26,25 @@ #include #include #include +#include +#include #include #include "runtime/cpp/emboss_defines.h" namespace emboss { +// Controls how large integers are serialized in JSON output. JSON numbers are +// 64-bit floating-point, so integers outside the range [-2^53, 2^53] may lose +// precision when parsed by standard JSON parsers. +enum class JsonLargeIntegerHandling { + // Serialize all integers as numbers (default, but may lose precision for + // large values). + kAsNumber, + // Serialize integers larger than 32 bits as quoted strings. + kLargeAsString, +}; + // TextOutputOptions are used to configure text output. Typically, one can just // use a default TextOutputOptions() (for compact output) or MultilineText() // (for reasonable formatted output). @@ -80,13 +94,30 @@ class TextOutputOptions final { return result; } + TextOutputOptions Json(bool new_value) const { + TextOutputOptions result = *this; + result.json_ = new_value; + return result; + } + + TextOutputOptions WithJsonLargeIntegerHandling( + JsonLargeIntegerHandling new_value) const { + TextOutputOptions result = *this; + result.json_large_integer_handling_ = new_value; + return result; + } + ::std::string current_indent() const { return current_indent_; } ::std::string indent() const { return indent_; } bool multiline() const { return multiline_; } - bool digit_grouping() const { return digit_grouping_; } - bool comments() const { return comments_; } - ::std::uint8_t numeric_base() const { return numeric_base_; } + bool digit_grouping() const { return digit_grouping_ && !json_; } + bool comments() const { return comments_ && !json_; } + ::std::uint8_t numeric_base() const { return json_ ? 10 : numeric_base_; } + bool json() const { return json_; } bool allow_partial_output() const { return allow_partial_output_; } + JsonLargeIntegerHandling json_large_integer_handling() const { + return json_large_integer_handling_; + } private: ::std::string indent_; @@ -95,7 +126,10 @@ class TextOutputOptions final { bool multiline_ = false; bool digit_grouping_ = false; bool allow_partial_output_ = false; + bool json_ = false; ::std::uint8_t numeric_base_ = 10; + JsonLargeIntegerHandling json_large_integer_handling_ = + JsonLargeIntegerHandling::kAsNumber; }; namespace support { @@ -337,8 +371,21 @@ void WriteIntegerToTextStream(IntegralType value, Stream *stream, template void WriteIntegerViewToTextStream(View *view, Stream *stream, const TextOutputOptions &options) { + // In JSON mode with kLargeAsString, serialize integers larger than 32 bits + // as quoted strings to avoid precision loss in JSON parsers. + bool quote_value = + options.json() && + options.json_large_integer_handling() == + JsonLargeIntegerHandling::kLargeAsString && + sizeof(typename View::ValueType) > 4; + if (quote_value) { + stream->Write("\""); + } WriteIntegerToTextStream(view->Read(), stream, options.numeric_base(), options.digit_grouping()); + if (quote_value) { + stream->Write("\""); + } if (options.comments()) { stream->Write(" # "); WriteIntegerToTextStream(view->Read(), stream, @@ -562,6 +609,10 @@ void WriteFloatToTextStream(Float n, Stream *stream, // currently available. if (::std::isnan(n)) { + if (options.json()) { + stream->Write("\"NaN\""); + return; + } // The printf format for NaN is just "NaN". In the interests of keeping // things bit-exact, Emboss prints the exact NaN. typename FloatConstants::MatchingIntegerType bits; @@ -585,6 +636,14 @@ void WriteFloatToTextStream(Float n, Stream *stream, } if (::std::isinf(n)) { + if (options.json()) { + if (n < 0.0) { + stream->Write("\"-Infinity\""); + } else { + stream->Write("\"Infinity\""); + } + return; + } if (n < 0.0) { stream->Write("-Inf"); } else { @@ -636,13 +695,17 @@ void WriteEnumViewToTextStream(View *view, Stream *stream, const TextOutputOptions &options) { const char *name = TryToGetNameFromEnum(view->Read()); if (name != nullptr) { + if (options.json()) stream->Write("\""); stream->Write(name); + if (options.json()) stream->Write("\""); } // If the enum value has no known name, then write its numeric value // instead. If it does have a known name, and comments are enabled on the // output, then write the numeric value as a comment. if (name == nullptr || options.comments()) { - if (name != nullptr) stream->Write(" # "); + if (name != nullptr) { + stream->Write(" # "); + } WriteIntegerToTextStream( static_cast< typename ::std::underlying_type::type>( @@ -756,7 +819,29 @@ template void WriteArrayToTextStream(Array *array, Stream *stream, const TextOutputOptions &options) { TextOutputOptions element_options = options.PlusOneIndent(); - if (options.multiline()) { + if (options.json()) { + stream->Write("["); + bool first = true; + for (::std::size_t i = 0; i < array->ElementCount(); ++i) { + if (!options.allow_partial_output() || (*array)[i].IsAggregate() || + (*array)[i].Ok()) { + if (!first) { + stream->Write(","); + } + if (options.multiline()) { + stream->Write("\n"); + stream->Write(element_options.current_indent()); + } + (*array)[i].WriteToTextStream(stream, element_options); + first = false; + } + } + if (options.multiline()) { + stream->Write("\n"); + stream->Write(options.current_indent()); + } + stream->Write("]"); + } else if (options.multiline()) { stream->Write("{"); WriteShorthandArrayCommentToTextStream(array, stream, element_options); for (::std::size_t i = 0; i < array->ElementCount(); ++i) { @@ -896,4 +981,4 @@ inline ::std::string WriteToString(const EmbossViewType &view) { } // namespace emboss -#endif // EMBOSS_RUNTIME_CPP_EMBOSS_TEXT_UTIL_H_ +#endif // THIRD_PARTY_EMBOSS_RUNTIME_CPP_EMBOSS_TEXT_UTIL_H_ diff --git a/runtime/cpp/test/emboss_array_view_test.cc b/runtime/cpp/test/emboss_array_view_test.cc index 1f632e8..15cb9eb 100644 --- a/runtime/cpp/test/emboss_array_view_test.cc +++ b/runtime/cpp/test/emboss_array_view_test.cc @@ -12,15 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -#include "runtime/cpp/emboss_array_view.h" +#include "third_party/emboss/runtime/cpp/emboss_array_view.h" +#include +#include #include -#include -#include "absl/strings/str_format.h" -#include "gtest/gtest.h" -#include "runtime/cpp/emboss_prelude.h" -#include "runtime/cpp/emboss_text_util.h" +#include "testing/base/public/gunit.h" +#include "third_party/absl/strings/str_format.h" +#include "third_party/emboss/runtime/cpp/emboss_memory_util.h" +#include "third_party/emboss/runtime/cpp/emboss_prelude.h" +#include "third_party/emboss/runtime/cpp/emboss_text_util.h" +#include "third_party/emboss/runtime/cpp/emboss_view_parameters.h" namespace emboss { namespace support { @@ -215,6 +218,18 @@ TEST(ArrayView, TextFormatOutput_WithAndWithoutComments) { "0x8, 0xd, 0x15, 0x22, 0x37, 0x59 }"); } +TEST(ArrayView, TextFormatOutput_AsJson) { + signed char bytes[16] = {-3, 2, -1, 1, 0, 1, 1, 2, + 3, 5, 8, 13, 21, 34, 55, 89}; + auto buffer = ReadWriteContiguousBuffer{ + reinterpret_cast(bytes), sizeof bytes}; + auto byte_array = + ArrayView, ReadWriteContiguousBuffer, 1>{buffer}; + + EXPECT_EQ("[-3, 2, -1, 1, 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]", + WriteToString(byte_array, TextOutputOptions().Json(true))); +} + TEST(ArrayView, TextFormatOutput_8BitIntElementTypes) { ::std::uint8_t bytes[1] = {65}; auto buffer = ReadWriteContiguousBuffer{bytes, sizeof bytes}; diff --git a/testdata/golden_cpp/alignments.emb.h b/testdata/golden_cpp/alignments.emb.h index e60daf5..f7a3888 100644 --- a/testdata/golden_cpp/alignments.emb.h +++ b/testdata/golden_cpp/alignments.emb.h @@ -680,7 +680,7 @@ class GenericAlignmentsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -691,20 +691,28 @@ class GenericAlignmentsView final { if (has_zero_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_offset().IsAggregate() || zero_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_offset\":"); + } else { + emboss_reserved_local_stream->Write("zero_offset: "); + } zero_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -721,20 +729,28 @@ class GenericAlignmentsView final { if (has_zero_offset_substructure().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_offset_substructure().IsAggregate() || zero_offset_substructure().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_offset_substructure: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_offset_substructure\":"); + } else { + emboss_reserved_local_stream->Write("zero_offset_substructure: "); + } zero_offset_substructure().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -751,20 +767,28 @@ class GenericAlignmentsView final { if (has_two_offset_substructure().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_offset_substructure().IsAggregate() || two_offset_substructure().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_offset_substructure: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_offset_substructure\":"); + } else { + emboss_reserved_local_stream->Write("two_offset_substructure: "); + } two_offset_substructure().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -781,20 +805,28 @@ class GenericAlignmentsView final { if (has_three_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_offset().IsAggregate() || three_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_offset\":"); + } else { + emboss_reserved_local_stream->Write("three_offset: "); + } three_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -811,20 +843,28 @@ class GenericAlignmentsView final { if (has_four_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_offset().IsAggregate() || four_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_offset\":"); + } else { + emboss_reserved_local_stream->Write("four_offset: "); + } four_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -841,20 +881,28 @@ class GenericAlignmentsView final { if (has_eleven_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eleven_offset().IsAggregate() || eleven_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eleven_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eleven_offset\":"); + } else { + emboss_reserved_local_stream->Write("eleven_offset: "); + } eleven_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -871,20 +919,28 @@ class GenericAlignmentsView final { if (has_twelve_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || twelve_offset().IsAggregate() || twelve_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("twelve_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"twelve_offset\":"); + } else { + emboss_reserved_local_stream->Write("twelve_offset: "); + } twelve_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -901,20 +957,28 @@ class GenericAlignmentsView final { if (has_zero_offset_four_stride_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_offset_four_stride_array().IsAggregate() || zero_offset_four_stride_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_offset_four_stride_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_offset_four_stride_array\":"); + } else { + emboss_reserved_local_stream->Write("zero_offset_four_stride_array: "); + } zero_offset_four_stride_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -931,20 +995,28 @@ class GenericAlignmentsView final { if (has_zero_offset_six_stride_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_offset_six_stride_array().IsAggregate() || zero_offset_six_stride_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_offset_six_stride_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_offset_six_stride_array\":"); + } else { + emboss_reserved_local_stream->Write("zero_offset_six_stride_array: "); + } zero_offset_six_stride_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -961,20 +1033,28 @@ class GenericAlignmentsView final { if (has_three_offset_four_stride_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_offset_four_stride_array().IsAggregate() || three_offset_four_stride_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_offset_four_stride_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_offset_four_stride_array\":"); + } else { + emboss_reserved_local_stream->Write("three_offset_four_stride_array: "); + } three_offset_four_stride_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -991,20 +1071,28 @@ class GenericAlignmentsView final { if (has_four_offset_six_stride_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_offset_six_stride_array().IsAggregate() || four_offset_six_stride_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_offset_six_stride_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_offset_six_stride_array\":"); + } else { + emboss_reserved_local_stream->Write("four_offset_six_stride_array: "); + } four_offset_six_stride_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1020,11 +1108,18 @@ class GenericAlignmentsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1472,7 +1567,7 @@ class GenericPlaceholder4View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1483,20 +1578,28 @@ class GenericPlaceholder4View final { if (has_dummy().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || dummy().IsAggregate() || dummy().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("dummy: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"dummy\":"); + } else { + emboss_reserved_local_stream->Write("dummy: "); + } dummy().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1512,11 +1615,18 @@ class GenericPlaceholder4View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1934,7 +2044,7 @@ class GenericPlaceholder6View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1945,20 +2055,28 @@ class GenericPlaceholder6View final { if (has_zero_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_offset().IsAggregate() || zero_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_offset\":"); + } else { + emboss_reserved_local_stream->Write("zero_offset: "); + } zero_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1975,20 +2093,28 @@ class GenericPlaceholder6View final { if (has_two_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_offset().IsAggregate() || two_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_offset\":"); + } else { + emboss_reserved_local_stream->Write("two_offset: "); + } two_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2004,11 +2130,18 @@ class GenericPlaceholder6View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/anonymous_bits.emb.h b/testdata/golden_cpp/anonymous_bits.emb.h index 7d505c9..ce1e07c 100644 --- a/testdata/golden_cpp/anonymous_bits.emb.h +++ b/testdata/golden_cpp/anonymous_bits.emb.h @@ -342,7 +342,7 @@ class GenericEmbossReservedAnonymousField2View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -353,20 +353,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_high_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high_bit().IsAggregate() || high_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high_bit\":"); + } else { + emboss_reserved_local_stream->Write("high_bit: "); + } high_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -383,20 +391,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_bar().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || bar().IsAggregate() || bar().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("bar: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"bar\":"); + } else { + emboss_reserved_local_stream->Write("bar: "); + } bar().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -413,20 +429,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_first_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || first_bit().IsAggregate() || first_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("first_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"first_bit\":"); + } else { + emboss_reserved_local_stream->Write("first_bit: "); + } first_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -442,11 +466,18 @@ class GenericEmbossReservedAnonymousField2View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -970,7 +1001,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -981,20 +1012,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_bit_23().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || bit_23().IsAggregate() || bit_23().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("bit_23: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"bit_23\":"); + } else { + emboss_reserved_local_stream->Write("bit_23: "); + } bit_23().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1011,20 +1050,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_low_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low_bit().IsAggregate() || low_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low_bit\":"); + } else { + emboss_reserved_local_stream->Write("low_bit: "); + } low_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1040,11 +1087,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1509,7 +1563,7 @@ class GenericFooView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1520,20 +1574,28 @@ class GenericFooView final { if (has_high_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high_bit().IsAggregate() || high_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high_bit\":"); + } else { + emboss_reserved_local_stream->Write("high_bit: "); + } high_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1550,20 +1612,28 @@ class GenericFooView final { if (has_bar().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || bar().IsAggregate() || bar().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("bar: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"bar\":"); + } else { + emboss_reserved_local_stream->Write("bar: "); + } bar().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1580,20 +1650,28 @@ class GenericFooView final { if (has_first_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || first_bit().IsAggregate() || first_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("first_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"first_bit\":"); + } else { + emboss_reserved_local_stream->Write("first_bit: "); + } first_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1610,20 +1688,28 @@ class GenericFooView final { if (has_bit_23().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || bit_23().IsAggregate() || bit_23().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("bit_23: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"bit_23\":"); + } else { + emboss_reserved_local_stream->Write("bit_23: "); + } bit_23().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1640,20 +1726,28 @@ class GenericFooView final { if (has_low_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low_bit().IsAggregate() || low_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low_bit\":"); + } else { + emboss_reserved_local_stream->Write("low_bit: "); + } low_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1669,11 +1763,18 @@ class GenericFooView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/auto_array_size.emb.h b/testdata/golden_cpp/auto_array_size.emb.h index 64e2973..f50dd3c 100644 --- a/testdata/golden_cpp/auto_array_size.emb.h +++ b/testdata/golden_cpp/auto_array_size.emb.h @@ -276,7 +276,7 @@ class GenericElementView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -287,20 +287,28 @@ class GenericElementView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -317,20 +325,28 @@ class GenericElementView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -346,11 +362,18 @@ class GenericElementView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -907,7 +930,7 @@ class GenericAutoSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -918,20 +941,28 @@ class GenericAutoSizeView final { if (has_array_size().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || array_size().IsAggregate() || array_size().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("array_size: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"array_size\":"); + } else { + emboss_reserved_local_stream->Write("array_size: "); + } array_size().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -948,20 +979,28 @@ class GenericAutoSizeView final { if (has_four_byte_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte_array().IsAggregate() || four_byte_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte_array\":"); + } else { + emboss_reserved_local_stream->Write("four_byte_array: "); + } four_byte_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -978,20 +1017,28 @@ class GenericAutoSizeView final { if (has_four_struct_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_struct_array().IsAggregate() || four_struct_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_struct_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_struct_array\":"); + } else { + emboss_reserved_local_stream->Write("four_struct_array: "); + } four_struct_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1008,20 +1055,28 @@ class GenericAutoSizeView final { if (has_dynamic_byte_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || dynamic_byte_array().IsAggregate() || dynamic_byte_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("dynamic_byte_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"dynamic_byte_array\":"); + } else { + emboss_reserved_local_stream->Write("dynamic_byte_array: "); + } dynamic_byte_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1038,20 +1093,28 @@ class GenericAutoSizeView final { if (has_dynamic_struct_array().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || dynamic_struct_array().IsAggregate() || dynamic_struct_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("dynamic_struct_array: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"dynamic_struct_array\":"); + } else { + emboss_reserved_local_stream->Write("dynamic_struct_array: "); + } dynamic_struct_array().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1067,11 +1130,18 @@ class GenericAutoSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/bcd.emb.h b/testdata/golden_cpp/bcd.emb.h index 1e4edc2..b82215c 100644 --- a/testdata/golden_cpp/bcd.emb.h +++ b/testdata/golden_cpp/bcd.emb.h @@ -388,7 +388,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -399,20 +399,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_four_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_bit().IsAggregate() || four_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_bit\":"); + } else { + emboss_reserved_local_stream->Write("four_bit: "); + } four_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -429,20 +437,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_six_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_bit().IsAggregate() || six_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_bit\":"); + } else { + emboss_reserved_local_stream->Write("six_bit: "); + } six_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -459,20 +475,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_ten_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_bit().IsAggregate() || ten_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_bit\":"); + } else { + emboss_reserved_local_stream->Write("ten_bit: "); + } ten_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -489,20 +513,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_twelve_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || twelve_bit().IsAggregate() || twelve_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("twelve_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"twelve_bit\":"); + } else { + emboss_reserved_local_stream->Write("twelve_bit: "); + } twelve_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -518,11 +550,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1300,7 +1339,7 @@ class GenericBcdSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1311,20 +1350,28 @@ class GenericBcdSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1341,20 +1388,28 @@ class GenericBcdSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1371,20 +1426,28 @@ class GenericBcdSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1401,20 +1464,28 @@ class GenericBcdSizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1431,20 +1502,28 @@ class GenericBcdSizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1461,20 +1540,28 @@ class GenericBcdSizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1491,20 +1578,28 @@ class GenericBcdSizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1521,20 +1616,28 @@ class GenericBcdSizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1551,20 +1654,28 @@ class GenericBcdSizesView final { if (has_four_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_bit().IsAggregate() || four_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_bit\":"); + } else { + emboss_reserved_local_stream->Write("four_bit: "); + } four_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1581,20 +1692,28 @@ class GenericBcdSizesView final { if (has_six_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_bit().IsAggregate() || six_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_bit\":"); + } else { + emboss_reserved_local_stream->Write("six_bit: "); + } six_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1611,20 +1730,28 @@ class GenericBcdSizesView final { if (has_ten_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_bit().IsAggregate() || ten_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_bit\":"); + } else { + emboss_reserved_local_stream->Write("ten_bit: "); + } ten_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1641,20 +1768,28 @@ class GenericBcdSizesView final { if (has_twelve_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || twelve_bit().IsAggregate() || twelve_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("twelve_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"twelve_bit\":"); + } else { + emboss_reserved_local_stream->Write("twelve_bit: "); + } twelve_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1670,11 +1805,18 @@ class GenericBcdSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2138,7 +2280,7 @@ class GenericBcdBigEndianView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2149,20 +2291,28 @@ class GenericBcdBigEndianView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2178,11 +2328,18 @@ class GenericBcdBigEndianView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/bits.emb.h b/testdata/golden_cpp/bits.emb.h index e6f29da..ef02e10 100644 --- a/testdata/golden_cpp/bits.emb.h +++ b/testdata/golden_cpp/bits.emb.h @@ -448,7 +448,7 @@ class GenericOneByteView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -459,20 +459,28 @@ class GenericOneByteView final { if (has_high_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high_bit().IsAggregate() || high_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high_bit\":"); + } else { + emboss_reserved_local_stream->Write("high_bit: "); + } high_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -489,20 +497,28 @@ class GenericOneByteView final { if (has_less_high_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || less_high_bit().IsAggregate() || less_high_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("less_high_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"less_high_bit\":"); + } else { + emboss_reserved_local_stream->Write("less_high_bit: "); + } less_high_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -519,20 +535,28 @@ class GenericOneByteView final { if (has_mid_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || mid_nibble().IsAggregate() || mid_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("mid_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"mid_nibble\":"); + } else { + emboss_reserved_local_stream->Write("mid_nibble: "); + } mid_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -549,20 +573,28 @@ class GenericOneByteView final { if (has_less_low_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || less_low_bit().IsAggregate() || less_low_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("less_low_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"less_low_bit\":"); + } else { + emboss_reserved_local_stream->Write("less_low_bit: "); + } less_low_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -579,20 +611,28 @@ class GenericOneByteView final { if (has_low_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low_bit().IsAggregate() || low_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low_bit\":"); + } else { + emboss_reserved_local_stream->Write("low_bit: "); + } low_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -608,11 +648,18 @@ class GenericOneByteView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1127,7 +1174,7 @@ class GenericTwoByteWithGapsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1138,20 +1185,28 @@ class GenericTwoByteWithGapsView final { if (has_high_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high_bit().IsAggregate() || high_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high_bit\":"); + } else { + emboss_reserved_local_stream->Write("high_bit: "); + } high_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1168,20 +1223,28 @@ class GenericTwoByteWithGapsView final { if (has_mid_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || mid_nibble().IsAggregate() || mid_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("mid_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"mid_nibble\":"); + } else { + emboss_reserved_local_stream->Write("mid_nibble: "); + } mid_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1198,20 +1261,28 @@ class GenericTwoByteWithGapsView final { if (has_low_bit().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low_bit().IsAggregate() || low_bit().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low_bit: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low_bit\":"); + } else { + emboss_reserved_local_stream->Write("low_bit: "); + } low_bit().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1227,11 +1298,18 @@ class GenericTwoByteWithGapsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1758,7 +1836,7 @@ class GenericFourByteView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1769,20 +1847,28 @@ class GenericFourByteView final { if (has_high_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high_nibble().IsAggregate() || high_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high_nibble\":"); + } else { + emboss_reserved_local_stream->Write("high_nibble: "); + } high_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1799,20 +1885,28 @@ class GenericFourByteView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1829,20 +1923,28 @@ class GenericFourByteView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1859,20 +1961,28 @@ class GenericFourByteView final { if (has_raw_low_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || raw_low_nibble().IsAggregate() || raw_low_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("raw_low_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"raw_low_nibble\":"); + } else { + emboss_reserved_local_stream->Write("raw_low_nibble: "); + } raw_low_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1889,20 +1999,28 @@ class GenericFourByteView final { if (has_low_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low_nibble().IsAggregate() || low_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low_nibble\":"); + } else { + emboss_reserved_local_stream->Write("low_nibble: "); + } low_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1918,11 +2036,18 @@ class GenericFourByteView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2451,7 +2576,7 @@ class GenericArrayInBitsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2462,20 +2587,28 @@ class GenericArrayInBitsView final { if (has_lone_flag().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || lone_flag().IsAggregate() || lone_flag().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("lone_flag: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"lone_flag\":"); + } else { + emboss_reserved_local_stream->Write("lone_flag: "); + } lone_flag().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2492,20 +2625,28 @@ class GenericArrayInBitsView final { if (has_flags().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || flags().IsAggregate() || flags().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("flags: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"flags\":"); + } else { + emboss_reserved_local_stream->Write("flags: "); + } flags().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2521,11 +2662,18 @@ class GenericArrayInBitsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2911,7 +3059,7 @@ class GenericArrayInBitsInStructView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2922,20 +3070,28 @@ class GenericArrayInBitsInStructView final { if (has_array_in_bits().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || array_in_bits().IsAggregate() || array_in_bits().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("array_in_bits: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"array_in_bits\":"); + } else { + emboss_reserved_local_stream->Write("array_in_bits: "); + } array_in_bits().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2951,11 +3107,18 @@ class GenericArrayInBitsInStructView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3458,7 +3621,7 @@ class GenericStructOfBitsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3469,20 +3632,28 @@ class GenericStructOfBitsView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3499,20 +3670,28 @@ class GenericStructOfBitsView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3529,20 +3708,28 @@ class GenericStructOfBitsView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3559,20 +3746,28 @@ class GenericStructOfBitsView final { if (has_located_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || located_byte().IsAggregate() || located_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("located_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"located_byte\":"); + } else { + emboss_reserved_local_stream->Write("located_byte: "); + } located_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3588,11 +3783,18 @@ class GenericStructOfBitsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4015,7 +4217,7 @@ class GenericBitArrayView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4026,20 +4228,28 @@ class GenericBitArrayView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4055,11 +4265,18 @@ class GenericBitArrayView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/complex_offset.emb.h b/testdata/golden_cpp/complex_offset.emb.h index 31889b0..05d92b5 100644 --- a/testdata/golden_cpp/complex_offset.emb.h +++ b/testdata/golden_cpp/complex_offset.emb.h @@ -240,7 +240,7 @@ class GenericLengthView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -251,20 +251,28 @@ class GenericLengthView final { if (has_length().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length().IsAggregate() || length().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length\":"); + } else { + emboss_reserved_local_stream->Write("length: "); + } length().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -280,11 +288,18 @@ class GenericLengthView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -701,7 +716,7 @@ class GenericDataView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -712,20 +727,28 @@ class GenericDataView final { if (has_length().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length().IsAggregate() || length().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length\":"); + } else { + emboss_reserved_local_stream->Write("length: "); + } length().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -742,20 +765,28 @@ class GenericDataView final { if (has_data().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data().IsAggregate() || data().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data\":"); + } else { + emboss_reserved_local_stream->Write("data: "); + } data().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -771,11 +802,18 @@ class GenericDataView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1698,7 +1736,7 @@ class GenericPackedFieldsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1709,20 +1747,28 @@ class GenericPackedFieldsView final { if (has_length1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length1().IsAggregate() || length1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length1\":"); + } else { + emboss_reserved_local_stream->Write("length1: "); + } length1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1739,20 +1785,28 @@ class GenericPackedFieldsView final { if (has_data1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data1().IsAggregate() || data1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data1\":"); + } else { + emboss_reserved_local_stream->Write("data1: "); + } data1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1788,20 +1842,28 @@ class GenericPackedFieldsView final { if (has_length2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length2().IsAggregate() || length2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length2\":"); + } else { + emboss_reserved_local_stream->Write("length2: "); + } length2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1818,20 +1880,28 @@ class GenericPackedFieldsView final { if (has_data2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data2().IsAggregate() || data2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data2\":"); + } else { + emboss_reserved_local_stream->Write("data2: "); + } data2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1867,20 +1937,28 @@ class GenericPackedFieldsView final { if (has_length3().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length3().IsAggregate() || length3().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length3: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length3\":"); + } else { + emboss_reserved_local_stream->Write("length3: "); + } length3().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1897,20 +1975,28 @@ class GenericPackedFieldsView final { if (has_data3().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data3().IsAggregate() || data3().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data3: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data3\":"); + } else { + emboss_reserved_local_stream->Write("data3: "); + } data3().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1946,20 +2032,28 @@ class GenericPackedFieldsView final { if (has_length4().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length4().IsAggregate() || length4().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length4: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length4\":"); + } else { + emboss_reserved_local_stream->Write("length4: "); + } length4().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1976,20 +2070,28 @@ class GenericPackedFieldsView final { if (has_data4().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data4().IsAggregate() || data4().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data4: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data4\":"); + } else { + emboss_reserved_local_stream->Write("data4: "); + } data4().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2025,20 +2127,28 @@ class GenericPackedFieldsView final { if (has_length5().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length5().IsAggregate() || length5().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length5: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length5\":"); + } else { + emboss_reserved_local_stream->Write("length5: "); + } length5().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2055,20 +2165,28 @@ class GenericPackedFieldsView final { if (has_data5().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data5().IsAggregate() || data5().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data5: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data5\":"); + } else { + emboss_reserved_local_stream->Write("data5: "); + } data5().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2104,20 +2222,28 @@ class GenericPackedFieldsView final { if (has_length6().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || length6().IsAggregate() || length6().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("length6: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"length6\":"); + } else { + emboss_reserved_local_stream->Write("length6: "); + } length6().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2134,20 +2260,28 @@ class GenericPackedFieldsView final { if (has_data6().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data6().IsAggregate() || data6().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data6: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data6\":"); + } else { + emboss_reserved_local_stream->Write("data6: "); + } data6().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2163,11 +2297,18 @@ class GenericPackedFieldsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/complex_structure.emb.h b/testdata/golden_cpp/complex_structure.emb.h index 745976a..6f9de92 100644 --- a/testdata/golden_cpp/complex_structure.emb.h +++ b/testdata/golden_cpp/complex_structure.emb.h @@ -335,7 +335,7 @@ class GenericRegisterLayoutView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -346,20 +346,28 @@ class GenericRegisterLayoutView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -376,20 +384,28 @@ class GenericRegisterLayoutView final { if (has_l().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || l().IsAggregate() || l().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("l: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"l\":"); + } else { + emboss_reserved_local_stream->Write("l: "); + } l().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -406,20 +422,28 @@ class GenericRegisterLayoutView final { if (has_h().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || h().IsAggregate() || h().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("h: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"h\":"); + } else { + emboss_reserved_local_stream->Write("h: "); + } h().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -435,11 +459,18 @@ class GenericRegisterLayoutView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -829,7 +860,7 @@ class GenericArrayElementView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -840,20 +871,28 @@ class GenericArrayElementView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -869,11 +908,18 @@ class GenericArrayElementView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1397,7 +1443,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1408,20 +1454,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_a0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a0().IsAggregate() || a0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a0\":"); + } else { + emboss_reserved_local_stream->Write("a0: "); + } a0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1438,20 +1492,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_s0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || s0().IsAggregate() || s0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("s0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"s0\":"); + } else { + emboss_reserved_local_stream->Write("s0: "); + } s0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1468,20 +1530,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_l0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || l0().IsAggregate() || l0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("l0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"l0\":"); + } else { + emboss_reserved_local_stream->Write("l0: "); + } l0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1498,20 +1568,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_h0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || h0().IsAggregate() || h0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("h0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"h0\":"); + } else { + emboss_reserved_local_stream->Write("h0: "); + } h0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1527,11 +1605,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2480,7 +2565,7 @@ class GenericComplexView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2491,20 +2576,28 @@ class GenericComplexView final { if (has_s().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || s().IsAggregate() || s().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("s: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"s\":"); + } else { + emboss_reserved_local_stream->Write("s: "); + } s().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2521,20 +2614,28 @@ class GenericComplexView final { if (has_u().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || u().IsAggregate() || u().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("u: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"u\":"); + } else { + emboss_reserved_local_stream->Write("u: "); + } u().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2551,20 +2652,28 @@ class GenericComplexView final { if (has_i().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || i().IsAggregate() || i().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("i: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"i\":"); + } else { + emboss_reserved_local_stream->Write("i: "); + } i().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2581,20 +2690,28 @@ class GenericComplexView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2611,20 +2728,28 @@ class GenericComplexView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2641,20 +2766,28 @@ class GenericComplexView final { if (has_a0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a0().IsAggregate() || a0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a0\":"); + } else { + emboss_reserved_local_stream->Write("a0: "); + } a0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2671,20 +2804,28 @@ class GenericComplexView final { if (has_s0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || s0().IsAggregate() || s0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("s0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"s0\":"); + } else { + emboss_reserved_local_stream->Write("s0: "); + } s0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2701,20 +2842,28 @@ class GenericComplexView final { if (has_l0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || l0().IsAggregate() || l0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("l0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"l0\":"); + } else { + emboss_reserved_local_stream->Write("l0: "); + } l0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2731,20 +2880,28 @@ class GenericComplexView final { if (has_h0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || h0().IsAggregate() || h0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("h0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"h0\":"); + } else { + emboss_reserved_local_stream->Write("h0: "); + } h0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2761,20 +2918,28 @@ class GenericComplexView final { if (has_e1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || e1().IsAggregate() || e1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("e1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"e1\":"); + } else { + emboss_reserved_local_stream->Write("e1: "); + } e1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2791,20 +2956,28 @@ class GenericComplexView final { if (has_e2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || e2().IsAggregate() || e2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("e2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"e2\":"); + } else { + emboss_reserved_local_stream->Write("e2: "); + } e2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2821,20 +2994,28 @@ class GenericComplexView final { if (has_b2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b2().IsAggregate() || b2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b2\":"); + } else { + emboss_reserved_local_stream->Write("b2: "); + } b2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2851,20 +3032,28 @@ class GenericComplexView final { if (has_e3().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || e3().IsAggregate() || e3().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("e3: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"e3\":"); + } else { + emboss_reserved_local_stream->Write("e3: "); + } e3().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2881,20 +3070,28 @@ class GenericComplexView final { if (has_e4().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || e4().IsAggregate() || e4().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("e4: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"e4\":"); + } else { + emboss_reserved_local_stream->Write("e4: "); + } e4().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2911,20 +3108,28 @@ class GenericComplexView final { if (has_e5().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || e5().IsAggregate() || e5().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("e5: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"e5\":"); + } else { + emboss_reserved_local_stream->Write("e5: "); + } e5().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2941,20 +3146,28 @@ class GenericComplexView final { if (has_e0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || e0().IsAggregate() || e0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("e0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"e0\":"); + } else { + emboss_reserved_local_stream->Write("e0: "); + } e0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2970,11 +3183,18 @@ class GenericComplexView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/condition.emb.h b/testdata/golden_cpp/condition.emb.h index 9d11fb7..19c8486 100644 --- a/testdata/golden_cpp/condition.emb.h +++ b/testdata/golden_cpp/condition.emb.h @@ -536,7 +536,7 @@ class GenericBasicConditionalView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -547,20 +547,28 @@ class GenericBasicConditionalView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -577,20 +585,28 @@ class GenericBasicConditionalView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -606,11 +622,18 @@ class GenericBasicConditionalView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1066,7 +1089,7 @@ class GenericNegativeConditionalView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1077,20 +1100,28 @@ class GenericNegativeConditionalView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1107,20 +1138,28 @@ class GenericNegativeConditionalView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1136,11 +1175,18 @@ class GenericNegativeConditionalView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1641,7 +1687,7 @@ class GenericConditionalAndUnconditionalOverlappingFinalFieldView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1652,20 +1698,28 @@ class GenericConditionalAndUnconditionalOverlappingFinalFieldView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1682,20 +1736,28 @@ class GenericConditionalAndUnconditionalOverlappingFinalFieldView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1712,20 +1774,28 @@ class GenericConditionalAndUnconditionalOverlappingFinalFieldView final { if (has_z().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || z().IsAggregate() || z().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("z: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"z\":"); + } else { + emboss_reserved_local_stream->Write("z: "); + } z().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1741,11 +1811,18 @@ class GenericConditionalAndUnconditionalOverlappingFinalFieldView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2179,7 +2256,7 @@ class GenericConditionalBasicConditionalFieldFirstView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2190,20 +2267,28 @@ class GenericConditionalBasicConditionalFieldFirstView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2220,20 +2305,28 @@ class GenericConditionalBasicConditionalFieldFirstView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2249,11 +2342,18 @@ class GenericConditionalBasicConditionalFieldFirstView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2722,7 +2822,7 @@ class GenericConditionalAndDynamicLocationView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2733,20 +2833,28 @@ class GenericConditionalAndDynamicLocationView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2763,20 +2871,28 @@ class GenericConditionalAndDynamicLocationView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2793,20 +2909,28 @@ class GenericConditionalAndDynamicLocationView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2822,11 +2946,18 @@ class GenericConditionalAndDynamicLocationView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3293,7 +3424,7 @@ class GenericConditionUsesMinIntView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3304,20 +3435,28 @@ class GenericConditionUsesMinIntView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3334,20 +3473,28 @@ class GenericConditionUsesMinIntView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3363,11 +3510,18 @@ class GenericConditionUsesMinIntView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3868,7 +4022,7 @@ class GenericNestedConditionalView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3879,20 +4033,28 @@ class GenericNestedConditionalView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3909,20 +4071,28 @@ class GenericNestedConditionalView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3939,20 +4109,28 @@ class GenericNestedConditionalView final { if (has_xcc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xcc().IsAggregate() || xcc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xcc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xcc\":"); + } else { + emboss_reserved_local_stream->Write("xcc: "); + } xcc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3968,11 +4146,18 @@ class GenericNestedConditionalView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4484,7 +4669,7 @@ class GenericCorrectNestedConditionalView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4495,20 +4680,28 @@ class GenericCorrectNestedConditionalView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4525,20 +4718,28 @@ class GenericCorrectNestedConditionalView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4555,20 +4756,28 @@ class GenericCorrectNestedConditionalView final { if (has_xcc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xcc().IsAggregate() || xcc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xcc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xcc\":"); + } else { + emboss_reserved_local_stream->Write("xcc: "); + } xcc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4584,11 +4793,18 @@ class GenericCorrectNestedConditionalView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5058,7 +5274,7 @@ class GenericAlwaysFalseConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5069,20 +5285,28 @@ class GenericAlwaysFalseConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5099,20 +5323,28 @@ class GenericAlwaysFalseConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5128,11 +5360,18 @@ class GenericAlwaysFalseConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5514,7 +5753,7 @@ class GenericOnlyAlwaysFalseConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5525,20 +5764,28 @@ class GenericOnlyAlwaysFalseConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5554,11 +5801,18 @@ class GenericOnlyAlwaysFalseConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5891,7 +6145,7 @@ class GenericEmptyStructView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5902,11 +6156,18 @@ class GenericEmptyStructView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6359,7 +6620,7 @@ class GenericAlwaysFalseConditionDynamicSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6370,20 +6631,28 @@ class GenericAlwaysFalseConditionDynamicSizeView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6400,20 +6669,28 @@ class GenericAlwaysFalseConditionDynamicSizeView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); - y().WriteToTextStream(emboss_reserved_local_stream, + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } + y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6430,20 +6707,28 @@ class GenericAlwaysFalseConditionDynamicSizeView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6459,11 +6744,18 @@ class GenericAlwaysFalseConditionDynamicSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6972,7 +7264,7 @@ class GenericConditionDoesNotContributeToSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6983,20 +7275,28 @@ class GenericConditionDoesNotContributeToSizeView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7013,20 +7313,28 @@ class GenericConditionDoesNotContributeToSizeView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7043,20 +7351,28 @@ class GenericConditionDoesNotContributeToSizeView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7072,11 +7388,18 @@ class GenericConditionDoesNotContributeToSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -7640,7 +7963,7 @@ class GenericEnumConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -7651,20 +7974,28 @@ class GenericEnumConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7681,20 +8012,28 @@ class GenericEnumConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7711,20 +8050,28 @@ class GenericEnumConditionView final { if (has_xc2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc2().IsAggregate() || xc2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc2\":"); + } else { + emboss_reserved_local_stream->Write("xc2: "); + } xc2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7740,11 +8087,18 @@ class GenericEnumConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -8211,7 +8565,7 @@ class GenericNegativeEnumConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -8222,20 +8576,28 @@ class GenericNegativeEnumConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8252,20 +8614,28 @@ class GenericNegativeEnumConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8281,11 +8651,18 @@ class GenericNegativeEnumConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -8742,7 +9119,7 @@ class GenericLessThanConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -8753,20 +9130,28 @@ class GenericLessThanConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8783,20 +9168,28 @@ class GenericLessThanConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8812,11 +9205,18 @@ class GenericLessThanConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -9272,7 +9672,7 @@ class GenericLessThanOrEqualConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -9283,20 +9683,28 @@ class GenericLessThanOrEqualConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9313,20 +9721,28 @@ class GenericLessThanOrEqualConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9342,11 +9758,18 @@ class GenericLessThanOrEqualConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -9802,7 +10225,7 @@ class GenericGreaterThanOrEqualConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -9813,20 +10236,28 @@ class GenericGreaterThanOrEqualConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9843,20 +10274,28 @@ class GenericGreaterThanOrEqualConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9872,11 +10311,18 @@ class GenericGreaterThanOrEqualConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -10332,7 +10778,7 @@ class GenericGreaterThanConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -10343,20 +10789,28 @@ class GenericGreaterThanConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -10373,20 +10827,28 @@ class GenericGreaterThanConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -10402,11 +10864,18 @@ class GenericGreaterThanConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -10906,7 +11375,7 @@ class GenericRangeConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -10917,20 +11386,28 @@ class GenericRangeConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -10947,20 +11424,28 @@ class GenericRangeConditionView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -10977,20 +11462,28 @@ class GenericRangeConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -11006,11 +11499,18 @@ class GenericRangeConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -11524,7 +12024,7 @@ class GenericReverseRangeConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -11535,20 +12035,28 @@ class GenericReverseRangeConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -11565,20 +12073,28 @@ class GenericReverseRangeConditionView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -11595,20 +12111,28 @@ class GenericReverseRangeConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -11624,11 +12148,18 @@ class GenericReverseRangeConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -12142,7 +12673,7 @@ class GenericAndConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -12153,20 +12684,28 @@ class GenericAndConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12183,20 +12722,28 @@ class GenericAndConditionView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12213,20 +12760,28 @@ class GenericAndConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12242,11 +12797,18 @@ class GenericAndConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -12758,7 +13320,7 @@ class GenericOrConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -12769,20 +13331,28 @@ class GenericOrConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12799,20 +13369,28 @@ class GenericOrConditionView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12829,20 +13407,28 @@ class GenericOrConditionView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12858,11 +13444,18 @@ class GenericOrConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -13505,7 +14098,7 @@ class GenericChoiceConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -13516,20 +14109,28 @@ class GenericChoiceConditionView final { if (has_field().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || field().IsAggregate() || field().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("field: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"field\":"); + } else { + emboss_reserved_local_stream->Write("field: "); + } field().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -13546,20 +14147,28 @@ class GenericChoiceConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -13576,20 +14185,28 @@ class GenericChoiceConditionView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -13606,20 +14223,28 @@ class GenericChoiceConditionView final { if (has_xyc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xyc().IsAggregate() || xyc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xyc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xyc\":"); + } else { + emboss_reserved_local_stream->Write("xyc: "); + } xyc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -13635,11 +14260,18 @@ class GenericChoiceConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -14125,7 +14757,7 @@ class GenericEmbossReservedAnonymousField3View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -14136,20 +14768,28 @@ class GenericEmbossReservedAnonymousField3View final { if (has_has_top().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || has_top().IsAggregate() || has_top().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("has_top: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"has_top\":"); + } else { + emboss_reserved_local_stream->Write("has_top: "); + } has_top().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -14166,20 +14806,28 @@ class GenericEmbossReservedAnonymousField3View final { if (has_has_bottom().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || has_bottom().IsAggregate() || has_bottom().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("has_bottom: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"has_bottom\":"); + } else { + emboss_reserved_local_stream->Write("has_bottom: "); + } has_bottom().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -14195,11 +14843,18 @@ class GenericEmbossReservedAnonymousField3View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -14593,7 +15248,7 @@ class GenericContainsBitsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -14604,20 +15259,28 @@ class GenericContainsBitsView final { if (has_has_top().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || has_top().IsAggregate() || has_top().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("has_top: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"has_top\":"); + } else { + emboss_reserved_local_stream->Write("has_top: "); + } has_top().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -14634,20 +15297,28 @@ class GenericContainsBitsView final { if (has_has_bottom().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || has_bottom().IsAggregate() || has_bottom().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("has_bottom: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"has_bottom\":"); + } else { + emboss_reserved_local_stream->Write("has_bottom: "); + } has_bottom().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -14663,11 +15334,18 @@ class GenericContainsBitsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -15096,7 +15774,7 @@ class GenericContainsContainsBitsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -15107,20 +15785,28 @@ class GenericContainsContainsBitsView final { if (has_condition().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || condition().IsAggregate() || condition().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("condition: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"condition\":"); + } else { + emboss_reserved_local_stream->Write("condition: "); + } condition().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -15137,20 +15823,28 @@ class GenericContainsContainsBitsView final { if (has_top().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || top().IsAggregate() || top().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("top: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"top\":"); + } else { + emboss_reserved_local_stream->Write("top: "); + } top().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -15166,11 +15860,18 @@ class GenericContainsContainsBitsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -15675,7 +16376,7 @@ class GenericType0View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -15686,20 +16387,28 @@ class GenericType0View final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -15716,20 +16425,28 @@ class GenericType0View final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -15746,20 +16463,28 @@ class GenericType0View final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -15775,11 +16500,18 @@ class GenericType0View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -16258,7 +16990,7 @@ class GenericType1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -16269,20 +17001,28 @@ class GenericType1View final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -16299,20 +17039,28 @@ class GenericType1View final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -16329,20 +17077,28 @@ class GenericType1View final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -16358,11 +17114,18 @@ class GenericType1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -16833,7 +17596,7 @@ class GenericConditionalInlineView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -16844,20 +17607,28 @@ class GenericConditionalInlineView final { if (has_payload_id().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || payload_id().IsAggregate() || payload_id().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("payload_id: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"payload_id\":"); + } else { + emboss_reserved_local_stream->Write("payload_id: "); + } payload_id().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -16874,20 +17645,28 @@ class GenericConditionalInlineView final { if (has_type_0().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || type_0().IsAggregate() || type_0().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("type_0: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"type_0\":"); + } else { + emboss_reserved_local_stream->Write("type_0: "); + } type_0().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -16904,20 +17683,28 @@ class GenericConditionalInlineView final { if (has_type_1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || type_1().IsAggregate() || type_1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("type_1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"type_1\":"); + } else { + emboss_reserved_local_stream->Write("type_1: "); + } type_1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -16933,11 +17720,18 @@ class GenericConditionalInlineView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -17452,7 +18246,7 @@ class GenericEmbossReservedAnonymousField2View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -17463,20 +18257,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_low().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low().IsAggregate() || low().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low\":"); + } else { + emboss_reserved_local_stream->Write("low: "); + } low().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -17493,20 +18295,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_mid().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || mid().IsAggregate() || mid().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("mid: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"mid\":"); + } else { + emboss_reserved_local_stream->Write("mid: "); + } mid().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -17523,20 +18333,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_high().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high().IsAggregate() || high().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high\":"); + } else { + emboss_reserved_local_stream->Write("high: "); + } high().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -17552,11 +18370,18 @@ class GenericEmbossReservedAnonymousField2View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -18012,7 +18837,7 @@ class GenericConditionalAnonymousView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -18023,20 +18848,28 @@ class GenericConditionalAnonymousView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -18053,20 +18886,28 @@ class GenericConditionalAnonymousView final { if (has_low().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || low().IsAggregate() || low().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("low: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"low\":"); + } else { + emboss_reserved_local_stream->Write("low: "); + } low().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -18083,20 +18924,28 @@ class GenericConditionalAnonymousView final { if (has_mid().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || mid().IsAggregate() || mid().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("mid: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"mid\":"); + } else { + emboss_reserved_local_stream->Write("mid: "); + } mid().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -18113,20 +18962,28 @@ class GenericConditionalAnonymousView final { if (has_high().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || high().IsAggregate() || high().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("high: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"high\":"); + } else { + emboss_reserved_local_stream->Write("high: "); + } high().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -18142,11 +18999,18 @@ class GenericConditionalAnonymousView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -18584,7 +19448,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -18595,20 +19459,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_enabled().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || enabled().IsAggregate() || enabled().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("enabled: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"enabled\":"); + } else { + emboss_reserved_local_stream->Write("enabled: "); + } enabled().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -18624,11 +19496,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -19044,7 +19923,7 @@ class GenericConditionalOnFlagView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -19055,20 +19934,28 @@ class GenericConditionalOnFlagView final { if (has_enabled().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || enabled().IsAggregate() || enabled().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("enabled: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"enabled\":"); + } else { + emboss_reserved_local_stream->Write("enabled: "); + } enabled().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -19085,20 +19972,28 @@ class GenericConditionalOnFlagView final { if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -19114,11 +20009,18 @@ class GenericConditionalOnFlagView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/dynamic_size.emb.h b/testdata/golden_cpp/dynamic_size.emb.h index 8c5f5b5..4b6cb6e 100644 --- a/testdata/golden_cpp/dynamic_size.emb.h +++ b/testdata/golden_cpp/dynamic_size.emb.h @@ -479,7 +479,7 @@ class GenericMessageView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -490,20 +490,28 @@ class GenericMessageView final { if (has_header_length().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || header_length().IsAggregate() || header_length().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("header_length: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"header_length\":"); + } else { + emboss_reserved_local_stream->Write("header_length: "); + } header_length().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -520,20 +528,28 @@ class GenericMessageView final { if (has_message_length().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || message_length().IsAggregate() || message_length().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("message_length: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"message_length\":"); + } else { + emboss_reserved_local_stream->Write("message_length: "); + } message_length().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -550,20 +566,28 @@ class GenericMessageView final { if (has_padding().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || padding().IsAggregate() || padding().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("padding: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"padding\":"); + } else { + emboss_reserved_local_stream->Write("padding: "); + } padding().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -580,20 +604,28 @@ class GenericMessageView final { if (has_message().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || message().IsAggregate() || message().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("message: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"message\":"); + } else { + emboss_reserved_local_stream->Write("message: "); + } message().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -610,20 +642,28 @@ class GenericMessageView final { if (has_crc32().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || crc32().IsAggregate() || crc32().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("crc32: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"crc32\":"); + } else { + emboss_reserved_local_stream->Write("crc32: "); + } crc32().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -639,11 +679,18 @@ class GenericMessageView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1138,7 +1185,7 @@ class GenericImageView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1149,20 +1196,28 @@ class GenericImageView final { if (has_size().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || size().IsAggregate() || size().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("size: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"size\":"); + } else { + emboss_reserved_local_stream->Write("size: "); + } size().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1179,20 +1234,28 @@ class GenericImageView final { if (has_pixels().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || pixels().IsAggregate() || pixels().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("pixels: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"pixels\":"); + } else { + emboss_reserved_local_stream->Write("pixels: "); + } pixels().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1208,11 +1271,18 @@ class GenericImageView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1857,7 +1927,7 @@ class GenericTwoRegionsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1868,20 +1938,28 @@ class GenericTwoRegionsView final { if (has_b_end().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b_end().IsAggregate() || b_end().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b_end: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b_end\":"); + } else { + emboss_reserved_local_stream->Write("b_end: "); + } b_end().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1898,20 +1976,28 @@ class GenericTwoRegionsView final { if (has_b_start().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b_start().IsAggregate() || b_start().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b_start: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b_start\":"); + } else { + emboss_reserved_local_stream->Write("b_start: "); + } b_start().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1928,20 +2014,28 @@ class GenericTwoRegionsView final { if (has_a_size().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_size().IsAggregate() || a_size().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_size: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_size\":"); + } else { + emboss_reserved_local_stream->Write("a_size: "); + } a_size().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1958,20 +2052,28 @@ class GenericTwoRegionsView final { if (has_a_start().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_start().IsAggregate() || a_start().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_start: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_start\":"); + } else { + emboss_reserved_local_stream->Write("a_start: "); + } a_start().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1988,20 +2090,28 @@ class GenericTwoRegionsView final { if (has_region_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || region_a().IsAggregate() || region_a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("region_a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"region_a\":"); + } else { + emboss_reserved_local_stream->Write("region_a: "); + } region_a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2018,20 +2128,28 @@ class GenericTwoRegionsView final { if (has_region_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || region_b().IsAggregate() || region_b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("region_b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"region_b\":"); + } else { + emboss_reserved_local_stream->Write("region_b: "); + } region_b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2047,11 +2165,18 @@ class GenericTwoRegionsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2600,7 +2725,7 @@ class GenericMultipliedSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2611,20 +2736,28 @@ class GenericMultipliedSizeView final { if (has_width().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || width().IsAggregate() || width().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("width: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"width\":"); + } else { + emboss_reserved_local_stream->Write("width: "); + } width().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2641,20 +2774,28 @@ class GenericMultipliedSizeView final { if (has_height().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || height().IsAggregate() || height().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("height: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"height\":"); + } else { + emboss_reserved_local_stream->Write("height: "); + } height().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2671,20 +2812,28 @@ class GenericMultipliedSizeView final { if (has_data().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || data().IsAggregate() || data().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("data: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"data\":"); + } else { + emboss_reserved_local_stream->Write("data: "); + } data().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2700,11 +2849,18 @@ class GenericMultipliedSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3483,7 +3639,7 @@ class GenericNegativeTermsInSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3494,20 +3650,28 @@ class GenericNegativeTermsInSizesView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3524,20 +3688,28 @@ class GenericNegativeTermsInSizesView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3554,20 +3726,28 @@ class GenericNegativeTermsInSizesView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3584,20 +3764,28 @@ class GenericNegativeTermsInSizesView final { if (has_a_minus_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_minus_b().IsAggregate() || a_minus_b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_minus_b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_minus_b\":"); + } else { + emboss_reserved_local_stream->Write("a_minus_b: "); + } a_minus_b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3614,20 +3802,28 @@ class GenericNegativeTermsInSizesView final { if (has_a_minus_2b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_minus_2b().IsAggregate() || a_minus_2b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_minus_2b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_minus_2b\":"); + } else { + emboss_reserved_local_stream->Write("a_minus_2b: "); + } a_minus_2b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3644,20 +3840,28 @@ class GenericNegativeTermsInSizesView final { if (has_a_minus_b_minus_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_minus_b_minus_c().IsAggregate() || a_minus_b_minus_c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_minus_b_minus_c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_minus_b_minus_c\":"); + } else { + emboss_reserved_local_stream->Write("a_minus_b_minus_c: "); + } a_minus_b_minus_c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3674,20 +3878,28 @@ class GenericNegativeTermsInSizesView final { if (has_ten_minus_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_minus_a().IsAggregate() || ten_minus_a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_minus_a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_minus_a\":"); + } else { + emboss_reserved_local_stream->Write("ten_minus_a: "); + } ten_minus_a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3704,20 +3916,28 @@ class GenericNegativeTermsInSizesView final { if (has_a_minus_2c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_minus_2c().IsAggregate() || a_minus_2c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_minus_2c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_minus_2c\":"); + } else { + emboss_reserved_local_stream->Write("a_minus_2c: "); + } a_minus_2c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3734,20 +3954,28 @@ class GenericNegativeTermsInSizesView final { if (has_a_minus_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_minus_c().IsAggregate() || a_minus_c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_minus_c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_minus_c\":"); + } else { + emboss_reserved_local_stream->Write("a_minus_c: "); + } a_minus_c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3763,11 +3991,18 @@ class GenericNegativeTermsInSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4330,7 +4565,7 @@ class GenericNegativeTermInLocationView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4341,20 +4576,28 @@ class GenericNegativeTermInLocationView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4371,20 +4614,28 @@ class GenericNegativeTermInLocationView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4400,11 +4651,18 @@ class GenericNegativeTermInLocationView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4949,7 +5207,7 @@ class GenericChainedSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4960,20 +5218,28 @@ class GenericChainedSizeView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4990,20 +5256,28 @@ class GenericChainedSizeView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5020,20 +5294,28 @@ class GenericChainedSizeView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5050,20 +5332,28 @@ class GenericChainedSizeView final { if (has_d().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || d().IsAggregate() || d().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("d: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"d\":"); + } else { + emboss_reserved_local_stream->Write("d: "); + } d().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5079,11 +5369,18 @@ class GenericChainedSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5608,7 +5905,7 @@ class GenericFinalFieldOverlapsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5619,20 +5916,28 @@ class GenericFinalFieldOverlapsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5649,20 +5954,28 @@ class GenericFinalFieldOverlapsView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5679,20 +5992,28 @@ class GenericFinalFieldOverlapsView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5708,11 +6029,18 @@ class GenericFinalFieldOverlapsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6233,7 +6561,7 @@ class GenericDynamicFinalFieldOverlapsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6244,20 +6572,28 @@ class GenericDynamicFinalFieldOverlapsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6274,20 +6610,28 @@ class GenericDynamicFinalFieldOverlapsView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6304,20 +6648,28 @@ class GenericDynamicFinalFieldOverlapsView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6334,20 +6686,28 @@ class GenericDynamicFinalFieldOverlapsView final { if (has_d().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || d().IsAggregate() || d().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("d: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"d\":"); + } else { + emboss_reserved_local_stream->Write("d: "); + } d().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6363,11 +6723,18 @@ class GenericDynamicFinalFieldOverlapsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6842,7 +7209,7 @@ class GenericDynamicFieldDependsOnLaterFieldView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6853,20 +7220,28 @@ class GenericDynamicFieldDependsOnLaterFieldView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6883,20 +7258,28 @@ class GenericDynamicFieldDependsOnLaterFieldView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6912,11 +7295,18 @@ class GenericDynamicFieldDependsOnLaterFieldView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -7418,7 +7808,7 @@ class GenericDynamicFieldDoesNotAffectSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -7429,20 +7819,28 @@ class GenericDynamicFieldDoesNotAffectSizeView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7459,20 +7857,28 @@ class GenericDynamicFieldDoesNotAffectSizeView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7489,20 +7895,28 @@ class GenericDynamicFieldDoesNotAffectSizeView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7518,11 +7932,18 @@ class GenericDynamicFieldDoesNotAffectSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/enum.emb.h b/testdata/golden_cpp/enum.emb.h index f056862..272a07f 100644 --- a/testdata/golden_cpp/enum.emb.h +++ b/testdata/golden_cpp/enum.emb.h @@ -241,7 +241,7 @@ class GenericConstantsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -289,11 +289,18 @@ class GenericConstantsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1680,7 +1687,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1691,20 +1698,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_wide_kind_in_bits().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || wide_kind_in_bits().IsAggregate() || wide_kind_in_bits().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("wide_kind_in_bits: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"wide_kind_in_bits\":"); + } else { + emboss_reserved_local_stream->Write("wide_kind_in_bits: "); + } wide_kind_in_bits().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1720,11 +1735,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2228,7 +2250,7 @@ class GenericManifestEntryView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2239,20 +2261,28 @@ class GenericManifestEntryView final { if (has_kind().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || kind().IsAggregate() || kind().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("kind: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"kind\":"); + } else { + emboss_reserved_local_stream->Write("kind: "); + } kind().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2269,20 +2299,28 @@ class GenericManifestEntryView final { if (has_count().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || count().IsAggregate() || count().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("count: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"count\":"); + } else { + emboss_reserved_local_stream->Write("count: "); + } count().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2299,20 +2337,28 @@ class GenericManifestEntryView final { if (has_wide_kind().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || wide_kind().IsAggregate() || wide_kind().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("wide_kind: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"wide_kind\":"); + } else { + emboss_reserved_local_stream->Write("wide_kind: "); + } wide_kind().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2329,20 +2375,28 @@ class GenericManifestEntryView final { if (has_wide_kind_in_bits().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || wide_kind_in_bits().IsAggregate() || wide_kind_in_bits().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("wide_kind_in_bits: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"wide_kind_in_bits\":"); + } else { + emboss_reserved_local_stream->Write("wide_kind_in_bits: "); + } wide_kind_in_bits().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2358,11 +2412,18 @@ class GenericManifestEntryView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2854,7 +2915,7 @@ class GenericStructContainingEnumView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2865,20 +2926,28 @@ class GenericStructContainingEnumView final { if (has_bar().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || bar().IsAggregate() || bar().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("bar: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"bar\":"); + } else { + emboss_reserved_local_stream->Write("bar: "); + } bar().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2894,11 +2963,18 @@ class GenericStructContainingEnumView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/enum_case.emb.h b/testdata/golden_cpp/enum_case.emb.h index 5738596..633b48e 100644 --- a/testdata/golden_cpp/enum_case.emb.h +++ b/testdata/golden_cpp/enum_case.emb.h @@ -476,7 +476,7 @@ class GenericUseKCamelEnumCaseView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -487,20 +487,28 @@ class GenericUseKCamelEnumCaseView final { if (has_v().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || v().IsAggregate() || v().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("v: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"v\":"); + } else { + emboss_reserved_local_stream->Write("v: "); + } v().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -554,11 +562,18 @@ class GenericUseKCamelEnumCaseView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/explicit_sizes.emb.h b/testdata/golden_cpp/explicit_sizes.emb.h index f8fd46f..e130136 100644 --- a/testdata/golden_cpp/explicit_sizes.emb.h +++ b/testdata/golden_cpp/explicit_sizes.emb.h @@ -338,7 +338,7 @@ class GenericSizedUIntArraysView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -349,20 +349,28 @@ class GenericSizedUIntArraysView final { if (has_one_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_nibble().IsAggregate() || one_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_nibble\":"); + } else { + emboss_reserved_local_stream->Write("one_nibble: "); + } one_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -379,20 +387,28 @@ class GenericSizedUIntArraysView final { if (has_two_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_nibble().IsAggregate() || two_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_nibble\":"); + } else { + emboss_reserved_local_stream->Write("two_nibble: "); + } two_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -409,20 +425,28 @@ class GenericSizedUIntArraysView final { if (has_four_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_nibble().IsAggregate() || four_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_nibble\":"); + } else { + emboss_reserved_local_stream->Write("four_nibble: "); + } four_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -438,11 +462,18 @@ class GenericSizedUIntArraysView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -932,7 +963,7 @@ class GenericSizedIntArraysView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -943,20 +974,28 @@ class GenericSizedIntArraysView final { if (has_one_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_nibble().IsAggregate() || one_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_nibble\":"); + } else { + emboss_reserved_local_stream->Write("one_nibble: "); + } one_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -973,20 +1012,28 @@ class GenericSizedIntArraysView final { if (has_two_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_nibble().IsAggregate() || two_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_nibble\":"); + } else { + emboss_reserved_local_stream->Write("two_nibble: "); + } two_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1003,20 +1050,28 @@ class GenericSizedIntArraysView final { if (has_four_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_nibble().IsAggregate() || four_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_nibble\":"); + } else { + emboss_reserved_local_stream->Write("four_nibble: "); + } four_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1032,11 +1087,18 @@ class GenericSizedIntArraysView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1526,7 +1588,7 @@ class GenericSizedEnumArraysView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1537,20 +1599,28 @@ class GenericSizedEnumArraysView final { if (has_one_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_nibble().IsAggregate() || one_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_nibble\":"); + } else { + emboss_reserved_local_stream->Write("one_nibble: "); + } one_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1567,20 +1637,28 @@ class GenericSizedEnumArraysView final { if (has_two_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_nibble().IsAggregate() || two_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_nibble\":"); + } else { + emboss_reserved_local_stream->Write("two_nibble: "); + } two_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1597,20 +1675,28 @@ class GenericSizedEnumArraysView final { if (has_four_nibble().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_nibble().IsAggregate() || four_nibble().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_nibble: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_nibble\":"); + } else { + emboss_reserved_local_stream->Write("four_nibble: "); + } four_nibble().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1626,11 +1712,18 @@ class GenericSizedEnumArraysView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2035,7 +2128,7 @@ class GenericBitArrayContainerView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2046,20 +2139,28 @@ class GenericBitArrayContainerView final { if (has_uint_arrays().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || uint_arrays().IsAggregate() || uint_arrays().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("uint_arrays: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"uint_arrays\":"); + } else { + emboss_reserved_local_stream->Write("uint_arrays: "); + } uint_arrays().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2075,11 +2176,18 @@ class GenericBitArrayContainerView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/float.emb.h b/testdata/golden_cpp/float.emb.h index d43d32e..648636f 100644 --- a/testdata/golden_cpp/float.emb.h +++ b/testdata/golden_cpp/float.emb.h @@ -276,7 +276,7 @@ class GenericFloatsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -287,20 +287,28 @@ class GenericFloatsView final { if (has_float_little_endian().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || float_little_endian().IsAggregate() || float_little_endian().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("float_little_endian: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"float_little_endian\":"); + } else { + emboss_reserved_local_stream->Write("float_little_endian: "); + } float_little_endian().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -317,20 +325,28 @@ class GenericFloatsView final { if (has_float_big_endian().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || float_big_endian().IsAggregate() || float_big_endian().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("float_big_endian: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"float_big_endian\":"); + } else { + emboss_reserved_local_stream->Write("float_big_endian: "); + } float_big_endian().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -346,11 +362,18 @@ class GenericFloatsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -776,7 +799,7 @@ class GenericDoublesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -787,20 +810,28 @@ class GenericDoublesView final { if (has_double_little_endian().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || double_little_endian().IsAggregate() || double_little_endian().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("double_little_endian: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"double_little_endian\":"); + } else { + emboss_reserved_local_stream->Write("double_little_endian: "); + } double_little_endian().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -817,20 +848,28 @@ class GenericDoublesView final { if (has_double_big_endian().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || double_big_endian().IsAggregate() || double_big_endian().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("double_big_endian: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"double_big_endian\":"); + } else { + emboss_reserved_local_stream->Write("double_big_endian: "); + } double_big_endian().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -846,11 +885,18 @@ class GenericDoublesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/imported.emb.h b/testdata/golden_cpp/imported.emb.h index 2217543..554a37d 100644 --- a/testdata/golden_cpp/imported.emb.h +++ b/testdata/golden_cpp/imported.emb.h @@ -224,7 +224,7 @@ class GenericInnerView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -235,20 +235,28 @@ class GenericInnerView final { if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -264,11 +272,18 @@ class GenericInnerView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/imported_genfiles.emb.h b/testdata/golden_cpp/imported_genfiles.emb.h index af1ef31..27b616b 100644 --- a/testdata/golden_cpp/imported_genfiles.emb.h +++ b/testdata/golden_cpp/imported_genfiles.emb.h @@ -1,8 +1,8 @@ /** * Generated by the Emboss compiler. DO NOT EDIT! */ -#ifndef TESTDATA_IMPORTED_GENFILES_EMB_H_ -#define TESTDATA_IMPORTED_GENFILES_EMB_H_ +#ifndef BAZEL_OUT_K8_FASTBUILD_BIN_TESTDATA_IMPORTED_GENFILES_EMB_H_ +#define BAZEL_OUT_K8_FASTBUILD_BIN_TESTDATA_IMPORTED_GENFILES_EMB_H_ #include #include @@ -225,7 +225,7 @@ class GenericInnerView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -236,20 +236,28 @@ class GenericInnerView final { if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -265,11 +273,18 @@ class GenericInnerView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -572,5 +587,5 @@ GenericInnerView< /* NOLINTEND */ -#endif // TESTDATA_IMPORTED_GENFILES_EMB_H_ +#endif // BAZEL_OUT_K8_FASTBUILD_BIN_TESTDATA_IMPORTED_GENFILES_EMB_H_ diff --git a/testdata/golden_cpp/importer.emb.h b/testdata/golden_cpp/importer.emb.h index 75ad2d2..a8460c5 100644 --- a/testdata/golden_cpp/importer.emb.h +++ b/testdata/golden_cpp/importer.emb.h @@ -272,7 +272,7 @@ class GenericOuterView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -283,20 +283,28 @@ class GenericOuterView final { if (has_inner().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || inner().IsAggregate() || inner().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("inner: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"inner\":"); + } else { + emboss_reserved_local_stream->Write("inner: "); + } inner().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -313,20 +321,28 @@ class GenericOuterView final { if (has_inner_gen().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || inner_gen().IsAggregate() || inner_gen().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("inner_gen: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"inner_gen\":"); + } else { + emboss_reserved_local_stream->Write("inner_gen: "); + } inner_gen().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -342,11 +358,18 @@ class GenericOuterView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/importer2.emb.h b/testdata/golden_cpp/importer2.emb.h index ca22c93..1de0032 100644 --- a/testdata/golden_cpp/importer2.emb.h +++ b/testdata/golden_cpp/importer2.emb.h @@ -226,7 +226,7 @@ class GenericOuter2View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -237,20 +237,28 @@ class GenericOuter2View final { if (has_outer().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || outer().IsAggregate() || outer().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("outer: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"outer\":"); + } else { + emboss_reserved_local_stream->Write("outer: "); + } outer().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -266,11 +274,18 @@ class GenericOuter2View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/inline_type.emb.h b/testdata/golden_cpp/inline_type.emb.h index 8f89827..9f4eed6 100644 --- a/testdata/golden_cpp/inline_type.emb.h +++ b/testdata/golden_cpp/inline_type.emb.h @@ -449,7 +449,7 @@ class GenericFooView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -460,20 +460,28 @@ class GenericFooView final { if (has_status().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || status().IsAggregate() || status().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("status: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"status\":"); + } else { + emboss_reserved_local_stream->Write("status: "); + } status().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -490,20 +498,28 @@ class GenericFooView final { if (has_secondary_status().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || secondary_status().IsAggregate() || secondary_status().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("secondary_status: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"secondary_status\":"); + } else { + emboss_reserved_local_stream->Write("secondary_status: "); + } secondary_status().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -519,11 +535,18 @@ class GenericFooView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/int_sizes.emb.h b/testdata/golden_cpp/int_sizes.emb.h index fe697e9..52d193e 100644 --- a/testdata/golden_cpp/int_sizes.emb.h +++ b/testdata/golden_cpp/int_sizes.emb.h @@ -532,7 +532,7 @@ class GenericSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -543,20 +543,28 @@ class GenericSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -573,20 +581,28 @@ class GenericSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -603,20 +619,28 @@ class GenericSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -633,20 +657,28 @@ class GenericSizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -663,20 +695,28 @@ class GenericSizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -693,20 +733,28 @@ class GenericSizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -723,20 +771,28 @@ class GenericSizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -753,20 +809,28 @@ class GenericSizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -782,11 +846,18 @@ class GenericSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/large_array.emb.h b/testdata/golden_cpp/large_array.emb.h index 47b4511..ab8c028 100644 --- a/testdata/golden_cpp/large_array.emb.h +++ b/testdata/golden_cpp/large_array.emb.h @@ -267,7 +267,7 @@ class GenericUIntArrayView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -278,20 +278,28 @@ class GenericUIntArrayView final { if (has_element_count().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || element_count().IsAggregate() || element_count().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("element_count: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"element_count\":"); + } else { + emboss_reserved_local_stream->Write("element_count: "); + } element_count().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -308,20 +316,28 @@ class GenericUIntArrayView final { if (has_elements().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || elements().IsAggregate() || elements().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("elements: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"elements\":"); + } else { + emboss_reserved_local_stream->Write("elements: "); + } elements().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -337,11 +353,18 @@ class GenericUIntArrayView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/nested_structure.emb.h b/testdata/golden_cpp/nested_structure.emb.h index b953e31..9b0f42b 100644 --- a/testdata/golden_cpp/nested_structure.emb.h +++ b/testdata/golden_cpp/nested_structure.emb.h @@ -328,7 +328,7 @@ class GenericContainerView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -339,20 +339,28 @@ class GenericContainerView final { if (has_weight().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || weight().IsAggregate() || weight().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("weight: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"weight\":"); + } else { + emboss_reserved_local_stream->Write("weight: "); + } weight().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -369,20 +377,28 @@ class GenericContainerView final { if (has_important_box().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || important_box().IsAggregate() || important_box().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("important_box: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"important_box\":"); + } else { + emboss_reserved_local_stream->Write("important_box: "); + } important_box().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -399,20 +415,28 @@ class GenericContainerView final { if (has_other_box().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || other_box().IsAggregate() || other_box().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("other_box: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"other_box\":"); + } else { + emboss_reserved_local_stream->Write("other_box: "); + } other_box().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -428,11 +452,18 @@ class GenericContainerView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -862,7 +893,7 @@ class GenericBoxView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -873,20 +904,28 @@ class GenericBoxView final { if (has_id().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || id().IsAggregate() || id().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("id: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"id\":"); + } else { + emboss_reserved_local_stream->Write("id: "); + } id().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -903,20 +942,28 @@ class GenericBoxView final { if (has_count().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || count().IsAggregate() || count().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("count: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"count\":"); + } else { + emboss_reserved_local_stream->Write("count: "); + } count().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -932,11 +979,18 @@ class GenericBoxView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1362,7 +1416,7 @@ class GenericTruckView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1373,20 +1427,28 @@ class GenericTruckView final { if (has_id().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || id().IsAggregate() || id().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("id: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"id\":"); + } else { + emboss_reserved_local_stream->Write("id: "); + } id().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1403,20 +1465,28 @@ class GenericTruckView final { if (has_cargo().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || cargo().IsAggregate() || cargo().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("cargo: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"cargo\":"); + } else { + emboss_reserved_local_stream->Write("cargo: "); + } cargo().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1432,11 +1502,18 @@ class GenericTruckView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/next_keyword.emb.h b/testdata/golden_cpp/next_keyword.emb.h index 624c954..e94cfdd 100644 --- a/testdata/golden_cpp/next_keyword.emb.h +++ b/testdata/golden_cpp/next_keyword.emb.h @@ -356,7 +356,7 @@ class GenericNextKeywordView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -367,20 +367,28 @@ class GenericNextKeywordView final { if (has_value32().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value32().IsAggregate() || value32().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value32: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value32\":"); + } else { + emboss_reserved_local_stream->Write("value32: "); + } value32().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -397,20 +405,28 @@ class GenericNextKeywordView final { if (has_value16().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value16().IsAggregate() || value16().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value16: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value16\":"); + } else { + emboss_reserved_local_stream->Write("value16: "); + } value16().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -427,20 +443,28 @@ class GenericNextKeywordView final { if (has_value8().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value8().IsAggregate() || value8().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value8: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value8\":"); + } else { + emboss_reserved_local_stream->Write("value8: "); + } value8().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -457,20 +481,28 @@ class GenericNextKeywordView final { if (has_value8_offset().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value8_offset().IsAggregate() || value8_offset().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value8_offset: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value8_offset\":"); + } else { + emboss_reserved_local_stream->Write("value8_offset: "); + } value8_offset().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -486,11 +518,18 @@ class GenericNextKeywordView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/no_enum_traits.emb.h b/testdata/golden_cpp/no_enum_traits.emb.h index 5f97e05..5e8f67d 100644 --- a/testdata/golden_cpp/no_enum_traits.emb.h +++ b/testdata/golden_cpp/no_enum_traits.emb.h @@ -14,10 +14,6 @@ #include "runtime/cpp/emboss_prelude.h" -#include "runtime/cpp/emboss_enum_view.h" - -#include "runtime/cpp/emboss_text_util.h" - /* NOLINTBEGIN */ @@ -38,79 +34,6 @@ enum class Foo : ::std::uint64_t { VALUE = static_cast(10LL), }; -template -class EnumTraits; - -template <> -class EnumTraits final { - public: - static bool TryToGetEnumFromName(const char *emboss_reserved_local_name, - Foo *emboss_reserved_local_result) { - if (emboss_reserved_local_name == nullptr) return false; - if (!strcmp("VALUE", emboss_reserved_local_name)) { - *emboss_reserved_local_result = Foo::VALUE; - return true; - } - - return false; - } - - static const char *TryToGetNameFromEnum( - Foo emboss_reserved_local_value) { - switch (emboss_reserved_local_value) { - case Foo::VALUE: return "VALUE"; - - default: return nullptr; - } - } - - static bool EnumIsKnown(Foo emboss_reserved_local_value) { - switch (emboss_reserved_local_value) { - case Foo::VALUE: return true; - - default: - return false; - } - } - - static ::std::ostream &SendToOstream(::std::ostream &emboss_reserved_local_os, - Foo emboss_reserved_local_value) { - const char *emboss_reserved_local_name = - TryToGetNameFromEnum(emboss_reserved_local_value); - if (emboss_reserved_local_name == nullptr) { - emboss_reserved_local_os - << static_cast::type>( - emboss_reserved_local_value); - } else { - emboss_reserved_local_os << emboss_reserved_local_name; - } - return emboss_reserved_local_os; - } -}; - -static inline bool TryToGetEnumFromName( - const char *emboss_reserved_local_name, - Foo *emboss_reserved_local_result) { - return EnumTraits::TryToGetEnumFromName( - emboss_reserved_local_name, emboss_reserved_local_result); -} - -static inline const char *TryToGetNameFromEnum( - Foo emboss_reserved_local_value) { - return EnumTraits::TryToGetNameFromEnum( - emboss_reserved_local_value); -} - -static inline bool EnumIsKnown(Foo emboss_reserved_local_value) { - return EnumTraits::EnumIsKnown(emboss_reserved_local_value); -} - -static inline ::std::ostream &operator<<( - ::std::ostream &emboss_reserved_local_os, - Foo emboss_reserved_local_value) { - return EnumTraits::SendToOstream(emboss_reserved_local_os, - emboss_reserved_local_value); -} @@ -265,92 +188,6 @@ class GenericBarView final { emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); } - template - bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) const { - ::std::string emboss_reserved_local_brace; - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_brace)) - return false; - if (emboss_reserved_local_brace != "{") return false; - for (;;) { - ::std::string emboss_reserved_local_name; - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_name)) - return false; - if (emboss_reserved_local_name == ",") - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_name)) - return false; - if (emboss_reserved_local_name == "}") return true; - ::std::string emboss_reserved_local_colon; - if (!::emboss::support::ReadToken(emboss_reserved_local_stream, - &emboss_reserved_local_colon)) - return false; - if (emboss_reserved_local_colon != ":") return false; - if (emboss_reserved_local_name == "foo") { - if (!foo().UpdateFromTextStream( - emboss_reserved_local_stream)) { - return false; - } - continue; - } - - return false; - } - } - - template - void WriteToTextStream( - Stream *emboss_reserved_local_stream, - ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = - emboss_reserved_local_options.PlusOneIndent(); - if (emboss_reserved_local_options.multiline()) { - emboss_reserved_local_stream->Write("{\n"); - } else { - emboss_reserved_local_stream->Write("{"); - } - bool emboss_reserved_local_wrote_field = false; - if (has_foo().ValueOr(false)) { - if (!emboss_reserved_local_field_options.allow_partial_output() || - foo().IsAggregate() || foo().Ok()) { - if (emboss_reserved_local_field_options.multiline()) { - emboss_reserved_local_stream->Write( - emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } - emboss_reserved_local_stream->Write(" "); - } - emboss_reserved_local_stream->Write("foo: "); - foo().WriteToTextStream(emboss_reserved_local_stream, - emboss_reserved_local_field_options); - emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { - emboss_reserved_local_stream->Write("\n"); - } - } else if (emboss_reserved_local_field_options.allow_partial_output() && - emboss_reserved_local_field_options.comments() && - !foo().IsAggregate() && !foo().Ok()) { - if (emboss_reserved_local_field_options.multiline()) { - emboss_reserved_local_stream->Write( - emboss_reserved_local_field_options.current_indent()); - } - emboss_reserved_local_stream->Write("# foo: UNREADABLE\n"); - } - } - - (void)emboss_reserved_local_wrote_field; - if (emboss_reserved_local_options.multiline()) { - emboss_reserved_local_stream->Write( - emboss_reserved_local_options.current_indent()); - emboss_reserved_local_stream->Write("}"); - } else { - emboss_reserved_local_stream->Write(" }"); - } - } - static constexpr bool IsAggregate() { return true; } diff --git a/testdata/golden_cpp/parameters.emb.h b/testdata/golden_cpp/parameters.emb.h index d60f164..311eae2 100644 --- a/testdata/golden_cpp/parameters.emb.h +++ b/testdata/golden_cpp/parameters.emb.h @@ -681,7 +681,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -692,20 +692,28 @@ if (!parameters_initialized_) return false; if (has_message_id().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || message_id().IsAggregate() || message_id().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("message_id: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"message_id\":"); + } else { + emboss_reserved_local_stream->Write("message_id: "); + } message_id().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -722,20 +730,28 @@ if (!parameters_initialized_) return false; if (has_axes().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || axes().IsAggregate() || axes().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("axes: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"axes\":"); + } else { + emboss_reserved_local_stream->Write("axes: "); + } axes().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -752,20 +768,28 @@ if (!parameters_initialized_) return false; if (has_config().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || config().IsAggregate() || config().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("config: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"config\":"); + } else { + emboss_reserved_local_stream->Write("config: "); + } config().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -782,20 +806,28 @@ if (!parameters_initialized_) return false; if (has_config_vx().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || config_vx().IsAggregate() || config_vx().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("config_vx: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"config_vx\":"); + } else { + emboss_reserved_local_stream->Write("config_vx: "); + } config_vx().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -811,11 +843,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1426,7 +1465,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1437,20 +1476,28 @@ if (!parameters_initialized_) return false; if (has_values().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || values().IsAggregate() || values().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("values: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"values\":"); + } else { + emboss_reserved_local_stream->Write("values: "); + } values().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1467,20 +1514,28 @@ if (!parameters_initialized_) return false; if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1497,20 +1552,28 @@ if (!parameters_initialized_) return false; if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1527,20 +1590,28 @@ if (!parameters_initialized_) return false; if (has_z().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || z().IsAggregate() || z().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("z: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"z\":"); + } else { + emboss_reserved_local_stream->Write("z: "); + } z().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1575,11 +1646,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2208,7 +2286,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2238,20 +2316,28 @@ if (!parameters_initialized_) return false; if (has_axis_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || axis_a().IsAggregate() || axis_a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("axis_a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"axis_a\":"); + } else { + emboss_reserved_local_stream->Write("axis_a: "); + } axis_a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2287,20 +2373,28 @@ if (!parameters_initialized_) return false; if (has_axis_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || axis_b().IsAggregate() || axis_b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("axis_b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"axis_b\":"); + } else { + emboss_reserved_local_stream->Write("axis_b: "); + } axis_b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2316,11 +2410,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2892,7 +2993,7 @@ class GenericAxesEnvelopeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2903,20 +3004,28 @@ class GenericAxesEnvelopeView final { if (has_axis_count().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || axis_count().IsAggregate() || axis_count().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("axis_count: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"axis_count\":"); + } else { + emboss_reserved_local_stream->Write("axis_count: "); + } axis_count().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2933,20 +3042,28 @@ class GenericAxesEnvelopeView final { if (has_axes().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || axes().IsAggregate() || axes().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("axes: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"axes\":"); + } else { + emboss_reserved_local_stream->Write("axes: "); + } axes().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2962,11 +3079,18 @@ class GenericAxesEnvelopeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3654,7 +3778,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3665,20 +3789,28 @@ if (!parameters_initialized_) return false; if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3714,20 +3846,28 @@ if (!parameters_initialized_) return false; if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3744,20 +3884,28 @@ if (!parameters_initialized_) return false; if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3774,20 +3922,28 @@ if (!parameters_initialized_) return false; if (has_z().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || z().IsAggregate() || z().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("z: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"z\":"); + } else { + emboss_reserved_local_stream->Write("z: "); + } z().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3803,11 +3959,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4280,7 +4443,7 @@ class GenericConfigView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4291,20 +4454,28 @@ class GenericConfigView final { if (has_power().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || power().IsAggregate() || power().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("power: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"power\":"); + } else { + emboss_reserved_local_stream->Write("power: "); + } power().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4320,11 +4491,18 @@ class GenericConfigView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4704,7 +4882,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4715,20 +4893,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_power().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || power().IsAggregate() || power().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("power: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"power\":"); + } else { + emboss_reserved_local_stream->Write("power: "); + } power().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4744,11 +4930,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5165,7 +5358,7 @@ class GenericConfigVXView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5176,20 +5369,28 @@ class GenericConfigVXView final { if (has_power().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || power().IsAggregate() || power().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("power: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"power\":"); + } else { + emboss_reserved_local_stream->Write("power: "); + } power().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5206,20 +5407,28 @@ class GenericConfigVXView final { if (has_gain().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || gain().IsAggregate() || gain().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("gain: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"gain\":"); + } else { + emboss_reserved_local_stream->Write("gain: "); + } gain().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5235,11 +5444,18 @@ class GenericConfigVXView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5658,7 +5874,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5669,20 +5885,28 @@ if (!parameters_initialized_) return false; if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5698,11 +5922,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6132,7 +6363,7 @@ class GenericStructContainingStructWithUnusedParameterView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6143,20 +6374,28 @@ class GenericStructContainingStructWithUnusedParameterView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6173,20 +6412,28 @@ class GenericStructContainingStructWithUnusedParameterView final { if (has_swup().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || swup().IsAggregate() || swup().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("swup: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"swup\":"); + } else { + emboss_reserved_local_stream->Write("swup: "); + } swup().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6202,11 +6449,18 @@ class GenericStructContainingStructWithUnusedParameterView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6623,7 +6877,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6634,20 +6888,28 @@ if (!parameters_initialized_) return false; if (has_raw_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || raw_value().IsAggregate() || raw_value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("raw_value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"raw_value\":"); + } else { + emboss_reserved_local_stream->Write("raw_value: "); + } raw_value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6682,11 +6944,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -7183,7 +7452,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -7194,20 +7463,28 @@ if (!parameters_initialized_) return false; if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7224,20 +7501,28 @@ if (!parameters_initialized_) return false; if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7253,11 +7538,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -7687,7 +7979,7 @@ if (!parameters_initialized_) return false; void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -7717,20 +8009,28 @@ if (!parameters_initialized_) return false; if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7746,11 +8046,18 @@ if (!parameters_initialized_) return false; (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -8258,7 +8565,7 @@ class GenericSizedArrayOfBiasedValuesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -8269,20 +8576,28 @@ class GenericSizedArrayOfBiasedValuesView final { if (has_element_count().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || element_count().IsAggregate() || element_count().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("element_count: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"element_count\":"); + } else { + emboss_reserved_local_stream->Write("element_count: "); + } element_count().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8299,20 +8614,28 @@ class GenericSizedArrayOfBiasedValuesView final { if (has_bias().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || bias().IsAggregate() || bias().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("bias: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"bias\":"); + } else { + emboss_reserved_local_stream->Write("bias: "); + } bias().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8329,20 +8652,28 @@ class GenericSizedArrayOfBiasedValuesView final { if (has_values().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || values().IsAggregate() || values().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("values: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"values\":"); + } else { + emboss_reserved_local_stream->Write("values: "); + } values().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8358,11 +8689,18 @@ class GenericSizedArrayOfBiasedValuesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/requires.emb.h b/testdata/golden_cpp/requires.emb.h index 500813b..9094d54 100644 --- a/testdata/golden_cpp/requires.emb.h +++ b/testdata/golden_cpp/requires.emb.h @@ -441,7 +441,7 @@ class GenericRequiresIntegersView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -452,20 +452,28 @@ class GenericRequiresIntegersView final { if (has_zero_through_nine().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_through_nine().IsAggregate() || zero_through_nine().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_through_nine: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_through_nine\":"); + } else { + emboss_reserved_local_stream->Write("zero_through_nine: "); + } zero_through_nine().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -482,20 +490,28 @@ class GenericRequiresIntegersView final { if (has_ten_through_twenty().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_through_twenty().IsAggregate() || ten_through_twenty().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_through_twenty: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_through_twenty\":"); + } else { + emboss_reserved_local_stream->Write("ten_through_twenty: "); + } ten_through_twenty().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -512,20 +528,28 @@ class GenericRequiresIntegersView final { if (has_disjoint().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || disjoint().IsAggregate() || disjoint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("disjoint: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"disjoint\":"); + } else { + emboss_reserved_local_stream->Write("disjoint: "); + } disjoint().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -561,20 +585,28 @@ class GenericRequiresIntegersView final { if (has_alias_of_zero_through_nine().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_of_zero_through_nine().IsAggregate() || alias_of_zero_through_nine().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_of_zero_through_nine: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_of_zero_through_nine\":"); + } else { + emboss_reserved_local_stream->Write("alias_of_zero_through_nine: "); + } alias_of_zero_through_nine().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -591,20 +623,28 @@ class GenericRequiresIntegersView final { if (has_zero_through_nine_plus_five().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || zero_through_nine_plus_five().IsAggregate() || zero_through_nine_plus_five().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("zero_through_nine_plus_five: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"zero_through_nine_plus_five\":"); + } else { + emboss_reserved_local_stream->Write("zero_through_nine_plus_five: "); + } zero_through_nine_plus_five().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -620,11 +660,18 @@ class GenericRequiresIntegersView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1429,7 +1476,7 @@ class GenericEmbossReservedAnonymousField2View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1440,20 +1487,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1470,20 +1525,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1500,20 +1563,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_must_be_true().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || must_be_true().IsAggregate() || must_be_true().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("must_be_true: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"must_be_true\":"); + } else { + emboss_reserved_local_stream->Write("must_be_true: "); + } must_be_true().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1530,20 +1601,28 @@ class GenericEmbossReservedAnonymousField2View final { if (has_must_be_false().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || must_be_false().IsAggregate() || must_be_false().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("must_be_false: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"must_be_false\":"); + } else { + emboss_reserved_local_stream->Write("must_be_false: "); + } must_be_false().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1559,11 +1638,18 @@ class GenericEmbossReservedAnonymousField2View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2014,7 +2100,7 @@ class GenericRequiresBoolsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2025,20 +2111,28 @@ class GenericRequiresBoolsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2055,20 +2149,28 @@ class GenericRequiresBoolsView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2085,20 +2187,28 @@ class GenericRequiresBoolsView final { if (has_must_be_true().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || must_be_true().IsAggregate() || must_be_true().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("must_be_true: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"must_be_true\":"); + } else { + emboss_reserved_local_stream->Write("must_be_true: "); + } must_be_true().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2115,20 +2225,28 @@ class GenericRequiresBoolsView final { if (has_must_be_false().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || must_be_false().IsAggregate() || must_be_false().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("must_be_false: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"must_be_false\":"); + } else { + emboss_reserved_local_stream->Write("must_be_false: "); + } must_be_false().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2164,20 +2282,28 @@ class GenericRequiresBoolsView final { if (has_alias_of_a_must_be_true().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_of_a_must_be_true().IsAggregate() || alias_of_a_must_be_true().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_of_a_must_be_true: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_of_a_must_be_true\":"); + } else { + emboss_reserved_local_stream->Write("alias_of_a_must_be_true: "); + } alias_of_a_must_be_true().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2193,11 +2319,18 @@ class GenericRequiresBoolsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2978,7 +3111,7 @@ class GenericRequiresEnumsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2989,20 +3122,28 @@ class GenericRequiresEnumsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3019,20 +3160,28 @@ class GenericRequiresEnumsView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3049,20 +3198,28 @@ class GenericRequiresEnumsView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3098,20 +3255,28 @@ class GenericRequiresEnumsView final { if (has_alias_of_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_of_a().IsAggregate() || alias_of_a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_of_a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_of_a\":"); + } else { + emboss_reserved_local_stream->Write("alias_of_a: "); + } alias_of_a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3127,11 +3292,18 @@ class GenericRequiresEnumsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3831,7 +4003,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3842,20 +4014,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3872,20 +4052,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_b_exists().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b_exists().IsAggregate() || b_exists().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b_exists: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b_exists\":"); + } else { + emboss_reserved_local_stream->Write("b_exists: "); + } b_exists().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3902,20 +4090,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3932,20 +4128,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_b_true().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b_true().IsAggregate() || b_true().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b_true: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b_true\":"); + } else { + emboss_reserved_local_stream->Write("b_true: "); + } b_true().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3961,11 +4165,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4430,7 +4641,7 @@ class GenericRequiresWithOptionalFieldsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4441,20 +4652,28 @@ class GenericRequiresWithOptionalFieldsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4471,20 +4690,28 @@ class GenericRequiresWithOptionalFieldsView final { if (has_b_exists().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b_exists().IsAggregate() || b_exists().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b_exists: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b_exists\":"); + } else { + emboss_reserved_local_stream->Write("b_exists: "); + } b_exists().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4501,20 +4728,28 @@ class GenericRequiresWithOptionalFieldsView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4531,20 +4766,28 @@ class GenericRequiresWithOptionalFieldsView final { if (has_b_true().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b_true().IsAggregate() || b_true().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b_true: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b_true\":"); + } else { + emboss_reserved_local_stream->Write("b_true: "); + } b_true().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4560,11 +4803,18 @@ class GenericRequiresWithOptionalFieldsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4981,7 +5231,7 @@ class GenericElementView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4992,20 +5242,28 @@ class GenericElementView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5021,11 +5279,18 @@ class GenericElementView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5395,7 +5660,7 @@ class GenericRequiresInArrayElementsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5406,20 +5671,28 @@ class GenericRequiresInArrayElementsView final { if (has_xs().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xs().IsAggregate() || xs().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xs: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xs\":"); + } else { + emboss_reserved_local_stream->Write("xs: "); + } xs().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5435,11 +5708,18 @@ class GenericRequiresInArrayElementsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/start_size_range.emb.h b/testdata/golden_cpp/start_size_range.emb.h index d9f0166..05ecb69 100644 --- a/testdata/golden_cpp/start_size_range.emb.h +++ b/testdata/golden_cpp/start_size_range.emb.h @@ -355,7 +355,7 @@ class GenericStartSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -366,20 +366,28 @@ class GenericStartSizeView final { if (has_size().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || size().IsAggregate() || size().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("size: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"size\":"); + } else { + emboss_reserved_local_stream->Write("size: "); + } size().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -396,20 +404,28 @@ class GenericStartSizeView final { if (has_start_size_constants().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || start_size_constants().IsAggregate() || start_size_constants().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("start_size_constants: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"start_size_constants\":"); + } else { + emboss_reserved_local_stream->Write("start_size_constants: "); + } start_size_constants().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -426,20 +442,28 @@ class GenericStartSizeView final { if (has_payload().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || payload().IsAggregate() || payload().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("payload: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"payload\":"); + } else { + emboss_reserved_local_stream->Write("payload: "); + } payload().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -456,20 +480,28 @@ class GenericStartSizeView final { if (has_counter().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || counter().IsAggregate() || counter().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("counter: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"counter\":"); + } else { + emboss_reserved_local_stream->Write("counter: "); + } counter().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -485,11 +517,18 @@ class GenericStartSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/subtypes.emb.h b/testdata/golden_cpp/subtypes.emb.h index 860d554..d302653 100644 --- a/testdata/golden_cpp/subtypes.emb.h +++ b/testdata/golden_cpp/subtypes.emb.h @@ -407,7 +407,7 @@ class GenericInInView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -437,20 +437,28 @@ class GenericInInView final { if (has_field_enum().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || field_enum().IsAggregate() || field_enum().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("field_enum: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"field_enum\":"); + } else { + emboss_reserved_local_stream->Write("field_enum: "); + } field_enum().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -467,20 +475,28 @@ class GenericInInView final { if (has_in_2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_2().IsAggregate() || in_2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_2\":"); + } else { + emboss_reserved_local_stream->Write("in_2: "); + } in_2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -496,11 +512,18 @@ class GenericInInView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1126,7 +1149,7 @@ class GenericInView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1137,20 +1160,28 @@ class GenericInView final { if (has_in_in_1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_1().IsAggregate() || in_in_1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_1\":"); + } else { + emboss_reserved_local_stream->Write("in_in_1: "); + } in_in_1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1167,20 +1198,28 @@ class GenericInView final { if (has_in_in_2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_2().IsAggregate() || in_in_2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_2\":"); + } else { + emboss_reserved_local_stream->Write("in_in_2: "); + } in_in_2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1197,20 +1236,28 @@ class GenericInView final { if (has_in_in_in_1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_in_1().IsAggregate() || in_in_in_1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_in_1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_in_1\":"); + } else { + emboss_reserved_local_stream->Write("in_in_in_1: "); + } in_in_in_1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1227,20 +1274,28 @@ class GenericInView final { if (has_in_2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_2().IsAggregate() || in_2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_2\":"); + } else { + emboss_reserved_local_stream->Write("in_2: "); + } in_2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1257,20 +1312,28 @@ class GenericInView final { if (has_name_collision().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || name_collision().IsAggregate() || name_collision().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("name_collision: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"name_collision\":"); + } else { + emboss_reserved_local_stream->Write("name_collision: "); + } name_collision().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1287,20 +1350,28 @@ class GenericInView final { if (has_name_collision_check().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || name_collision_check().IsAggregate() || name_collision_check().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("name_collision_check: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"name_collision_check\":"); + } else { + emboss_reserved_local_stream->Write("name_collision_check: "); + } name_collision_check().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1316,11 +1387,18 @@ class GenericInView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1761,7 +1839,7 @@ class GenericIn2View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1772,20 +1850,28 @@ class GenericIn2View final { if (has_field_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || field_byte().IsAggregate() || field_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("field_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"field_byte\":"); + } else { + emboss_reserved_local_stream->Write("field_byte: "); + } field_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1801,11 +1887,18 @@ class GenericIn2View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2476,7 +2569,7 @@ class GenericOutView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2487,20 +2580,28 @@ class GenericOutView final { if (has_in_1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_1().IsAggregate() || in_1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_1\":"); + } else { + emboss_reserved_local_stream->Write("in_1: "); + } in_1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2517,20 +2618,28 @@ class GenericOutView final { if (has_in_2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_2().IsAggregate() || in_2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_2\":"); + } else { + emboss_reserved_local_stream->Write("in_2: "); + } in_2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2547,20 +2656,28 @@ class GenericOutView final { if (has_in_in_1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_1().IsAggregate() || in_in_1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_1\":"); + } else { + emboss_reserved_local_stream->Write("in_in_1: "); + } in_in_1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2577,20 +2694,28 @@ class GenericOutView final { if (has_in_in_2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_2().IsAggregate() || in_in_2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_2\":"); + } else { + emboss_reserved_local_stream->Write("in_in_2: "); + } in_in_2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2607,20 +2732,28 @@ class GenericOutView final { if (has_in_in_in_1().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_in_1().IsAggregate() || in_in_in_1().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_in_1: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_in_1\":"); + } else { + emboss_reserved_local_stream->Write("in_in_in_1: "); + } in_in_in_1().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2637,20 +2770,28 @@ class GenericOutView final { if (has_in_in_in_2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || in_in_in_2().IsAggregate() || in_in_in_2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("in_in_in_2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"in_in_in_2\":"); + } else { + emboss_reserved_local_stream->Write("in_in_in_2: "); + } in_in_in_2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2667,20 +2808,28 @@ class GenericOutView final { if (has_name_collision().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || name_collision().IsAggregate() || name_collision().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("name_collision: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"name_collision\":"); + } else { + emboss_reserved_local_stream->Write("name_collision: "); + } name_collision().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2697,20 +2846,28 @@ class GenericOutView final { if (has_nested_constant_check().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || nested_constant_check().IsAggregate() || nested_constant_check().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("nested_constant_check: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"nested_constant_check\":"); + } else { + emboss_reserved_local_stream->Write("nested_constant_check: "); + } nested_constant_check().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2726,11 +2883,18 @@ class GenericOutView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/text_format.emb.h b/testdata/golden_cpp/text_format.emb.h index 46f257d..1a9fdfd 100644 --- a/testdata/golden_cpp/text_format.emb.h +++ b/testdata/golden_cpp/text_format.emb.h @@ -47,6 +47,32 @@ namespace StructWithSkippedStructureFields { template class GenericStructWithSkippedStructureFieldsView; +enum class JsonTestEnum : ::std::uint64_t; + +namespace JsonTestArrayStruct { + +} // namespace JsonTestArrayStruct + + +template +class GenericJsonTestArrayStructView; + +namespace JsonTestStruct { +namespace EmbossReservedAnonymousField1 { + +} // namespace EmbossReservedAnonymousField1 + + +template +class GenericEmbossReservedAnonymousField1View; + + +} // namespace JsonTestStruct + + +template +class GenericJsonTestStructView; + @@ -284,7 +310,7 @@ class GenericVanillaView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -295,20 +321,28 @@ class GenericVanillaView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -325,20 +359,28 @@ class GenericVanillaView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -354,11 +396,18 @@ class GenericVanillaView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -369,7 +418,7 @@ class GenericVanillaView final { public: typename ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> a() const; ::emboss::support::Maybe has_a() const; @@ -377,7 +426,7 @@ class GenericVanillaView final { public: typename ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> b() const; ::emboss::support::Maybe has_b() const; @@ -828,7 +877,7 @@ class GenericStructWithSkippedFieldsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -839,20 +888,28 @@ class GenericStructWithSkippedFieldsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -869,20 +926,28 @@ class GenericStructWithSkippedFieldsView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -898,11 +963,18 @@ class GenericStructWithSkippedFieldsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -913,7 +985,7 @@ class GenericStructWithSkippedFieldsView final { public: typename ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> a() const; ::emboss::support::Maybe has_a() const; @@ -921,7 +993,7 @@ class GenericStructWithSkippedFieldsView final { public: typename ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> b() const; ::emboss::support::Maybe has_b() const; @@ -929,7 +1001,7 @@ class GenericStructWithSkippedFieldsView final { public: typename ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> c() const; ::emboss::support::Maybe has_c() const; @@ -1380,7 +1452,7 @@ class GenericStructWithSkippedStructureFieldsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1391,20 +1463,28 @@ class GenericStructWithSkippedStructureFieldsView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1421,20 +1501,28 @@ class GenericStructWithSkippedStructureFieldsView final { if (has_c().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || c().IsAggregate() || c().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("c: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"c\":"); + } else { + emboss_reserved_local_stream->Write("c: "); + } c().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1450,11 +1538,18 @@ class GenericStructWithSkippedStructureFieldsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1646,218 +1741,3522 @@ MakeAlignedStructWithSkippedStructureFieldsView( emboss_reserved_local_data, emboss_reserved_local_size); } +enum class JsonTestEnum : ::std::uint64_t { + ZERO = static_cast(0LL), + ONE = static_cast(1LL), + TWO = static_cast(2LL), + THREE = static_cast(3LL), + FOUR = static_cast(4LL), -namespace Vanilla { - -} // namespace Vanilla - - -template -inline typename ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> +}; +template +class EnumTraits; - GenericVanillaView::a() - const { +template <> +class EnumTraits final { + public: + static bool TryToGetEnumFromName(const char *emboss_reserved_local_name, + JsonTestEnum *emboss_reserved_local_result) { + if (emboss_reserved_local_name == nullptr) return false; + if (!strcmp("ZERO", emboss_reserved_local_name)) { + *emboss_reserved_local_result = JsonTestEnum::ZERO; + return true; + } - if ( has_a().ValueOr(false)) { + if (!strcmp("ONE", emboss_reserved_local_name)) { + *emboss_reserved_local_result = JsonTestEnum::ONE; + return true; + } - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); - if (emboss_reserved_local_size.Known() && - emboss_reserved_local_size.ValueOr(0) >= 0 && - emboss_reserved_local_offset.Known() && - emboss_reserved_local_offset.ValueOr(0) >= 0) { - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + if (!strcmp("TWO", emboss_reserved_local_name)) { + *emboss_reserved_local_result = JsonTestEnum::TWO; + return true; + } -( - backing_ - .template GetOffsetStorage<0, - 0>( - emboss_reserved_local_offset.ValueOrDefault(), - emboss_reserved_local_size.ValueOrDefault())); + if (!strcmp("THREE", emboss_reserved_local_name)) { + *emboss_reserved_local_result = JsonTestEnum::THREE; + return true; } - } - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> -(); -} + if (!strcmp("FOUR", emboss_reserved_local_name)) { + *emboss_reserved_local_result = JsonTestEnum::FOUR; + return true; + } -template -inline ::emboss::support::Maybe -GenericVanillaView::has_a() const { - return ::emboss::support::Maybe(true); -} + return false; + } + static const char *TryToGetNameFromEnum( + JsonTestEnum emboss_reserved_local_value) { + switch (emboss_reserved_local_value) { + case JsonTestEnum::ZERO: return "ZERO"; -template -inline typename ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + case JsonTestEnum::ONE: return "ONE"; - GenericVanillaView::b() - const { + case JsonTestEnum::TWO: return "TWO"; - if ( has_b().ValueOr(false)) { + case JsonTestEnum::THREE: return "THREE"; - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(1LL)); - if (emboss_reserved_local_size.Known() && - emboss_reserved_local_size.ValueOr(0) >= 0 && - emboss_reserved_local_offset.Known() && - emboss_reserved_local_offset.ValueOr(0) >= 0) { - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + case JsonTestEnum::FOUR: return "FOUR"; -( - backing_ - .template GetOffsetStorage<0, - 1>( - emboss_reserved_local_offset.ValueOrDefault(), - emboss_reserved_local_size.ValueOrDefault())); + default: return nullptr; } } - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> - -(); -} -template -inline ::emboss::support::Maybe -GenericVanillaView::has_b() const { - return ::emboss::support::Maybe(true); -} + static bool EnumIsKnown(JsonTestEnum emboss_reserved_local_value) { + switch (emboss_reserved_local_value) { + case JsonTestEnum::ZERO: return true; + case JsonTestEnum::ONE: return true; -namespace Vanilla { -inline constexpr ::std::int32_t IntrinsicSizeInBytes() { - return ::emboss::support::Maybe(static_cast(2LL)).ValueOrDefault(); -} -} // namespace Vanilla + case JsonTestEnum::TWO: return true; -template -inline constexpr ::std::int32_t -GenericVanillaView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { - return Vanilla::IntrinsicSizeInBytes(); -} + case JsonTestEnum::THREE: return true; -template -inline constexpr ::std::int32_t -GenericVanillaView< - Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { - return Vanilla::IntrinsicSizeInBytes(); -} + case JsonTestEnum::FOUR: return true; -namespace Vanilla { -inline constexpr ::std::int32_t MaxSizeInBytes() { - return ::emboss::support::Maybe(static_cast(2LL)).ValueOrDefault(); -} -} // namespace Vanilla + default: + return false; + } + } -template -inline constexpr ::std::int32_t -GenericVanillaView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { - return Vanilla::MaxSizeInBytes(); -} + static ::std::ostream &SendToOstream(::std::ostream &emboss_reserved_local_os, + JsonTestEnum emboss_reserved_local_value) { + const char *emboss_reserved_local_name = + TryToGetNameFromEnum(emboss_reserved_local_value); + if (emboss_reserved_local_name == nullptr) { + emboss_reserved_local_os + << static_cast::type>( + emboss_reserved_local_value); + } else { + emboss_reserved_local_os << emboss_reserved_local_name; + } + return emboss_reserved_local_os; + } +}; -template -inline constexpr ::std::int32_t -GenericVanillaView< - Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { - return Vanilla::MaxSizeInBytes(); +static inline bool TryToGetEnumFromName( + const char *emboss_reserved_local_name, + JsonTestEnum *emboss_reserved_local_result) { + return EnumTraits::TryToGetEnumFromName( + emboss_reserved_local_name, emboss_reserved_local_result); } -namespace Vanilla { -inline constexpr ::std::int32_t MinSizeInBytes() { - return ::emboss::support::Maybe(static_cast(2LL)).ValueOrDefault(); +static inline const char *TryToGetNameFromEnum( + JsonTestEnum emboss_reserved_local_value) { + return EnumTraits::TryToGetNameFromEnum( + emboss_reserved_local_value); } -} // namespace Vanilla -template -inline constexpr ::std::int32_t -GenericVanillaView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { - return Vanilla::MinSizeInBytes(); +static inline bool EnumIsKnown(JsonTestEnum emboss_reserved_local_value) { + return EnumTraits::EnumIsKnown(emboss_reserved_local_value); } -template -inline constexpr ::std::int32_t -GenericVanillaView< - Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { - return Vanilla::MinSizeInBytes(); +static inline ::std::ostream &operator<<( + ::std::ostream &emboss_reserved_local_os, + JsonTestEnum emboss_reserved_local_value) { + return EnumTraits::SendToOstream(emboss_reserved_local_os, + emboss_reserved_local_value); } -namespace StructWithSkippedFields { - -} // namespace StructWithSkippedFields -template -inline typename ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> - GenericStructWithSkippedFieldsView::a() - const { - if ( has_a().ValueOr(false)) { - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); - if (emboss_reserved_local_size.Known() && - emboss_reserved_local_size.ValueOr(0) >= 0 && - emboss_reserved_local_offset.Known() && - emboss_reserved_local_offset.ValueOr(0) >= 0) { - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> -( - backing_ - .template GetOffsetStorage<0, - 0>( - emboss_reserved_local_offset.ValueOrDefault(), - emboss_reserved_local_size.ValueOrDefault())); - } - } - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> +namespace JsonTestArrayStruct { -(); -} +} // namespace JsonTestArrayStruct -template -inline ::emboss::support::Maybe -GenericStructWithSkippedFieldsView::has_a() const { - return ::emboss::support::Maybe(true); -} +template +struct EmbossReservedInternalIsGenericJsonTestArrayStructView; template -inline typename ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> - - GenericStructWithSkippedFieldsView::b() - const { +class GenericJsonTestArrayStructView final { + public: + GenericJsonTestArrayStructView() : backing_() {} + explicit GenericJsonTestArrayStructView( + Storage emboss_reserved_local_bytes) + : backing_(emboss_reserved_local_bytes) + {} - if ( has_b().ValueOr(false)) { + template + GenericJsonTestArrayStructView( + const GenericJsonTestArrayStructView &emboss_reserved_local_other) + : backing_{emboss_reserved_local_other.BackingStorage()} + {} - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(1LL)); - if (emboss_reserved_local_size.Known() && - emboss_reserved_local_size.ValueOr(0) >= 0 && - emboss_reserved_local_offset.Known() && - emboss_reserved_local_offset.ValueOr(0) >= 0) { + template ::type>::type>::value>::type> + explicit GenericJsonTestArrayStructView( + Arg &&emboss_reserved_local_arg) + : backing_(::std::forward( + emboss_reserved_local_arg)) + {} + template + explicit GenericJsonTestArrayStructView( + Arg0 &&emboss_reserved_local_arg0, + Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) + : backing_(::std::forward(emboss_reserved_local_arg0), + ::std::forward(emboss_reserved_local_arg1), + ::std::forward( + emboss_reserved_local_args)...) + {} + + template + GenericJsonTestArrayStructView &operator=( + const GenericJsonTestArrayStructView &emboss_reserved_local_other) { + backing_ = emboss_reserved_local_other.BackingStorage(); + return *this; + } + + + + bool Ok() const { + if (!IsComplete()) return false; + + if (!has_element_one().Known()) return false; + if (has_element_one().ValueOrDefault() && !element_one().Ok()) return false; + + + if (!has_element_two().Known()) return false; + if (has_element_two().ValueOrDefault() && !element_two().Ok()) return false; + + + if (!has_element_three().Known()) return false; + if (has_element_three().ValueOrDefault() && !element_three().Ok()) return false; + + + if (!has_element_four().Known()) return false; + if (has_element_four().ValueOrDefault() && !element_four().Ok()) return false; + + + if (!has_IntrinsicSizeInBytes().Known()) return false; + if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + + if (!has_MaxSizeInBytes().Known()) return false; + if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + + if (!has_MinSizeInBytes().Known()) return false; + if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + + + return true; + } + Storage BackingStorage() const { return backing_; } + bool IsComplete() const { + return backing_.Ok() && IntrinsicSizeInBytes().Ok() && + backing_.SizeInBytes() >= + static_cast( + IntrinsicSizeInBytes().UncheckedRead()); + } + static constexpr ::std::size_t SizeInBytes() { + return static_cast(IntrinsicSizeInBytes().Read()); + } + static constexpr bool SizeIsKnown() { + return IntrinsicSizeInBytes().Ok(); + } + + + template + bool Equals( + GenericJsonTestArrayStructView emboss_reserved_local_other) const { + + if (!has_element_one().Known()) return false; + if (!emboss_reserved_local_other.has_element_one().Known()) return false; + + if (emboss_reserved_local_other.has_element_one().ValueOrDefault() && + !has_element_one().ValueOrDefault()) + return false; + if (has_element_one().ValueOrDefault() && + !emboss_reserved_local_other.has_element_one().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_element_one().ValueOrDefault() && + has_element_one().ValueOrDefault() && + !element_one().Equals(emboss_reserved_local_other.element_one())) + return false; + + + + if (!has_element_two().Known()) return false; + if (!emboss_reserved_local_other.has_element_two().Known()) return false; + + if (emboss_reserved_local_other.has_element_two().ValueOrDefault() && + !has_element_two().ValueOrDefault()) + return false; + if (has_element_two().ValueOrDefault() && + !emboss_reserved_local_other.has_element_two().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_element_two().ValueOrDefault() && + has_element_two().ValueOrDefault() && + !element_two().Equals(emboss_reserved_local_other.element_two())) + return false; + + + + if (!has_element_three().Known()) return false; + if (!emboss_reserved_local_other.has_element_three().Known()) return false; + + if (emboss_reserved_local_other.has_element_three().ValueOrDefault() && + !has_element_three().ValueOrDefault()) + return false; + if (has_element_three().ValueOrDefault() && + !emboss_reserved_local_other.has_element_three().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_element_three().ValueOrDefault() && + has_element_three().ValueOrDefault() && + !element_three().Equals(emboss_reserved_local_other.element_three())) + return false; + + + + if (!has_element_four().Known()) return false; + if (!emboss_reserved_local_other.has_element_four().Known()) return false; + + if (emboss_reserved_local_other.has_element_four().ValueOrDefault() && + !has_element_four().ValueOrDefault()) + return false; + if (has_element_four().ValueOrDefault() && + !emboss_reserved_local_other.has_element_four().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_element_four().ValueOrDefault() && + has_element_four().ValueOrDefault() && + !element_four().Equals(emboss_reserved_local_other.element_four())) + return false; + + return true; + } + template + bool UncheckedEquals( + GenericJsonTestArrayStructView emboss_reserved_local_other) const { + + if (emboss_reserved_local_other.has_element_one().ValueOr(false) && + !has_element_one().ValueOr(false)) + return false; + if (has_element_one().ValueOr(false) && + !emboss_reserved_local_other.has_element_one().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_element_one().ValueOr(false) && + has_element_one().ValueOr(false) && + !element_one().UncheckedEquals(emboss_reserved_local_other.element_one())) + return false; + + + + if (emboss_reserved_local_other.has_element_two().ValueOr(false) && + !has_element_two().ValueOr(false)) + return false; + if (has_element_two().ValueOr(false) && + !emboss_reserved_local_other.has_element_two().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_element_two().ValueOr(false) && + has_element_two().ValueOr(false) && + !element_two().UncheckedEquals(emboss_reserved_local_other.element_two())) + return false; + + + + if (emboss_reserved_local_other.has_element_three().ValueOr(false) && + !has_element_three().ValueOr(false)) + return false; + if (has_element_three().ValueOr(false) && + !emboss_reserved_local_other.has_element_three().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_element_three().ValueOr(false) && + has_element_three().ValueOr(false) && + !element_three().UncheckedEquals(emboss_reserved_local_other.element_three())) + return false; + + + + if (emboss_reserved_local_other.has_element_four().ValueOr(false) && + !has_element_four().ValueOr(false)) + return false; + if (has_element_four().ValueOr(false) && + !emboss_reserved_local_other.has_element_four().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_element_four().ValueOr(false) && + has_element_four().ValueOr(false) && + !element_four().UncheckedEquals(emboss_reserved_local_other.element_four())) + return false; + + return true; + } + template + void UncheckedCopyFrom( + GenericJsonTestArrayStructView emboss_reserved_local_other) const { + backing_.UncheckedCopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); + } + + template + void CopyFrom( + GenericJsonTestArrayStructView emboss_reserved_local_other) const { + backing_.CopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); + } + template + bool TryToCopyFrom( + GenericJsonTestArrayStructView emboss_reserved_local_other) const { + return emboss_reserved_local_other.Ok() && backing_.TryToCopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); + } + + template + bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) const { + ::std::string emboss_reserved_local_brace; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_brace)) + return false; + if (emboss_reserved_local_brace != "{") return false; + for (;;) { + ::std::string emboss_reserved_local_name; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_name)) + return false; + if (emboss_reserved_local_name == ",") + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_name)) + return false; + if (emboss_reserved_local_name == "}") return true; + ::std::string emboss_reserved_local_colon; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_colon)) + return false; + if (emboss_reserved_local_colon != ":") return false; + if (emboss_reserved_local_name == "element_one") { + if (!element_one().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "element_two") { + if (!element_two().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "element_three") { + if (!element_three().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "element_four") { + if (!element_four().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + return false; + } + } + + template + void WriteToTextStream( + Stream *emboss_reserved_local_stream, + ::emboss::TextOutputOptions emboss_reserved_local_options) const { + auto emboss_reserved_local_field_options = + emboss_reserved_local_options.PlusOneIndent(); + if (emboss_reserved_local_options.multiline()) { + emboss_reserved_local_stream->Write("{\n"); + } else { + emboss_reserved_local_stream->Write("{"); + } + bool emboss_reserved_local_wrote_field = false; + if (has_element_one().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + element_one().IsAggregate() || element_one().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"element_one\":"); + } else { + emboss_reserved_local_stream->Write("element_one: "); + } + element_one().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !element_one().IsAggregate() && !element_one().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# element_one: UNREADABLE\n"); + } + } + + if (has_element_two().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + element_two().IsAggregate() || element_two().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"element_two\":"); + } else { + emboss_reserved_local_stream->Write("element_two: "); + } + element_two().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !element_two().IsAggregate() && !element_two().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# element_two: UNREADABLE\n"); + } + } + + if (has_element_three().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + element_three().IsAggregate() || element_three().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"element_three\":"); + } else { + emboss_reserved_local_stream->Write("element_three: "); + } + element_three().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !element_three().IsAggregate() && !element_three().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# element_three: UNREADABLE\n"); + } + } + + if (has_element_four().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + element_four().IsAggregate() || element_four().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"element_four\":"); + } else { + emboss_reserved_local_stream->Write("element_four: "); + } + element_four().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !element_four().IsAggregate() && !element_four().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# element_four: UNREADABLE\n"); + } + } + + (void)emboss_reserved_local_wrote_field; + if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + emboss_reserved_local_stream->Write( + emboss_reserved_local_options.current_indent()); + emboss_reserved_local_stream->Write("}"); + } else { + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); + } + } + + + + static constexpr bool IsAggregate() { return true; } + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + element_one() const; + ::emboss::support::Maybe has_element_one() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + element_two() const; + ::emboss::support::Maybe has_element_two() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + element_three() const; + ::emboss::support::Maybe has_element_three() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + element_four() const; + ::emboss::support::Maybe has_element_four() const; + + public: + class EmbossReservedDollarVirtualIntrinsicSizeInBytesView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualIntrinsicSizeInBytesView() {} + EmbossReservedDollarVirtualIntrinsicSizeInBytesView(const EmbossReservedDollarVirtualIntrinsicSizeInBytesView &) = default; + EmbossReservedDollarVirtualIntrinsicSizeInBytesView(EmbossReservedDollarVirtualIntrinsicSizeInBytesView &&) = default; + EmbossReservedDollarVirtualIntrinsicSizeInBytesView &operator=(const EmbossReservedDollarVirtualIntrinsicSizeInBytesView &) = + default; + EmbossReservedDollarVirtualIntrinsicSizeInBytesView &operator=(EmbossReservedDollarVirtualIntrinsicSizeInBytesView &&) = + default; + ~EmbossReservedDollarVirtualIntrinsicSizeInBytesView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualIntrinsicSizeInBytesView IntrinsicSizeInBytes() { + return EmbossReservedDollarVirtualIntrinsicSizeInBytesView(); + } + static constexpr ::emboss::support::Maybe has_IntrinsicSizeInBytes() { + return ::emboss::support::Maybe(true); + } + + public: + class EmbossReservedDollarVirtualMaxSizeInBytesView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualMaxSizeInBytesView() {} + EmbossReservedDollarVirtualMaxSizeInBytesView(const EmbossReservedDollarVirtualMaxSizeInBytesView &) = default; + EmbossReservedDollarVirtualMaxSizeInBytesView(EmbossReservedDollarVirtualMaxSizeInBytesView &&) = default; + EmbossReservedDollarVirtualMaxSizeInBytesView &operator=(const EmbossReservedDollarVirtualMaxSizeInBytesView &) = + default; + EmbossReservedDollarVirtualMaxSizeInBytesView &operator=(EmbossReservedDollarVirtualMaxSizeInBytesView &&) = + default; + ~EmbossReservedDollarVirtualMaxSizeInBytesView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualMaxSizeInBytesView MaxSizeInBytes() { + return EmbossReservedDollarVirtualMaxSizeInBytesView(); + } + static constexpr ::emboss::support::Maybe has_MaxSizeInBytes() { + return ::emboss::support::Maybe(true); + } + + public: + class EmbossReservedDollarVirtualMinSizeInBytesView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualMinSizeInBytesView() {} + EmbossReservedDollarVirtualMinSizeInBytesView(const EmbossReservedDollarVirtualMinSizeInBytesView &) = default; + EmbossReservedDollarVirtualMinSizeInBytesView(EmbossReservedDollarVirtualMinSizeInBytesView &&) = default; + EmbossReservedDollarVirtualMinSizeInBytesView &operator=(const EmbossReservedDollarVirtualMinSizeInBytesView &) = + default; + EmbossReservedDollarVirtualMinSizeInBytesView &operator=(EmbossReservedDollarVirtualMinSizeInBytesView &&) = + default; + ~EmbossReservedDollarVirtualMinSizeInBytesView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualMinSizeInBytesView MinSizeInBytes() { + return EmbossReservedDollarVirtualMinSizeInBytesView(); + } + static constexpr ::emboss::support::Maybe has_MinSizeInBytes() { + return ::emboss::support::Maybe(true); + } + + + + private: + Storage backing_; + + + + template + friend class GenericJsonTestArrayStructView; +}; +using JsonTestArrayStructView = + GenericJsonTestArrayStructView; +using JsonTestArrayStructWriter = + GenericJsonTestArrayStructView; + +template +struct EmbossReservedInternalIsGenericJsonTestArrayStructView { + static constexpr const bool value = false; +}; + +template +struct EmbossReservedInternalIsGenericJsonTestArrayStructView< + GenericJsonTestArrayStructView> { + static constexpr const bool value = true; +}; + +template +inline GenericJsonTestArrayStructView< + /**/ ::emboss::support::ContiguousBuffer< + typename ::std::remove_reference< + decltype(*::std::declval()->data())>::type, + 1, 0>> +MakeJsonTestArrayStructView( T &&emboss_reserved_local_arg) { + return GenericJsonTestArrayStructView< + /**/ ::emboss::support::ContiguousBuffer< + typename ::std::remove_reference()->data())>::type, + 1, 0>>( + ::std::forward(emboss_reserved_local_arg)); +} + +template +inline GenericJsonTestArrayStructView> +MakeJsonTestArrayStructView( T *emboss_reserved_local_data, + ::std::size_t emboss_reserved_local_size) { + return GenericJsonTestArrayStructView>( + emboss_reserved_local_data, + emboss_reserved_local_size); +} + +template +inline GenericJsonTestArrayStructView< + /**/ ::emboss::support::ContiguousBuffer> +MakeAlignedJsonTestArrayStructView( + T *emboss_reserved_local_data, + ::std::size_t emboss_reserved_local_size) { + return GenericJsonTestArrayStructView< + /**/ ::emboss::support::ContiguousBuffer>( + emboss_reserved_local_data, + emboss_reserved_local_size); +} + + + + + + + + + + + + + +namespace JsonTestStruct { + + + + +namespace EmbossReservedAnonymousField1 { + +} // namespace EmbossReservedAnonymousField1 + + +template +struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View; + +template +class GenericEmbossReservedAnonymousField1View final { + public: + GenericEmbossReservedAnonymousField1View() : backing_() {} + explicit GenericEmbossReservedAnonymousField1View( + Storage emboss_reserved_local_bytes) + : backing_(emboss_reserved_local_bytes) + {} + + template + GenericEmbossReservedAnonymousField1View( + const GenericEmbossReservedAnonymousField1View &emboss_reserved_local_other) + : backing_{emboss_reserved_local_other.BackingStorage()} + {} + + template ::type>::type>::value>::type> + explicit GenericEmbossReservedAnonymousField1View( + Arg &&emboss_reserved_local_arg) + : backing_(::std::forward( + emboss_reserved_local_arg)) + {} + template + explicit GenericEmbossReservedAnonymousField1View( + Arg0 &&emboss_reserved_local_arg0, + Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) + : backing_(::std::forward(emboss_reserved_local_arg0), + ::std::forward(emboss_reserved_local_arg1), + ::std::forward( + emboss_reserved_local_args)...) + {} + + template + GenericEmbossReservedAnonymousField1View &operator=( + const GenericEmbossReservedAnonymousField1View &emboss_reserved_local_other) { + backing_ = emboss_reserved_local_other.BackingStorage(); + return *this; + } + + + + bool Ok() const { + if (!IsComplete()) return false; + + if (!has_seven_bit_uint().Known()) return false; + if (has_seven_bit_uint().ValueOrDefault() && !seven_bit_uint().Ok()) return false; + + + if (!has_one_bit_flag().Known()) return false; + if (has_one_bit_flag().ValueOrDefault() && !one_bit_flag().Ok()) return false; + + + if (!has_IntrinsicSizeInBits().Known()) return false; + if (has_IntrinsicSizeInBits().ValueOrDefault() && !IntrinsicSizeInBits().Ok()) return false; + + + if (!has_MaxSizeInBits().Known()) return false; + if (has_MaxSizeInBits().ValueOrDefault() && !MaxSizeInBits().Ok()) return false; + + + if (!has_MinSizeInBits().Known()) return false; + if (has_MinSizeInBits().ValueOrDefault() && !MinSizeInBits().Ok()) return false; + + + + return true; + } + Storage BackingStorage() const { return backing_; } + bool IsComplete() const { + return backing_.Ok() && IntrinsicSizeInBits().Ok() && + backing_.SizeInBits() >= + static_cast( + IntrinsicSizeInBits().UncheckedRead()); + } + static constexpr ::std::size_t SizeInBits() { + return static_cast(IntrinsicSizeInBits().Read()); + } + static constexpr bool SizeIsKnown() { + return IntrinsicSizeInBits().Ok(); + } + + + template + bool Equals( + GenericEmbossReservedAnonymousField1View emboss_reserved_local_other) const { + + if (!has_seven_bit_uint().Known()) return false; + if (!emboss_reserved_local_other.has_seven_bit_uint().Known()) return false; + + if (emboss_reserved_local_other.has_seven_bit_uint().ValueOrDefault() && + !has_seven_bit_uint().ValueOrDefault()) + return false; + if (has_seven_bit_uint().ValueOrDefault() && + !emboss_reserved_local_other.has_seven_bit_uint().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_seven_bit_uint().ValueOrDefault() && + has_seven_bit_uint().ValueOrDefault() && + !seven_bit_uint().Equals(emboss_reserved_local_other.seven_bit_uint())) + return false; + + + + if (!has_one_bit_flag().Known()) return false; + if (!emboss_reserved_local_other.has_one_bit_flag().Known()) return false; + + if (emboss_reserved_local_other.has_one_bit_flag().ValueOrDefault() && + !has_one_bit_flag().ValueOrDefault()) + return false; + if (has_one_bit_flag().ValueOrDefault() && + !emboss_reserved_local_other.has_one_bit_flag().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_one_bit_flag().ValueOrDefault() && + has_one_bit_flag().ValueOrDefault() && + !one_bit_flag().Equals(emboss_reserved_local_other.one_bit_flag())) + return false; + + return true; + } + template + bool UncheckedEquals( + GenericEmbossReservedAnonymousField1View emboss_reserved_local_other) const { + + if (emboss_reserved_local_other.has_seven_bit_uint().ValueOr(false) && + !has_seven_bit_uint().ValueOr(false)) + return false; + if (has_seven_bit_uint().ValueOr(false) && + !emboss_reserved_local_other.has_seven_bit_uint().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_seven_bit_uint().ValueOr(false) && + has_seven_bit_uint().ValueOr(false) && + !seven_bit_uint().UncheckedEquals(emboss_reserved_local_other.seven_bit_uint())) + return false; + + + + if (emboss_reserved_local_other.has_one_bit_flag().ValueOr(false) && + !has_one_bit_flag().ValueOr(false)) + return false; + if (has_one_bit_flag().ValueOr(false) && + !emboss_reserved_local_other.has_one_bit_flag().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_one_bit_flag().ValueOr(false) && + has_one_bit_flag().ValueOr(false) && + !one_bit_flag().UncheckedEquals(emboss_reserved_local_other.one_bit_flag())) + return false; + + return true; + } + template + void UncheckedCopyFrom( + GenericEmbossReservedAnonymousField1View emboss_reserved_local_other) const { + backing_.UncheckedCopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBits().UncheckedRead()); + } + + template + void CopyFrom( + GenericEmbossReservedAnonymousField1View emboss_reserved_local_other) const { + backing_.CopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBits().Read()); + } + template + bool TryToCopyFrom( + GenericEmbossReservedAnonymousField1View emboss_reserved_local_other) const { + return emboss_reserved_local_other.Ok() && backing_.TryToCopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBits().Read()); + } + + template + bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) const { + ::std::string emboss_reserved_local_brace; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_brace)) + return false; + if (emboss_reserved_local_brace != "{") return false; + for (;;) { + ::std::string emboss_reserved_local_name; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_name)) + return false; + if (emboss_reserved_local_name == ",") + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_name)) + return false; + if (emboss_reserved_local_name == "}") return true; + ::std::string emboss_reserved_local_colon; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_colon)) + return false; + if (emboss_reserved_local_colon != ":") return false; + if (emboss_reserved_local_name == "seven_bit_uint") { + if (!seven_bit_uint().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "one_bit_flag") { + if (!one_bit_flag().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + return false; + } + } + + template + void WriteToTextStream( + Stream *emboss_reserved_local_stream, + ::emboss::TextOutputOptions emboss_reserved_local_options) const { + auto emboss_reserved_local_field_options = + emboss_reserved_local_options.PlusOneIndent(); + if (emboss_reserved_local_options.multiline()) { + emboss_reserved_local_stream->Write("{\n"); + } else { + emboss_reserved_local_stream->Write("{"); + } + bool emboss_reserved_local_wrote_field = false; + if (has_seven_bit_uint().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + seven_bit_uint().IsAggregate() || seven_bit_uint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_bit_uint\":"); + } else { + emboss_reserved_local_stream->Write("seven_bit_uint: "); + } + seven_bit_uint().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !seven_bit_uint().IsAggregate() && !seven_bit_uint().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# seven_bit_uint: UNREADABLE\n"); + } + } + + if (has_one_bit_flag().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + one_bit_flag().IsAggregate() || one_bit_flag().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_bit_flag\":"); + } else { + emboss_reserved_local_stream->Write("one_bit_flag: "); + } + one_bit_flag().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !one_bit_flag().IsAggregate() && !one_bit_flag().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# one_bit_flag: UNREADABLE\n"); + } + } + + (void)emboss_reserved_local_wrote_field; + if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + emboss_reserved_local_stream->Write( + emboss_reserved_local_options.current_indent()); + emboss_reserved_local_stream->Write("}"); + } else { + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); + } + } + + + + static constexpr bool IsAggregate() { return true; } + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<7, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + + seven_bit_uint() const; + ::emboss::support::Maybe has_seven_bit_uint() const; + + public: + typename ::emboss::prelude::FlagView< + /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + + one_bit_flag() const; + ::emboss::support::Maybe has_one_bit_flag() const; + + public: + class EmbossReservedDollarVirtualIntrinsicSizeInBitsView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualIntrinsicSizeInBitsView() {} + EmbossReservedDollarVirtualIntrinsicSizeInBitsView(const EmbossReservedDollarVirtualIntrinsicSizeInBitsView &) = default; + EmbossReservedDollarVirtualIntrinsicSizeInBitsView(EmbossReservedDollarVirtualIntrinsicSizeInBitsView &&) = default; + EmbossReservedDollarVirtualIntrinsicSizeInBitsView &operator=(const EmbossReservedDollarVirtualIntrinsicSizeInBitsView &) = + default; + EmbossReservedDollarVirtualIntrinsicSizeInBitsView &operator=(EmbossReservedDollarVirtualIntrinsicSizeInBitsView &&) = + default; + ~EmbossReservedDollarVirtualIntrinsicSizeInBitsView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualIntrinsicSizeInBitsView IntrinsicSizeInBits() { + return EmbossReservedDollarVirtualIntrinsicSizeInBitsView(); + } + static constexpr ::emboss::support::Maybe has_IntrinsicSizeInBits() { + return ::emboss::support::Maybe(true); + } + + public: + class EmbossReservedDollarVirtualMaxSizeInBitsView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualMaxSizeInBitsView() {} + EmbossReservedDollarVirtualMaxSizeInBitsView(const EmbossReservedDollarVirtualMaxSizeInBitsView &) = default; + EmbossReservedDollarVirtualMaxSizeInBitsView(EmbossReservedDollarVirtualMaxSizeInBitsView &&) = default; + EmbossReservedDollarVirtualMaxSizeInBitsView &operator=(const EmbossReservedDollarVirtualMaxSizeInBitsView &) = + default; + EmbossReservedDollarVirtualMaxSizeInBitsView &operator=(EmbossReservedDollarVirtualMaxSizeInBitsView &&) = + default; + ~EmbossReservedDollarVirtualMaxSizeInBitsView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualMaxSizeInBitsView MaxSizeInBits() { + return EmbossReservedDollarVirtualMaxSizeInBitsView(); + } + static constexpr ::emboss::support::Maybe has_MaxSizeInBits() { + return ::emboss::support::Maybe(true); + } + + public: + class EmbossReservedDollarVirtualMinSizeInBitsView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualMinSizeInBitsView() {} + EmbossReservedDollarVirtualMinSizeInBitsView(const EmbossReservedDollarVirtualMinSizeInBitsView &) = default; + EmbossReservedDollarVirtualMinSizeInBitsView(EmbossReservedDollarVirtualMinSizeInBitsView &&) = default; + EmbossReservedDollarVirtualMinSizeInBitsView &operator=(const EmbossReservedDollarVirtualMinSizeInBitsView &) = + default; + EmbossReservedDollarVirtualMinSizeInBitsView &operator=(EmbossReservedDollarVirtualMinSizeInBitsView &&) = + default; + ~EmbossReservedDollarVirtualMinSizeInBitsView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualMinSizeInBitsView MinSizeInBits() { + return EmbossReservedDollarVirtualMinSizeInBitsView(); + } + static constexpr ::emboss::support::Maybe has_MinSizeInBits() { + return ::emboss::support::Maybe(true); + } + + + + private: + Storage backing_; + + + + template + friend class GenericEmbossReservedAnonymousField1View; +}; +using EmbossReservedAnonymousField1View = + GenericEmbossReservedAnonymousField1View; +using EmbossReservedAnonymousField1Writer = + GenericEmbossReservedAnonymousField1View; + +template +struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View { + static constexpr const bool value = false; +}; + +template +struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View< + GenericEmbossReservedAnonymousField1View> { + static constexpr const bool value = true; +}; + +template +inline GenericEmbossReservedAnonymousField1View< + /**/ ::emboss::support::ContiguousBuffer< + typename ::std::remove_reference< + decltype(*::std::declval()->data())>::type, + 1, 0>> +MakeEmbossReservedAnonymousField1View( T &&emboss_reserved_local_arg) { + return GenericEmbossReservedAnonymousField1View< + /**/ ::emboss::support::ContiguousBuffer< + typename ::std::remove_reference()->data())>::type, + 1, 0>>( + ::std::forward(emboss_reserved_local_arg)); +} + +template +inline GenericEmbossReservedAnonymousField1View> +MakeEmbossReservedAnonymousField1View( T *emboss_reserved_local_data, + ::std::size_t emboss_reserved_local_size) { + return GenericEmbossReservedAnonymousField1View>( + emboss_reserved_local_data, + emboss_reserved_local_size); +} + +template +inline GenericEmbossReservedAnonymousField1View< + /**/ ::emboss::support::ContiguousBuffer> +MakeAlignedEmbossReservedAnonymousField1View( + T *emboss_reserved_local_data, + ::std::size_t emboss_reserved_local_size) { + return GenericEmbossReservedAnonymousField1View< + /**/ ::emboss::support::ContiguousBuffer>( + emboss_reserved_local_data, + emboss_reserved_local_size); +} + +} // namespace JsonTestStruct + + +template +struct EmbossReservedInternalIsGenericJsonTestStructView; + +template +class GenericJsonTestStructView final { + public: + GenericJsonTestStructView() : backing_() {} + explicit GenericJsonTestStructView( + Storage emboss_reserved_local_bytes) + : backing_(emboss_reserved_local_bytes) + {} + + template + GenericJsonTestStructView( + const GenericJsonTestStructView &emboss_reserved_local_other) + : backing_{emboss_reserved_local_other.BackingStorage()} + {} + + template ::type>::type>::value>::type> + explicit GenericJsonTestStructView( + Arg &&emboss_reserved_local_arg) + : backing_(::std::forward( + emboss_reserved_local_arg)) + {} + template + explicit GenericJsonTestStructView( + Arg0 &&emboss_reserved_local_arg0, + Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) + : backing_(::std::forward(emboss_reserved_local_arg0), + ::std::forward(emboss_reserved_local_arg1), + ::std::forward( + emboss_reserved_local_args)...) + {} + + template + GenericJsonTestStructView &operator=( + const GenericJsonTestStructView &emboss_reserved_local_other) { + backing_ = emboss_reserved_local_other.BackingStorage(); + return *this; + } + + + + bool Ok() const { + if (!IsComplete()) return false; + + if (!has_one_byte_enum().Known()) return false; + if (has_one_byte_enum().ValueOrDefault() && !one_byte_enum().Ok()) return false; + + + if (!has_emboss_reserved_anonymous_field_1().Known()) return false; + if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && !emboss_reserved_anonymous_field_1().Ok()) return false; + + + if (!has_seven_bit_uint().Known()) return false; + if (has_seven_bit_uint().ValueOrDefault() && !seven_bit_uint().Ok()) return false; + + + if (!has_one_bit_flag().Known()) return false; + if (has_one_bit_flag().ValueOrDefault() && !one_bit_flag().Ok()) return false; + + + if (!has_one_byte_uint().Known()) return false; + if (has_one_byte_uint().ValueOrDefault() && !one_byte_uint().Ok()) return false; + + + if (!has_two_byte_uint().Known()) return false; + if (has_two_byte_uint().ValueOrDefault() && !two_byte_uint().Ok()) return false; + + + if (!has_four_byte_uint().Known()) return false; + if (has_four_byte_uint().ValueOrDefault() && !four_byte_uint().Ok()) return false; + + + if (!has_eight_byte_uint().Known()) return false; + if (has_eight_byte_uint().ValueOrDefault() && !eight_byte_uint().Ok()) return false; + + + if (!has_uint8_array().Known()) return false; + if (has_uint8_array().ValueOrDefault() && !uint8_array().Ok()) return false; + + + if (!has_uint16_array().Known()) return false; + if (has_uint16_array().ValueOrDefault() && !uint16_array().Ok()) return false; + + + if (!has_struct_array().Known()) return false; + if (has_struct_array().ValueOrDefault() && !struct_array().Ok()) return false; + + + if (!has_IntrinsicSizeInBytes().Known()) return false; + if (has_IntrinsicSizeInBytes().ValueOrDefault() && !IntrinsicSizeInBytes().Ok()) return false; + + + if (!has_MaxSizeInBytes().Known()) return false; + if (has_MaxSizeInBytes().ValueOrDefault() && !MaxSizeInBytes().Ok()) return false; + + + if (!has_MinSizeInBytes().Known()) return false; + if (has_MinSizeInBytes().ValueOrDefault() && !MinSizeInBytes().Ok()) return false; + + + + return true; + } + Storage BackingStorage() const { return backing_; } + bool IsComplete() const { + return backing_.Ok() && IntrinsicSizeInBytes().Ok() && + backing_.SizeInBytes() >= + static_cast( + IntrinsicSizeInBytes().UncheckedRead()); + } + static constexpr ::std::size_t SizeInBytes() { + return static_cast(IntrinsicSizeInBytes().Read()); + } + static constexpr bool SizeIsKnown() { + return IntrinsicSizeInBytes().Ok(); + } + + + template + bool Equals( + GenericJsonTestStructView emboss_reserved_local_other) const { + + if (!has_one_byte_enum().Known()) return false; + if (!emboss_reserved_local_other.has_one_byte_enum().Known()) return false; + + if (emboss_reserved_local_other.has_one_byte_enum().ValueOrDefault() && + !has_one_byte_enum().ValueOrDefault()) + return false; + if (has_one_byte_enum().ValueOrDefault() && + !emboss_reserved_local_other.has_one_byte_enum().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_one_byte_enum().ValueOrDefault() && + has_one_byte_enum().ValueOrDefault() && + !one_byte_enum().Equals(emboss_reserved_local_other.one_byte_enum())) + return false; + + + + if (!has_emboss_reserved_anonymous_field_1().Known()) return false; + if (!emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().Known()) return false; + + if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().ValueOrDefault() && + !has_emboss_reserved_anonymous_field_1().ValueOrDefault()) + return false; + if (has_emboss_reserved_anonymous_field_1().ValueOrDefault() && + !emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().ValueOrDefault() && + has_emboss_reserved_anonymous_field_1().ValueOrDefault() && + !emboss_reserved_anonymous_field_1().Equals(emboss_reserved_local_other.emboss_reserved_anonymous_field_1())) + return false; + + + + if (!has_one_byte_uint().Known()) return false; + if (!emboss_reserved_local_other.has_one_byte_uint().Known()) return false; + + if (emboss_reserved_local_other.has_one_byte_uint().ValueOrDefault() && + !has_one_byte_uint().ValueOrDefault()) + return false; + if (has_one_byte_uint().ValueOrDefault() && + !emboss_reserved_local_other.has_one_byte_uint().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_one_byte_uint().ValueOrDefault() && + has_one_byte_uint().ValueOrDefault() && + !one_byte_uint().Equals(emboss_reserved_local_other.one_byte_uint())) + return false; + + + + if (!has_two_byte_uint().Known()) return false; + if (!emboss_reserved_local_other.has_two_byte_uint().Known()) return false; + + if (emboss_reserved_local_other.has_two_byte_uint().ValueOrDefault() && + !has_two_byte_uint().ValueOrDefault()) + return false; + if (has_two_byte_uint().ValueOrDefault() && + !emboss_reserved_local_other.has_two_byte_uint().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_two_byte_uint().ValueOrDefault() && + has_two_byte_uint().ValueOrDefault() && + !two_byte_uint().Equals(emboss_reserved_local_other.two_byte_uint())) + return false; + + + + if (!has_four_byte_uint().Known()) return false; + if (!emboss_reserved_local_other.has_four_byte_uint().Known()) return false; + + if (emboss_reserved_local_other.has_four_byte_uint().ValueOrDefault() && + !has_four_byte_uint().ValueOrDefault()) + return false; + if (has_four_byte_uint().ValueOrDefault() && + !emboss_reserved_local_other.has_four_byte_uint().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_four_byte_uint().ValueOrDefault() && + has_four_byte_uint().ValueOrDefault() && + !four_byte_uint().Equals(emboss_reserved_local_other.four_byte_uint())) + return false; + + + + if (!has_eight_byte_uint().Known()) return false; + if (!emboss_reserved_local_other.has_eight_byte_uint().Known()) return false; + + if (emboss_reserved_local_other.has_eight_byte_uint().ValueOrDefault() && + !has_eight_byte_uint().ValueOrDefault()) + return false; + if (has_eight_byte_uint().ValueOrDefault() && + !emboss_reserved_local_other.has_eight_byte_uint().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_eight_byte_uint().ValueOrDefault() && + has_eight_byte_uint().ValueOrDefault() && + !eight_byte_uint().Equals(emboss_reserved_local_other.eight_byte_uint())) + return false; + + + + if (!has_uint8_array().Known()) return false; + if (!emboss_reserved_local_other.has_uint8_array().Known()) return false; + + if (emboss_reserved_local_other.has_uint8_array().ValueOrDefault() && + !has_uint8_array().ValueOrDefault()) + return false; + if (has_uint8_array().ValueOrDefault() && + !emboss_reserved_local_other.has_uint8_array().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_uint8_array().ValueOrDefault() && + has_uint8_array().ValueOrDefault() && + !uint8_array().Equals(emboss_reserved_local_other.uint8_array())) + return false; + + + + if (!has_uint16_array().Known()) return false; + if (!emboss_reserved_local_other.has_uint16_array().Known()) return false; + + if (emboss_reserved_local_other.has_uint16_array().ValueOrDefault() && + !has_uint16_array().ValueOrDefault()) + return false; + if (has_uint16_array().ValueOrDefault() && + !emboss_reserved_local_other.has_uint16_array().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_uint16_array().ValueOrDefault() && + has_uint16_array().ValueOrDefault() && + !uint16_array().Equals(emboss_reserved_local_other.uint16_array())) + return false; + + + + if (!has_struct_array().Known()) return false; + if (!emboss_reserved_local_other.has_struct_array().Known()) return false; + + if (emboss_reserved_local_other.has_struct_array().ValueOrDefault() && + !has_struct_array().ValueOrDefault()) + return false; + if (has_struct_array().ValueOrDefault() && + !emboss_reserved_local_other.has_struct_array().ValueOrDefault()) + return false; + + if (emboss_reserved_local_other.has_struct_array().ValueOrDefault() && + has_struct_array().ValueOrDefault() && + !struct_array().Equals(emboss_reserved_local_other.struct_array())) + return false; + + return true; + } + template + bool UncheckedEquals( + GenericJsonTestStructView emboss_reserved_local_other) const { + + if (emboss_reserved_local_other.has_one_byte_enum().ValueOr(false) && + !has_one_byte_enum().ValueOr(false)) + return false; + if (has_one_byte_enum().ValueOr(false) && + !emboss_reserved_local_other.has_one_byte_enum().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_one_byte_enum().ValueOr(false) && + has_one_byte_enum().ValueOr(false) && + !one_byte_enum().UncheckedEquals(emboss_reserved_local_other.one_byte_enum())) + return false; + + + + if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().ValueOr(false) && + !has_emboss_reserved_anonymous_field_1().ValueOr(false)) + return false; + if (has_emboss_reserved_anonymous_field_1().ValueOr(false) && + !emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_1().ValueOr(false) && + has_emboss_reserved_anonymous_field_1().ValueOr(false) && + !emboss_reserved_anonymous_field_1().UncheckedEquals(emboss_reserved_local_other.emboss_reserved_anonymous_field_1())) + return false; + + + + if (emboss_reserved_local_other.has_one_byte_uint().ValueOr(false) && + !has_one_byte_uint().ValueOr(false)) + return false; + if (has_one_byte_uint().ValueOr(false) && + !emboss_reserved_local_other.has_one_byte_uint().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_one_byte_uint().ValueOr(false) && + has_one_byte_uint().ValueOr(false) && + !one_byte_uint().UncheckedEquals(emboss_reserved_local_other.one_byte_uint())) + return false; + + + + if (emboss_reserved_local_other.has_two_byte_uint().ValueOr(false) && + !has_two_byte_uint().ValueOr(false)) + return false; + if (has_two_byte_uint().ValueOr(false) && + !emboss_reserved_local_other.has_two_byte_uint().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_two_byte_uint().ValueOr(false) && + has_two_byte_uint().ValueOr(false) && + !two_byte_uint().UncheckedEquals(emboss_reserved_local_other.two_byte_uint())) + return false; + + + + if (emboss_reserved_local_other.has_four_byte_uint().ValueOr(false) && + !has_four_byte_uint().ValueOr(false)) + return false; + if (has_four_byte_uint().ValueOr(false) && + !emboss_reserved_local_other.has_four_byte_uint().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_four_byte_uint().ValueOr(false) && + has_four_byte_uint().ValueOr(false) && + !four_byte_uint().UncheckedEquals(emboss_reserved_local_other.four_byte_uint())) + return false; + + + + if (emboss_reserved_local_other.has_eight_byte_uint().ValueOr(false) && + !has_eight_byte_uint().ValueOr(false)) + return false; + if (has_eight_byte_uint().ValueOr(false) && + !emboss_reserved_local_other.has_eight_byte_uint().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_eight_byte_uint().ValueOr(false) && + has_eight_byte_uint().ValueOr(false) && + !eight_byte_uint().UncheckedEquals(emboss_reserved_local_other.eight_byte_uint())) + return false; + + + + if (emboss_reserved_local_other.has_uint8_array().ValueOr(false) && + !has_uint8_array().ValueOr(false)) + return false; + if (has_uint8_array().ValueOr(false) && + !emboss_reserved_local_other.has_uint8_array().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_uint8_array().ValueOr(false) && + has_uint8_array().ValueOr(false) && + !uint8_array().UncheckedEquals(emboss_reserved_local_other.uint8_array())) + return false; + + + + if (emboss_reserved_local_other.has_uint16_array().ValueOr(false) && + !has_uint16_array().ValueOr(false)) + return false; + if (has_uint16_array().ValueOr(false) && + !emboss_reserved_local_other.has_uint16_array().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_uint16_array().ValueOr(false) && + has_uint16_array().ValueOr(false) && + !uint16_array().UncheckedEquals(emboss_reserved_local_other.uint16_array())) + return false; + + + + if (emboss_reserved_local_other.has_struct_array().ValueOr(false) && + !has_struct_array().ValueOr(false)) + return false; + if (has_struct_array().ValueOr(false) && + !emboss_reserved_local_other.has_struct_array().ValueOr(false)) + return false; + + if (emboss_reserved_local_other.has_struct_array().ValueOr(false) && + has_struct_array().ValueOr(false) && + !struct_array().UncheckedEquals(emboss_reserved_local_other.struct_array())) + return false; + + return true; + } + template + void UncheckedCopyFrom( + GenericJsonTestStructView emboss_reserved_local_other) const { + backing_.UncheckedCopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); + } + + template + void CopyFrom( + GenericJsonTestStructView emboss_reserved_local_other) const { + backing_.CopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); + } + template + bool TryToCopyFrom( + GenericJsonTestStructView emboss_reserved_local_other) const { + return emboss_reserved_local_other.Ok() && backing_.TryToCopyFrom( + emboss_reserved_local_other.BackingStorage(), + emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); + } + + template + bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) const { + ::std::string emboss_reserved_local_brace; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_brace)) + return false; + if (emboss_reserved_local_brace != "{") return false; + for (;;) { + ::std::string emboss_reserved_local_name; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_name)) + return false; + if (emboss_reserved_local_name == ",") + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_name)) + return false; + if (emboss_reserved_local_name == "}") return true; + ::std::string emboss_reserved_local_colon; + if (!::emboss::support::ReadToken(emboss_reserved_local_stream, + &emboss_reserved_local_colon)) + return false; + if (emboss_reserved_local_colon != ":") return false; + if (emboss_reserved_local_name == "one_byte_enum") { + if (!one_byte_enum().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "seven_bit_uint") { + if (!seven_bit_uint().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "one_bit_flag") { + if (!one_bit_flag().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "one_byte_uint") { + if (!one_byte_uint().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "two_byte_uint") { + if (!two_byte_uint().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "four_byte_uint") { + if (!four_byte_uint().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "eight_byte_uint") { + if (!eight_byte_uint().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "uint8_array") { + if (!uint8_array().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "uint16_array") { + if (!uint16_array().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + if (emboss_reserved_local_name == "struct_array") { + if (!struct_array().UpdateFromTextStream( + emboss_reserved_local_stream)) { + return false; + } + continue; + } + + return false; + } + } + + template + void WriteToTextStream( + Stream *emboss_reserved_local_stream, + ::emboss::TextOutputOptions emboss_reserved_local_options) const { + auto emboss_reserved_local_field_options = + emboss_reserved_local_options.PlusOneIndent(); + if (emboss_reserved_local_options.multiline()) { + emboss_reserved_local_stream->Write("{\n"); + } else { + emboss_reserved_local_stream->Write("{"); + } + bool emboss_reserved_local_wrote_field = false; + if (has_one_byte_enum().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + one_byte_enum().IsAggregate() || one_byte_enum().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte_enum\":"); + } else { + emboss_reserved_local_stream->Write("one_byte_enum: "); + } + one_byte_enum().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !one_byte_enum().IsAggregate() && !one_byte_enum().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# one_byte_enum: UNREADABLE\n"); + } + } + + if (has_seven_bit_uint().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + seven_bit_uint().IsAggregate() || seven_bit_uint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_bit_uint\":"); + } else { + emboss_reserved_local_stream->Write("seven_bit_uint: "); + } + seven_bit_uint().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !seven_bit_uint().IsAggregate() && !seven_bit_uint().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# seven_bit_uint: UNREADABLE\n"); + } + } + + if (has_one_bit_flag().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + one_bit_flag().IsAggregate() || one_bit_flag().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_bit_flag\":"); + } else { + emboss_reserved_local_stream->Write("one_bit_flag: "); + } + one_bit_flag().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !one_bit_flag().IsAggregate() && !one_bit_flag().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# one_bit_flag: UNREADABLE\n"); + } + } + + if (has_one_byte_uint().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + one_byte_uint().IsAggregate() || one_byte_uint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte_uint\":"); + } else { + emboss_reserved_local_stream->Write("one_byte_uint: "); + } + one_byte_uint().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !one_byte_uint().IsAggregate() && !one_byte_uint().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# one_byte_uint: UNREADABLE\n"); + } + } + + if (has_two_byte_uint().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + two_byte_uint().IsAggregate() || two_byte_uint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte_uint\":"); + } else { + emboss_reserved_local_stream->Write("two_byte_uint: "); + } + two_byte_uint().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !two_byte_uint().IsAggregate() && !two_byte_uint().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# two_byte_uint: UNREADABLE\n"); + } + } + + if (has_four_byte_uint().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + four_byte_uint().IsAggregate() || four_byte_uint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte_uint\":"); + } else { + emboss_reserved_local_stream->Write("four_byte_uint: "); + } + four_byte_uint().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !four_byte_uint().IsAggregate() && !four_byte_uint().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# four_byte_uint: UNREADABLE\n"); + } + } + + if (has_eight_byte_uint().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + eight_byte_uint().IsAggregate() || eight_byte_uint().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte_uint\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte_uint: "); + } + eight_byte_uint().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !eight_byte_uint().IsAggregate() && !eight_byte_uint().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# eight_byte_uint: UNREADABLE\n"); + } + } + + if (has_uint8_array().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + uint8_array().IsAggregate() || uint8_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"uint8_array\":"); + } else { + emboss_reserved_local_stream->Write("uint8_array: "); + } + uint8_array().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !uint8_array().IsAggregate() && !uint8_array().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# uint8_array: UNREADABLE\n"); + } + } + + if (has_uint16_array().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + uint16_array().IsAggregate() || uint16_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"uint16_array\":"); + } else { + emboss_reserved_local_stream->Write("uint16_array: "); + } + uint16_array().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !uint16_array().IsAggregate() && !uint16_array().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# uint16_array: UNREADABLE\n"); + } + } + + if (has_struct_array().ValueOr(false)) { + if (!emboss_reserved_local_field_options.allow_partial_output() || + struct_array().IsAggregate() || struct_array().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } else if (!emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"struct_array\":"); + } else { + emboss_reserved_local_stream->Write("struct_array: "); + } + struct_array().WriteToTextStream(emboss_reserved_local_stream, + emboss_reserved_local_field_options); + emboss_reserved_local_wrote_field = true; + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + } else if (emboss_reserved_local_field_options.allow_partial_output() && + emboss_reserved_local_field_options.comments() && + !struct_array().IsAggregate() && !struct_array().Ok()) { + if (emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write( + emboss_reserved_local_field_options.current_indent()); + } + emboss_reserved_local_stream->Write("# struct_array: UNREADABLE\n"); + } + } + + (void)emboss_reserved_local_wrote_field; + if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } + emboss_reserved_local_stream->Write( + emboss_reserved_local_options.current_indent()); + emboss_reserved_local_stream->Write("}"); + } else { + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); + } + } + + + + static constexpr bool IsAggregate() { return true; } + + public: + typename ::emboss::support::EnumView< + /**/ ::emboss::test::JsonTestEnum, + ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + one_byte_enum() const; + ::emboss::support::Maybe has_one_byte_enum() const; + + private: + typename ::emboss::test::JsonTestStruct::GenericEmbossReservedAnonymousField1View>, 8>> + + emboss_reserved_anonymous_field_1() const; + ::emboss::support::Maybe has_emboss_reserved_anonymous_field_1() const; + + public: + auto seven_bit_uint() const -> decltype(this->emboss_reserved_anonymous_field_1().seven_bit_uint()) { + return has_seven_bit_uint().ValueOrDefault() ? emboss_reserved_anonymous_field_1().seven_bit_uint() + : decltype(this->emboss_reserved_anonymous_field_1().seven_bit_uint())(); + } + ::emboss::support::Maybe has_seven_bit_uint() const; + + public: + auto one_bit_flag() const -> decltype(this->emboss_reserved_anonymous_field_1().one_bit_flag()) { + return has_one_bit_flag().ValueOrDefault() ? emboss_reserved_anonymous_field_1().one_bit_flag() + : decltype(this->emboss_reserved_anonymous_field_1().one_bit_flag())(); + } + ::emboss::support::Maybe has_one_bit_flag() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + one_byte_uint() const; + ::emboss::support::Maybe has_one_byte_uint() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 16>> + + two_byte_uint() const; + ::emboss::support::Maybe has_two_byte_uint() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<32, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 32>> + + four_byte_uint() const; + ::emboss::support::Maybe has_four_byte_uint() const; + + public: + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<64, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 64>> + + eight_byte_uint() const; + ::emboss::support::Maybe has_eight_byte_uint() const; + + public: + typename ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 8>> + +, typename Storage::template OffsetStorageType, 1, + 8 > + + uint8_array() const; + ::emboss::support::Maybe has_uint8_array() const; + + public: + typename ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 16>> + +, typename Storage::template OffsetStorageType, 2, + 8 > + + uint16_array() const; + ::emboss::support::Maybe has_uint16_array() const; + + public: + typename ::emboss::support::GenericArrayView< + typename ::emboss::test::GenericJsonTestArrayStructView::template OffsetStorageType> + +, typename Storage::template OffsetStorageType, 4, + 8 > + + struct_array() const; + ::emboss::support::Maybe has_struct_array() const; + + public: + class EmbossReservedDollarVirtualIntrinsicSizeInBytesView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualIntrinsicSizeInBytesView() {} + EmbossReservedDollarVirtualIntrinsicSizeInBytesView(const EmbossReservedDollarVirtualIntrinsicSizeInBytesView &) = default; + EmbossReservedDollarVirtualIntrinsicSizeInBytesView(EmbossReservedDollarVirtualIntrinsicSizeInBytesView &&) = default; + EmbossReservedDollarVirtualIntrinsicSizeInBytesView &operator=(const EmbossReservedDollarVirtualIntrinsicSizeInBytesView &) = + default; + EmbossReservedDollarVirtualIntrinsicSizeInBytesView &operator=(EmbossReservedDollarVirtualIntrinsicSizeInBytesView &&) = + default; + ~EmbossReservedDollarVirtualIntrinsicSizeInBytesView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualIntrinsicSizeInBytesView IntrinsicSizeInBytes() { + return EmbossReservedDollarVirtualIntrinsicSizeInBytesView(); + } + static constexpr ::emboss::support::Maybe has_IntrinsicSizeInBytes() { + return ::emboss::support::Maybe(true); + } + + public: + class EmbossReservedDollarVirtualMaxSizeInBytesView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualMaxSizeInBytesView() {} + EmbossReservedDollarVirtualMaxSizeInBytesView(const EmbossReservedDollarVirtualMaxSizeInBytesView &) = default; + EmbossReservedDollarVirtualMaxSizeInBytesView(EmbossReservedDollarVirtualMaxSizeInBytesView &&) = default; + EmbossReservedDollarVirtualMaxSizeInBytesView &operator=(const EmbossReservedDollarVirtualMaxSizeInBytesView &) = + default; + EmbossReservedDollarVirtualMaxSizeInBytesView &operator=(EmbossReservedDollarVirtualMaxSizeInBytesView &&) = + default; + ~EmbossReservedDollarVirtualMaxSizeInBytesView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualMaxSizeInBytesView MaxSizeInBytes() { + return EmbossReservedDollarVirtualMaxSizeInBytesView(); + } + static constexpr ::emboss::support::Maybe has_MaxSizeInBytes() { + return ::emboss::support::Maybe(true); + } + + public: + class EmbossReservedDollarVirtualMinSizeInBytesView final { + public: + using ValueType = ::std::int32_t; + + constexpr EmbossReservedDollarVirtualMinSizeInBytesView() {} + EmbossReservedDollarVirtualMinSizeInBytesView(const EmbossReservedDollarVirtualMinSizeInBytesView &) = default; + EmbossReservedDollarVirtualMinSizeInBytesView(EmbossReservedDollarVirtualMinSizeInBytesView &&) = default; + EmbossReservedDollarVirtualMinSizeInBytesView &operator=(const EmbossReservedDollarVirtualMinSizeInBytesView &) = + default; + EmbossReservedDollarVirtualMinSizeInBytesView &operator=(EmbossReservedDollarVirtualMinSizeInBytesView &&) = + default; + ~EmbossReservedDollarVirtualMinSizeInBytesView() = default; + + static constexpr ::std::int32_t Read(); + static constexpr ::std::int32_t UncheckedRead(); + static constexpr bool Ok() { return true; } + template + void WriteToTextStream(Stream *emboss_reserved_local_stream, + const ::emboss::TextOutputOptions + &emboss_reserved_local_options) const { + ::emboss::support::WriteIntegerViewToTextStream( + this, emboss_reserved_local_stream, emboss_reserved_local_options); + } + + static constexpr bool IsAggregate() { return false; } + }; + + static constexpr EmbossReservedDollarVirtualMinSizeInBytesView MinSizeInBytes() { + return EmbossReservedDollarVirtualMinSizeInBytesView(); + } + static constexpr ::emboss::support::Maybe has_MinSizeInBytes() { + return ::emboss::support::Maybe(true); + } + + + + private: + Storage backing_; + + + + template + friend class GenericJsonTestStructView; +}; +using JsonTestStructView = + GenericJsonTestStructView; +using JsonTestStructWriter = + GenericJsonTestStructView; + +template +struct EmbossReservedInternalIsGenericJsonTestStructView { + static constexpr const bool value = false; +}; + +template +struct EmbossReservedInternalIsGenericJsonTestStructView< + GenericJsonTestStructView> { + static constexpr const bool value = true; +}; + +template +inline GenericJsonTestStructView< + /**/ ::emboss::support::ContiguousBuffer< + typename ::std::remove_reference< + decltype(*::std::declval()->data())>::type, + 1, 0>> +MakeJsonTestStructView( T &&emboss_reserved_local_arg) { + return GenericJsonTestStructView< + /**/ ::emboss::support::ContiguousBuffer< + typename ::std::remove_reference()->data())>::type, + 1, 0>>( + ::std::forward(emboss_reserved_local_arg)); +} + +template +inline GenericJsonTestStructView> +MakeJsonTestStructView( T *emboss_reserved_local_data, + ::std::size_t emboss_reserved_local_size) { + return GenericJsonTestStructView>( + emboss_reserved_local_data, + emboss_reserved_local_size); +} + +template +inline GenericJsonTestStructView< + /**/ ::emboss::support::ContiguousBuffer> +MakeAlignedJsonTestStructView( + T *emboss_reserved_local_data, + ::std::size_t emboss_reserved_local_size) { + return GenericJsonTestStructView< + /**/ ::emboss::support::ContiguousBuffer>( + emboss_reserved_local_data, + emboss_reserved_local_size); +} + +namespace Vanilla { + +} // namespace Vanilla + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericVanillaView::a() + const { + + if ( has_a().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 0>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericVanillaView::has_a() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericVanillaView::b() + const { + + if ( has_b().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(1LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 1>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericVanillaView::has_b() const { + return ::emboss::support::Maybe(true); +} + + +namespace Vanilla { +inline constexpr ::std::int32_t IntrinsicSizeInBytes() { + return ::emboss::support::Maybe(static_cast(2LL)).ValueOrDefault(); +} +} // namespace Vanilla + +template +inline constexpr ::std::int32_t +GenericVanillaView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { + return Vanilla::IntrinsicSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericVanillaView< + Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { + return Vanilla::IntrinsicSizeInBytes(); +} + +namespace Vanilla { +inline constexpr ::std::int32_t MaxSizeInBytes() { + return ::emboss::support::Maybe(static_cast(2LL)).ValueOrDefault(); +} +} // namespace Vanilla + +template +inline constexpr ::std::int32_t +GenericVanillaView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { + return Vanilla::MaxSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericVanillaView< + Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { + return Vanilla::MaxSizeInBytes(); +} + +namespace Vanilla { +inline constexpr ::std::int32_t MinSizeInBytes() { + return ::emboss::support::Maybe(static_cast(2LL)).ValueOrDefault(); +} +} // namespace Vanilla + +template +inline constexpr ::std::int32_t +GenericVanillaView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { + return Vanilla::MinSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericVanillaView< + Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { + return Vanilla::MinSizeInBytes(); +} +namespace StructWithSkippedFields { + +} // namespace StructWithSkippedFields + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericStructWithSkippedFieldsView::a() + const { + + if ( has_a().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 0>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericStructWithSkippedFieldsView::has_a() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericStructWithSkippedFieldsView::b() + const { + + if ( has_b().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(1LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 1>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericStructWithSkippedFieldsView::has_b() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericStructWithSkippedFieldsView::c() + const { + + if ( has_c().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(2LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 2>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericStructWithSkippedFieldsView::has_c() const { + return ::emboss::support::Maybe(true); +} + + +namespace StructWithSkippedFields { +inline constexpr ::std::int32_t IntrinsicSizeInBytes() { + return ::emboss::support::Maybe(static_cast(3LL)).ValueOrDefault(); +} +} // namespace StructWithSkippedFields + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedFieldsView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { + return StructWithSkippedFields::IntrinsicSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedFieldsView< + Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { + return StructWithSkippedFields::IntrinsicSizeInBytes(); +} + +namespace StructWithSkippedFields { +inline constexpr ::std::int32_t MaxSizeInBytes() { + return ::emboss::support::Maybe(static_cast(3LL)).ValueOrDefault(); +} +} // namespace StructWithSkippedFields + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedFieldsView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { + return StructWithSkippedFields::MaxSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedFieldsView< + Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { + return StructWithSkippedFields::MaxSizeInBytes(); +} + +namespace StructWithSkippedFields { +inline constexpr ::std::int32_t MinSizeInBytes() { + return ::emboss::support::Maybe(static_cast(3LL)).ValueOrDefault(); +} +} // namespace StructWithSkippedFields + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedFieldsView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { + return StructWithSkippedFields::MinSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedFieldsView< + Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { + return StructWithSkippedFields::MinSizeInBytes(); +} +namespace StructWithSkippedStructureFields { + +} // namespace StructWithSkippedStructureFields + + +template +inline typename ::emboss::test::GenericVanillaView> + + GenericStructWithSkippedStructureFieldsView::a() + const { + + if ( has_a().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::test::GenericVanillaView> + +( + backing_ + .template GetOffsetStorage<0, + 0>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::test::GenericVanillaView> + +(); +} + +template +inline ::emboss::support::Maybe +GenericStructWithSkippedStructureFieldsView::has_a() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::test::GenericVanillaView> + + GenericStructWithSkippedStructureFieldsView::b() + const { + + if ( has_b().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(2LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::test::GenericVanillaView> + +( + backing_ + .template GetOffsetStorage<0, + 2>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::test::GenericVanillaView> + +(); +} + +template +inline ::emboss::support::Maybe +GenericStructWithSkippedStructureFieldsView::has_b() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::test::GenericVanillaView> + + GenericStructWithSkippedStructureFieldsView::c() + const { + + if ( has_c().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(4LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::test::GenericVanillaView> + +( + backing_ + .template GetOffsetStorage<0, + 4>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::test::GenericVanillaView> + +(); +} + +template +inline ::emboss::support::Maybe +GenericStructWithSkippedStructureFieldsView::has_c() const { + return ::emboss::support::Maybe(true); +} + + +namespace StructWithSkippedStructureFields { +inline constexpr ::std::int32_t IntrinsicSizeInBytes() { + return ::emboss::support::Maybe(static_cast(6LL)).ValueOrDefault(); +} +} // namespace StructWithSkippedStructureFields + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedStructureFieldsView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { + return StructWithSkippedStructureFields::IntrinsicSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedStructureFieldsView< + Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { + return StructWithSkippedStructureFields::IntrinsicSizeInBytes(); +} + +namespace StructWithSkippedStructureFields { +inline constexpr ::std::int32_t MaxSizeInBytes() { + return ::emboss::support::Maybe(static_cast(6LL)).ValueOrDefault(); +} +} // namespace StructWithSkippedStructureFields + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedStructureFieldsView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { + return StructWithSkippedStructureFields::MaxSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedStructureFieldsView< + Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { + return StructWithSkippedStructureFields::MaxSizeInBytes(); +} + +namespace StructWithSkippedStructureFields { +inline constexpr ::std::int32_t MinSizeInBytes() { + return ::emboss::support::Maybe(static_cast(6LL)).ValueOrDefault(); +} +} // namespace StructWithSkippedStructureFields + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedStructureFieldsView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { + return StructWithSkippedStructureFields::MinSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericStructWithSkippedStructureFieldsView< + Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { + return StructWithSkippedStructureFields::MinSizeInBytes(); +} +namespace JsonTestArrayStruct { + +} // namespace JsonTestArrayStruct + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericJsonTestArrayStructView::element_one() + const { + + if ( has_element_one().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 0>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericJsonTestArrayStructView::has_element_one() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericJsonTestArrayStructView::element_two() + const { + + if ( has_element_two().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(1LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 1>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericJsonTestArrayStructView::has_element_two() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericJsonTestArrayStructView::element_three() + const { + + if ( has_element_three().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(2LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 2>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericJsonTestArrayStructView::has_element_three() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericJsonTestArrayStructView::element_four() + const { + + if ( has_element_four().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(3LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { return ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 3>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericJsonTestArrayStructView::has_element_four() const { + return ::emboss::support::Maybe(true); +} + + +namespace JsonTestArrayStruct { +inline constexpr ::std::int32_t IntrinsicSizeInBytes() { + return ::emboss::support::Maybe(static_cast(4LL)).ValueOrDefault(); +} +} // namespace JsonTestArrayStruct + +template +inline constexpr ::std::int32_t +GenericJsonTestArrayStructView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { + return JsonTestArrayStruct::IntrinsicSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericJsonTestArrayStructView< + Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { + return JsonTestArrayStruct::IntrinsicSizeInBytes(); +} + +namespace JsonTestArrayStruct { +inline constexpr ::std::int32_t MaxSizeInBytes() { + return ::emboss::support::Maybe(static_cast(4LL)).ValueOrDefault(); +} +} // namespace JsonTestArrayStruct + +template +inline constexpr ::std::int32_t +GenericJsonTestArrayStructView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { + return JsonTestArrayStruct::MaxSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericJsonTestArrayStructView< + Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { + return JsonTestArrayStruct::MaxSizeInBytes(); +} + +namespace JsonTestArrayStruct { +inline constexpr ::std::int32_t MinSizeInBytes() { + return ::emboss::support::Maybe(static_cast(4LL)).ValueOrDefault(); +} +} // namespace JsonTestArrayStruct + +template +inline constexpr ::std::int32_t +GenericJsonTestArrayStructView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { + return JsonTestArrayStruct::MinSizeInBytes(); +} + +template +inline constexpr ::std::int32_t +GenericJsonTestArrayStructView< + Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { + return JsonTestArrayStruct::MinSizeInBytes(); +} +namespace JsonTestStruct { +namespace EmbossReservedAnonymousField1 { + +} // namespace EmbossReservedAnonymousField1 + + +template +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<7, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + + GenericEmbossReservedAnonymousField1View::seven_bit_uint() + const { + + if ( has_seven_bit_uint().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(7LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<7, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + +( + backing_ + .template GetOffsetStorage<0, + 0>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<7, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + +(); +} + +template +inline ::emboss::support::Maybe +GenericEmbossReservedAnonymousField1View::has_seven_bit_uint() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::prelude::FlagView< + /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + + GenericEmbossReservedAnonymousField1View::one_bit_flag() + const { + + if ( has_one_bit_flag().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(7LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::FlagView< + /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + +( + backing_ + .template GetOffsetStorage<0, + 7>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::FlagView< + /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, + typename Storage::template OffsetStorageType> + +(); +} + +template +inline ::emboss::support::Maybe +GenericEmbossReservedAnonymousField1View::has_one_bit_flag() const { + return ::emboss::support::Maybe(true); +} + + +namespace EmbossReservedAnonymousField1 { +inline constexpr ::std::int32_t IntrinsicSizeInBits() { + return ::emboss::support::Maybe(static_cast(8LL)).ValueOrDefault(); +} +} // namespace EmbossReservedAnonymousField1 + +template +inline constexpr ::std::int32_t +GenericEmbossReservedAnonymousField1View::EmbossReservedDollarVirtualIntrinsicSizeInBitsView::Read() { + return EmbossReservedAnonymousField1::IntrinsicSizeInBits(); +} + +template +inline constexpr ::std::int32_t +GenericEmbossReservedAnonymousField1View< + Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBitsView::UncheckedRead() { + return EmbossReservedAnonymousField1::IntrinsicSizeInBits(); +} + +namespace EmbossReservedAnonymousField1 { +inline constexpr ::std::int32_t MaxSizeInBits() { + return ::emboss::support::Maybe(static_cast(8LL)).ValueOrDefault(); +} +} // namespace EmbossReservedAnonymousField1 + +template +inline constexpr ::std::int32_t +GenericEmbossReservedAnonymousField1View::EmbossReservedDollarVirtualMaxSizeInBitsView::Read() { + return EmbossReservedAnonymousField1::MaxSizeInBits(); +} + +template +inline constexpr ::std::int32_t +GenericEmbossReservedAnonymousField1View< + Storage>::EmbossReservedDollarVirtualMaxSizeInBitsView::UncheckedRead() { + return EmbossReservedAnonymousField1::MaxSizeInBits(); +} + +namespace EmbossReservedAnonymousField1 { +inline constexpr ::std::int32_t MinSizeInBits() { + return ::emboss::support::Maybe(static_cast(8LL)).ValueOrDefault(); +} +} // namespace EmbossReservedAnonymousField1 + +template +inline constexpr ::std::int32_t +GenericEmbossReservedAnonymousField1View::EmbossReservedDollarVirtualMinSizeInBitsView::Read() { + return EmbossReservedAnonymousField1::MinSizeInBits(); +} + +template +inline constexpr ::std::int32_t +GenericEmbossReservedAnonymousField1View< + Storage>::EmbossReservedDollarVirtualMinSizeInBitsView::UncheckedRead() { + return EmbossReservedAnonymousField1::MinSizeInBits(); +} + +} // namespace JsonTestStruct + + +template +inline typename ::emboss::support::EnumView< + /**/ ::emboss::test::JsonTestEnum, + ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + + GenericJsonTestStructView::one_byte_enum() + const { + + if ( has_one_byte_enum().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::support::EnumView< + /**/ ::emboss::test::JsonTestEnum, + ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +( + backing_ + .template GetOffsetStorage<0, + 0>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::support::EnumView< + /**/ ::emboss::test::JsonTestEnum, + ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 8>> + +(); +} + +template +inline ::emboss::support::Maybe +GenericJsonTestStructView::has_one_byte_enum() const { + return ::emboss::support::Maybe(true); +} + + +template +inline typename ::emboss::test::JsonTestStruct::GenericEmbossReservedAnonymousField1View>, 8>> + + GenericJsonTestStructView::emboss_reserved_anonymous_field_1() + const { + + if ( has_emboss_reserved_anonymous_field_1().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(1LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::test::JsonTestStruct::GenericEmbossReservedAnonymousField1View>, 8>> ( backing_ @@ -1867,29 +5266,41 @@ inline typename ::emboss::prelude::UIntView< emboss_reserved_local_size.ValueOrDefault())); } } - return ::emboss::prelude::UIntView< - /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + return ::emboss::test::JsonTestStruct::GenericEmbossReservedAnonymousField1View>, 8>> (); } template inline ::emboss::support::Maybe -GenericStructWithSkippedFieldsView::has_b() const { +GenericJsonTestStructView::has_emboss_reserved_anonymous_field_1() const { return ::emboss::support::Maybe(true); } +template +inline ::emboss::support::Maybe +GenericJsonTestStructView::has_seven_bit_uint() const { + return ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); +} + + +template +inline ::emboss::support::Maybe +GenericJsonTestStructView::has_one_bit_flag() const { + return ::emboss::support::And(::emboss::support::Maybe(true), ::emboss::support::Maybe(true)); +} + + template inline typename ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> - GenericStructWithSkippedFieldsView::c() + GenericJsonTestStructView::one_byte_uint() const { - if ( has_c().ValueOr(false)) { + if ( has_one_byte_uint().ValueOr(false)) { auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(1LL)); auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(2LL)); @@ -1899,7 +5310,7 @@ inline typename ::emboss::prelude::UIntView< emboss_reserved_local_offset.ValueOr(0) >= 0) { return ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> ( backing_ @@ -1911,242 +5322,355 @@ inline typename ::emboss::prelude::UIntView< } return ::emboss::prelude::UIntView< /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, - typename ::emboss::support::BitBlock>, 8>> + typename ::emboss::support::BitBlock>, 8>> (); } template inline ::emboss::support::Maybe -GenericStructWithSkippedFieldsView::has_c() const { +GenericJsonTestStructView::has_one_byte_uint() const { return ::emboss::support::Maybe(true); } -namespace StructWithSkippedFields { -inline constexpr ::std::int32_t IntrinsicSizeInBytes() { - return ::emboss::support::Maybe(static_cast(3LL)).ValueOrDefault(); -} -} // namespace StructWithSkippedFields - template -inline constexpr ::std::int32_t -GenericStructWithSkippedFieldsView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { - return StructWithSkippedFields::IntrinsicSizeInBytes(); +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 16>> + + GenericJsonTestStructView::two_byte_uint() + const { + + if ( has_two_byte_uint().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(3LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 16>> + +( + backing_ + .template GetOffsetStorage<0, + 3>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 16>> + +(); } template -inline constexpr ::std::int32_t -GenericStructWithSkippedFieldsView< - Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { - return StructWithSkippedFields::IntrinsicSizeInBytes(); +inline ::emboss::support::Maybe +GenericJsonTestStructView::has_two_byte_uint() const { + return ::emboss::support::Maybe(true); } -namespace StructWithSkippedFields { -inline constexpr ::std::int32_t MaxSizeInBytes() { - return ::emboss::support::Maybe(static_cast(3LL)).ValueOrDefault(); -} -} // namespace StructWithSkippedFields template -inline constexpr ::std::int32_t -GenericStructWithSkippedFieldsView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { - return StructWithSkippedFields::MaxSizeInBytes(); +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<32, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 32>> + + GenericJsonTestStructView::four_byte_uint() + const { + + if ( has_four_byte_uint().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(4LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(5LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<32, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 32>> + +( + backing_ + .template GetOffsetStorage<0, + 5>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<32, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 32>> + +(); } template -inline constexpr ::std::int32_t -GenericStructWithSkippedFieldsView< - Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { - return StructWithSkippedFields::MaxSizeInBytes(); +inline ::emboss::support::Maybe +GenericJsonTestStructView::has_four_byte_uint() const { + return ::emboss::support::Maybe(true); } -namespace StructWithSkippedFields { -inline constexpr ::std::int32_t MinSizeInBytes() { - return ::emboss::support::Maybe(static_cast(3LL)).ValueOrDefault(); -} -} // namespace StructWithSkippedFields template -inline constexpr ::std::int32_t -GenericStructWithSkippedFieldsView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { - return StructWithSkippedFields::MinSizeInBytes(); +inline typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<64, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 64>> + + GenericJsonTestStructView::eight_byte_uint() + const { + + if ( has_eight_byte_uint().ValueOr(false)) { + + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(8LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(9LL)); + if (emboss_reserved_local_size.Known() && + emboss_reserved_local_size.ValueOr(0) >= 0 && + emboss_reserved_local_offset.Known() && + emboss_reserved_local_offset.ValueOr(0) >= 0) { + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<64, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 64>> + +( + backing_ + .template GetOffsetStorage<0, + 9>( + emboss_reserved_local_offset.ValueOrDefault(), + emboss_reserved_local_size.ValueOrDefault())); + } + } + return ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<64, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock>, 64>> + +(); } template -inline constexpr ::std::int32_t -GenericStructWithSkippedFieldsView< - Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { - return StructWithSkippedFields::MinSizeInBytes(); +inline ::emboss::support::Maybe +GenericJsonTestStructView::has_eight_byte_uint() const { + return ::emboss::support::Maybe(true); } -namespace StructWithSkippedStructureFields { - -} // namespace StructWithSkippedStructureFields template -inline typename ::emboss::test::GenericVanillaView> +inline typename ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 8>> - GenericStructWithSkippedStructureFieldsView::a() +, typename Storage::template OffsetStorageType, 1, + 8 > + + GenericJsonTestStructView::uint8_array() const { - if ( has_a().ValueOr(false)) { + if ( has_uint8_array().ValueOr(false)) { - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(0LL)); + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(10LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(17LL)); if (emboss_reserved_local_size.Known() && emboss_reserved_local_size.ValueOr(0) >= 0 && emboss_reserved_local_offset.Known() && emboss_reserved_local_offset.ValueOr(0) >= 0) { - return ::emboss::test::GenericVanillaView> + return ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 8>> + +, typename Storage::template OffsetStorageType, 1, + 8 > ( backing_ .template GetOffsetStorage<0, - 0>( + 17>( emboss_reserved_local_offset.ValueOrDefault(), emboss_reserved_local_size.ValueOrDefault())); } } - return ::emboss::test::GenericVanillaView> + return ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 8>> + +, typename Storage::template OffsetStorageType, 1, + 8 > (); } template inline ::emboss::support::Maybe -GenericStructWithSkippedStructureFieldsView::has_a() const { +GenericJsonTestStructView::has_uint8_array() const { return ::emboss::support::Maybe(true); } template -inline typename ::emboss::test::GenericVanillaView> +inline typename ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 16>> - GenericStructWithSkippedStructureFieldsView::b() +, typename Storage::template OffsetStorageType, 2, + 8 > + + GenericJsonTestStructView::uint16_array() const { - if ( has_b().ValueOr(false)) { + if ( has_uint16_array().ValueOr(false)) { - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(2LL)); + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(20LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(27LL)); if (emboss_reserved_local_size.Known() && emboss_reserved_local_size.ValueOr(0) >= 0 && emboss_reserved_local_offset.Known() && emboss_reserved_local_offset.ValueOr(0) >= 0) { - return ::emboss::test::GenericVanillaView> + return ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 16>> + +, typename Storage::template OffsetStorageType, 2, + 8 > ( backing_ .template GetOffsetStorage<0, - 2>( + 27>( emboss_reserved_local_offset.ValueOrDefault(), emboss_reserved_local_size.ValueOrDefault())); } } - return ::emboss::test::GenericVanillaView> + return ::emboss::support::GenericArrayView< + typename ::emboss::prelude::UIntView< + /**/ ::emboss::support::FixedSizeViewParameters<16, ::emboss::support::AllValuesAreOk>, + typename ::emboss::support::BitBlock::template OffsetStorageType>, 16>> + +, typename Storage::template OffsetStorageType, 2, + 8 > (); } template inline ::emboss::support::Maybe -GenericStructWithSkippedStructureFieldsView::has_b() const { +GenericJsonTestStructView::has_uint16_array() const { return ::emboss::support::Maybe(true); } template -inline typename ::emboss::test::GenericVanillaView> +inline typename ::emboss::support::GenericArrayView< + typename ::emboss::test::GenericJsonTestArrayStructView::template OffsetStorageType> - GenericStructWithSkippedStructureFieldsView::c() +, typename Storage::template OffsetStorageType, 4, + 8 > + + GenericJsonTestStructView::struct_array() const { - if ( has_c().ValueOr(false)) { + if ( has_struct_array().ValueOr(false)) { - auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(2LL)); - auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(4LL)); + auto emboss_reserved_local_size = ::emboss::support::Maybe(static_cast(40LL)); + auto emboss_reserved_local_offset = ::emboss::support::Maybe(static_cast(47LL)); if (emboss_reserved_local_size.Known() && emboss_reserved_local_size.ValueOr(0) >= 0 && emboss_reserved_local_offset.Known() && emboss_reserved_local_offset.ValueOr(0) >= 0) { - return ::emboss::test::GenericVanillaView> + return ::emboss::support::GenericArrayView< + typename ::emboss::test::GenericJsonTestArrayStructView::template OffsetStorageType> + +, typename Storage::template OffsetStorageType, 4, + 8 > ( backing_ .template GetOffsetStorage<0, - 4>( + 47>( emboss_reserved_local_offset.ValueOrDefault(), emboss_reserved_local_size.ValueOrDefault())); } } - return ::emboss::test::GenericVanillaView> + return ::emboss::support::GenericArrayView< + typename ::emboss::test::GenericJsonTestArrayStructView::template OffsetStorageType> + +, typename Storage::template OffsetStorageType, 4, + 8 > (); } template inline ::emboss::support::Maybe -GenericStructWithSkippedStructureFieldsView::has_c() const { +GenericJsonTestStructView::has_struct_array() const { return ::emboss::support::Maybe(true); } -namespace StructWithSkippedStructureFields { +namespace JsonTestStruct { inline constexpr ::std::int32_t IntrinsicSizeInBytes() { - return ::emboss::support::Maybe(static_cast(6LL)).ValueOrDefault(); + return ::emboss::support::Maybe(static_cast(87LL)).ValueOrDefault(); } -} // namespace StructWithSkippedStructureFields +} // namespace JsonTestStruct template inline constexpr ::std::int32_t -GenericStructWithSkippedStructureFieldsView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { - return StructWithSkippedStructureFields::IntrinsicSizeInBytes(); +GenericJsonTestStructView::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { + return JsonTestStruct::IntrinsicSizeInBytes(); } template inline constexpr ::std::int32_t -GenericStructWithSkippedStructureFieldsView< +GenericJsonTestStructView< Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { - return StructWithSkippedStructureFields::IntrinsicSizeInBytes(); + return JsonTestStruct::IntrinsicSizeInBytes(); } -namespace StructWithSkippedStructureFields { +namespace JsonTestStruct { inline constexpr ::std::int32_t MaxSizeInBytes() { - return ::emboss::support::Maybe(static_cast(6LL)).ValueOrDefault(); + return ::emboss::support::Maybe(static_cast(87LL)).ValueOrDefault(); } -} // namespace StructWithSkippedStructureFields +} // namespace JsonTestStruct template inline constexpr ::std::int32_t -GenericStructWithSkippedStructureFieldsView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { - return StructWithSkippedStructureFields::MaxSizeInBytes(); +GenericJsonTestStructView::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { + return JsonTestStruct::MaxSizeInBytes(); } template inline constexpr ::std::int32_t -GenericStructWithSkippedStructureFieldsView< +GenericJsonTestStructView< Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { - return StructWithSkippedStructureFields::MaxSizeInBytes(); + return JsonTestStruct::MaxSizeInBytes(); } -namespace StructWithSkippedStructureFields { +namespace JsonTestStruct { inline constexpr ::std::int32_t MinSizeInBytes() { - return ::emboss::support::Maybe(static_cast(6LL)).ValueOrDefault(); + return ::emboss::support::Maybe(static_cast(87LL)).ValueOrDefault(); } -} // namespace StructWithSkippedStructureFields +} // namespace JsonTestStruct template inline constexpr ::std::int32_t -GenericStructWithSkippedStructureFieldsView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { - return StructWithSkippedStructureFields::MinSizeInBytes(); +GenericJsonTestStructView::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { + return JsonTestStruct::MinSizeInBytes(); } template inline constexpr ::std::int32_t -GenericStructWithSkippedStructureFieldsView< +GenericJsonTestStructView< Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { - return StructWithSkippedStructureFields::MinSizeInBytes(); + return JsonTestStruct::MinSizeInBytes(); } diff --git a/testdata/golden_cpp/uint_sizes.emb.h b/testdata/golden_cpp/uint_sizes.emb.h index df5eb3f..f642183 100644 --- a/testdata/golden_cpp/uint_sizes.emb.h +++ b/testdata/golden_cpp/uint_sizes.emb.h @@ -584,7 +584,7 @@ class GenericSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -595,20 +595,28 @@ class GenericSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -625,20 +633,28 @@ class GenericSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -655,20 +671,28 @@ class GenericSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -685,20 +709,28 @@ class GenericSizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -715,20 +747,28 @@ class GenericSizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -745,20 +785,28 @@ class GenericSizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -775,20 +823,28 @@ class GenericSizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -805,20 +861,28 @@ class GenericSizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -834,11 +898,18 @@ class GenericSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1576,7 +1647,7 @@ class GenericBigEndianSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1587,20 +1658,28 @@ class GenericBigEndianSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1617,20 +1696,28 @@ class GenericBigEndianSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1647,20 +1734,28 @@ class GenericBigEndianSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1677,20 +1772,28 @@ class GenericBigEndianSizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1707,20 +1810,28 @@ class GenericBigEndianSizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1737,20 +1848,28 @@ class GenericBigEndianSizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1767,20 +1886,28 @@ class GenericBigEndianSizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1797,20 +1924,28 @@ class GenericBigEndianSizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1826,11 +1961,18 @@ class GenericBigEndianSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2568,7 +2710,7 @@ class GenericAlternatingEndianSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2579,20 +2721,28 @@ class GenericAlternatingEndianSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2609,20 +2759,28 @@ class GenericAlternatingEndianSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2639,20 +2797,28 @@ class GenericAlternatingEndianSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2669,20 +2835,28 @@ class GenericAlternatingEndianSizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2699,20 +2873,28 @@ class GenericAlternatingEndianSizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2729,20 +2911,28 @@ class GenericAlternatingEndianSizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2759,20 +2949,28 @@ class GenericAlternatingEndianSizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2789,20 +2987,28 @@ class GenericAlternatingEndianSizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2818,11 +3024,18 @@ class GenericAlternatingEndianSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3560,7 +3773,7 @@ class GenericEnumSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3571,20 +3784,28 @@ class GenericEnumSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3601,20 +3822,28 @@ class GenericEnumSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3631,20 +3860,28 @@ class GenericEnumSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3661,20 +3898,28 @@ class GenericEnumSizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3691,20 +3936,28 @@ class GenericEnumSizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3721,20 +3974,28 @@ class GenericEnumSizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3751,20 +4012,28 @@ class GenericEnumSizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3781,20 +4050,28 @@ class GenericEnumSizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3810,11 +4087,18 @@ class GenericEnumSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4260,7 +4544,7 @@ class GenericEmbossReservedAnonymousField1View final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4271,20 +4555,28 @@ class GenericEmbossReservedAnonymousField1View final { if (has_three_and_a_half_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_and_a_half_byte().IsAggregate() || three_and_a_half_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_and_a_half_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_and_a_half_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_and_a_half_byte: "); + } three_and_a_half_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4300,11 +4592,18 @@ class GenericEmbossReservedAnonymousField1View final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4808,7 +5107,7 @@ class GenericExplicitlySizedEnumSizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4819,20 +5118,28 @@ class GenericExplicitlySizedEnumSizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4849,20 +5156,28 @@ class GenericExplicitlySizedEnumSizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4879,20 +5194,28 @@ class GenericExplicitlySizedEnumSizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4909,20 +5232,28 @@ class GenericExplicitlySizedEnumSizesView final { if (has_three_and_a_half_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_and_a_half_byte().IsAggregate() || three_and_a_half_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_and_a_half_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_and_a_half_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_and_a_half_byte: "); + } three_and_a_half_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4938,11 +5269,18 @@ class GenericExplicitlySizedEnumSizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5950,7 +6288,7 @@ class GenericArraySizesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5961,20 +6299,28 @@ class GenericArraySizesView final { if (has_one_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || one_byte().IsAggregate() || one_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("one_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"one_byte\":"); + } else { + emboss_reserved_local_stream->Write("one_byte: "); + } one_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5991,20 +6337,28 @@ class GenericArraySizesView final { if (has_two_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || two_byte().IsAggregate() || two_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("two_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"two_byte\":"); + } else { + emboss_reserved_local_stream->Write("two_byte: "); + } two_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6021,20 +6375,28 @@ class GenericArraySizesView final { if (has_three_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || three_byte().IsAggregate() || three_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("three_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"three_byte\":"); + } else { + emboss_reserved_local_stream->Write("three_byte: "); + } three_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6051,20 +6413,28 @@ class GenericArraySizesView final { if (has_four_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || four_byte().IsAggregate() || four_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("four_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"four_byte\":"); + } else { + emboss_reserved_local_stream->Write("four_byte: "); + } four_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6081,20 +6451,28 @@ class GenericArraySizesView final { if (has_five_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || five_byte().IsAggregate() || five_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("five_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"five_byte\":"); + } else { + emboss_reserved_local_stream->Write("five_byte: "); + } five_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6111,20 +6489,28 @@ class GenericArraySizesView final { if (has_six_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || six_byte().IsAggregate() || six_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("six_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"six_byte\":"); + } else { + emboss_reserved_local_stream->Write("six_byte: "); + } six_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6141,20 +6527,28 @@ class GenericArraySizesView final { if (has_seven_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || seven_byte().IsAggregate() || seven_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("seven_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"seven_byte\":"); + } else { + emboss_reserved_local_stream->Write("seven_byte: "); + } seven_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6171,20 +6565,28 @@ class GenericArraySizesView final { if (has_eight_byte().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || eight_byte().IsAggregate() || eight_byte().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("eight_byte: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"eight_byte\":"); + } else { + emboss_reserved_local_stream->Write("eight_byte: "); + } eight_byte().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6200,11 +6602,18 @@ class GenericArraySizesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/golden_cpp/virtual_field.emb.h b/testdata/golden_cpp/virtual_field.emb.h index 140020a..8f049ed 100644 --- a/testdata/golden_cpp/virtual_field.emb.h +++ b/testdata/golden_cpp/virtual_field.emb.h @@ -439,7 +439,7 @@ class GenericStructureWithConstantsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -545,20 +545,28 @@ class GenericStructureWithConstantsView final { if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -575,20 +583,28 @@ class GenericStructureWithConstantsView final { if (has_alias_of_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_of_value().IsAggregate() || alias_of_value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_of_value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_of_value\":"); + } else { + emboss_reserved_local_stream->Write("alias_of_value: "); + } alias_of_value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -605,20 +621,28 @@ class GenericStructureWithConstantsView final { if (has_alias_of_alias_of_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_of_alias_of_value().IsAggregate() || alias_of_alias_of_value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_of_alias_of_value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_of_alias_of_value\":"); + } else { + emboss_reserved_local_stream->Write("alias_of_alias_of_value: "); + } alias_of_alias_of_value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -672,11 +696,18 @@ class GenericStructureWithConstantsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -1394,7 +1425,7 @@ class GenericStructureWithComputedValuesView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -1405,20 +1436,28 @@ class GenericStructureWithComputedValuesView final { if (has_value().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value().IsAggregate() || value().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value\":"); + } else { + emboss_reserved_local_stream->Write("value: "); + } value().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1454,20 +1493,28 @@ class GenericStructureWithComputedValuesView final { if (has_plus_ten().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || plus_ten().IsAggregate() || plus_ten().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("plus_ten: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"plus_ten\":"); + } else { + emboss_reserved_local_stream->Write("plus_ten: "); + } plus_ten().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1484,20 +1531,28 @@ class GenericStructureWithComputedValuesView final { if (has_value2().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || value2().IsAggregate() || value2().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("value2: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"value2\":"); + } else { + emboss_reserved_local_stream->Write("value2: "); + } value2().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1533,20 +1588,28 @@ class GenericStructureWithComputedValuesView final { if (has_signed_plus_ten().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || signed_plus_ten().IsAggregate() || signed_plus_ten().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("signed_plus_ten: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"signed_plus_ten\":"); + } else { + emboss_reserved_local_stream->Write("signed_plus_ten: "); + } signed_plus_ten().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -1581,11 +1644,18 @@ class GenericStructureWithComputedValuesView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -2361,7 +2431,7 @@ class GenericStructureWithConditionalValueView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -2372,20 +2442,28 @@ class GenericStructureWithConditionalValueView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2421,20 +2499,28 @@ class GenericStructureWithConditionalValueView final { if (has_x_plus_one().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x_plus_one().IsAggregate() || x_plus_one().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x_plus_one: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x_plus_one\":"); + } else { + emboss_reserved_local_stream->Write("x_plus_one: "); + } x_plus_one().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -2450,11 +2536,18 @@ class GenericStructureWithConditionalValueView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3031,7 +3124,7 @@ class GenericStructureWithValueInConditionView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3042,20 +3135,28 @@ class GenericStructureWithValueInConditionView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3091,20 +3192,28 @@ class GenericStructureWithValueInConditionView final { if (has_if_two_x_lt_100().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || if_two_x_lt_100().IsAggregate() || if_two_x_lt_100().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("if_two_x_lt_100: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"if_two_x_lt_100\":"); + } else { + emboss_reserved_local_stream->Write("if_two_x_lt_100: "); + } if_two_x_lt_100().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3120,11 +3229,18 @@ class GenericStructureWithValueInConditionView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -3693,7 +3809,7 @@ class GenericStructureWithValuesInLocationView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -3704,20 +3820,28 @@ class GenericStructureWithValuesInLocationView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3753,20 +3877,28 @@ class GenericStructureWithValuesInLocationView final { if (has_offset_two_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || offset_two_x().IsAggregate() || offset_two_x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("offset_two_x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"offset_two_x\":"); + } else { + emboss_reserved_local_stream->Write("offset_two_x: "); + } offset_two_x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3783,20 +3915,28 @@ class GenericStructureWithValuesInLocationView final { if (has_size_two_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || size_two_x().IsAggregate() || size_two_x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("size_two_x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"size_two_x\":"); + } else { + emboss_reserved_local_stream->Write("size_two_x: "); + } size_two_x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -3812,11 +3952,18 @@ class GenericStructureWithValuesInLocationView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4308,7 +4455,7 @@ class GenericStructureWithBoolValueView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4319,20 +4466,28 @@ class GenericStructureWithBoolValueView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4367,11 +4522,18 @@ class GenericStructureWithBoolValueView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -4901,7 +5063,7 @@ class GenericStructureWithEnumValueView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -4912,20 +5074,28 @@ class GenericStructureWithEnumValueView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -4960,11 +5130,18 @@ class GenericStructureWithEnumValueView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -5421,7 +5598,7 @@ class GenericStructureWithBitsWithValueView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -5432,20 +5609,28 @@ class GenericStructureWithBitsWithValueView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5481,20 +5666,28 @@ class GenericStructureWithBitsWithValueView final { if (has_alias_of_b_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_of_b_a().IsAggregate() || alias_of_b_a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_of_b_a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_of_b_a\":"); + } else { + emboss_reserved_local_stream->Write("alias_of_b_a: "); + } alias_of_b_a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -5510,11 +5703,18 @@ class GenericStructureWithBitsWithValueView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6005,7 +6205,7 @@ class GenericBitsWithValueView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6016,20 +6216,28 @@ class GenericBitsWithValueView final { if (has_a().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a().IsAggregate() || a().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a\":"); + } else { + emboss_reserved_local_stream->Write("a: "); + } a().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6046,20 +6254,28 @@ class GenericBitsWithValueView final { if (has_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || b().IsAggregate() || b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"b\":"); + } else { + emboss_reserved_local_stream->Write("b: "); + } b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6094,11 +6310,18 @@ class GenericBitsWithValueView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -6551,7 +6774,7 @@ class GenericStructureUsingForeignConstantsView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -6562,20 +6785,28 @@ class GenericStructureUsingForeignConstantsView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -6610,11 +6841,18 @@ class GenericStructureUsingForeignConstantsView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -7073,7 +7311,7 @@ class GenericHeaderView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -7084,20 +7322,28 @@ class GenericHeaderView final { if (has_size().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || size().IsAggregate() || size().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("size: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"size\":"); + } else { + emboss_reserved_local_stream->Write("size: "); + } size().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7114,20 +7360,28 @@ class GenericHeaderView final { if (has_message_id().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || message_id().IsAggregate() || message_id().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("message_id: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"message_id\":"); + } else { + emboss_reserved_local_stream->Write("message_id: "); + } message_id().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7143,11 +7397,18 @@ class GenericHeaderView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -7549,7 +7810,7 @@ class GenericSubfieldOfAliasView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -7560,20 +7821,28 @@ class GenericSubfieldOfAliasView final { if (has_header().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || header().IsAggregate() || header().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("header: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"header\":"); + } else { + emboss_reserved_local_stream->Write("header: "); + } header().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7590,20 +7859,28 @@ class GenericSubfieldOfAliasView final { if (has_h().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || h().IsAggregate() || h().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("h: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"h\":"); + } else { + emboss_reserved_local_stream->Write("h: "); + } h().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7620,20 +7897,28 @@ class GenericSubfieldOfAliasView final { if (has_size().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || size().IsAggregate() || size().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("size: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"size\":"); + } else { + emboss_reserved_local_stream->Write("size: "); + } size().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -7649,11 +7934,18 @@ class GenericSubfieldOfAliasView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -8096,7 +8388,7 @@ class GenericRestrictedAliasView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -8107,20 +8399,28 @@ class GenericRestrictedAliasView final { if (has_a_b().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_b().IsAggregate() || a_b().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_b: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_b\":"); + } else { + emboss_reserved_local_stream->Write("a_b: "); + } a_b().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8137,20 +8437,28 @@ class GenericRestrictedAliasView final { if (has_alias_switch().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || alias_switch().IsAggregate() || alias_switch().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("alias_switch: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"alias_switch\":"); + } else { + emboss_reserved_local_stream->Write("alias_switch: "); + } alias_switch().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8167,20 +8475,28 @@ class GenericRestrictedAliasView final { if (has_a_b_alias().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || a_b_alias().IsAggregate() || a_b_alias().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("a_b_alias: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"a_b_alias\":"); + } else { + emboss_reserved_local_stream->Write("a_b_alias: "); + } a_b_alias().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8196,11 +8512,18 @@ class GenericRestrictedAliasView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -8637,7 +8960,7 @@ class GenericXView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -8648,20 +8971,28 @@ class GenericXView final { if (has_v().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || v().IsAggregate() || v().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("v: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"v\":"); + } else { + emboss_reserved_local_stream->Write("v: "); + } v().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8678,20 +9009,28 @@ class GenericXView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -8707,11 +9046,18 @@ class GenericXView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -9178,7 +9524,7 @@ class GenericHasFieldView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -9189,20 +9535,28 @@ class GenericHasFieldView final { if (has_z().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || z().IsAggregate() || z().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("z: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"z\":"); + } else { + emboss_reserved_local_stream->Write("z: "); + } z().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9219,20 +9573,28 @@ class GenericHasFieldView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9249,20 +9611,28 @@ class GenericHasFieldView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9297,11 +9667,18 @@ class GenericHasFieldView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -9829,7 +10206,7 @@ class GenericVirtualUnconditionallyUsesConditionalView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -9840,20 +10217,28 @@ class GenericVirtualUnconditionallyUsesConditionalView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9870,20 +10255,28 @@ class GenericVirtualUnconditionallyUsesConditionalView final { if (has_xc().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || xc().IsAggregate() || xc().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("xc: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"xc\":"); + } else { + emboss_reserved_local_stream->Write("xc: "); + } xc().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -9918,11 +10311,18 @@ class GenericVirtualUnconditionallyUsesConditionalView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -10413,7 +10813,7 @@ class GenericRView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -10424,20 +10824,28 @@ class GenericRView final { if (has_q().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || q().IsAggregate() || q().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("q: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"q\":"); + } else { + emboss_reserved_local_stream->Write("q: "); + } q().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -10472,11 +10880,18 @@ class GenericRView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -10914,7 +11329,7 @@ class GenericUsesSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -10925,20 +11340,28 @@ class GenericUsesSizeView final { if (has_r().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || r().IsAggregate() || r().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("r: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"r\":"); + } else { + emboss_reserved_local_stream->Write("r: "); + } r().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -10973,11 +11396,18 @@ class GenericUsesSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -11457,7 +11887,7 @@ class GenericUsesExternalSizeView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -11468,20 +11898,28 @@ class GenericUsesExternalSizeView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -11498,20 +11936,28 @@ class GenericUsesExternalSizeView final { if (has_y().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || y().IsAggregate() || y().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("y: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"y\":"); + } else { + emboss_reserved_local_stream->Write("y: "); + } y().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -11527,11 +11973,18 @@ class GenericUsesExternalSizeView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } @@ -11974,7 +12427,7 @@ class GenericImplicitWriteBackView final { void WriteToTextStream( Stream *emboss_reserved_local_stream, ::emboss::TextOutputOptions emboss_reserved_local_options) const { - ::emboss::TextOutputOptions emboss_reserved_local_field_options = + auto emboss_reserved_local_field_options = emboss_reserved_local_options.PlusOneIndent(); if (emboss_reserved_local_options.multiline()) { emboss_reserved_local_stream->Write("{\n"); @@ -11985,20 +12438,28 @@ class GenericImplicitWriteBackView final { if (has_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x().IsAggregate() || x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x\":"); + } else { + emboss_reserved_local_stream->Write("x: "); + } x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12015,20 +12476,28 @@ class GenericImplicitWriteBackView final { if (has_x_plus_ten().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x_plus_ten().IsAggregate() || x_plus_ten().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x_plus_ten: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x_plus_ten\":"); + } else { + emboss_reserved_local_stream->Write("x_plus_ten: "); + } x_plus_ten().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12045,20 +12514,28 @@ class GenericImplicitWriteBackView final { if (has_ten_plus_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_plus_x().IsAggregate() || ten_plus_x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_plus_x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_plus_x\":"); + } else { + emboss_reserved_local_stream->Write("ten_plus_x: "); + } ten_plus_x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12075,20 +12552,28 @@ class GenericImplicitWriteBackView final { if (has_x_minus_ten().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || x_minus_ten().IsAggregate() || x_minus_ten().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("x_minus_ten: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"x_minus_ten\":"); + } else { + emboss_reserved_local_stream->Write("x_minus_ten: "); + } x_minus_ten().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12105,20 +12590,28 @@ class GenericImplicitWriteBackView final { if (has_ten_minus_x().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_minus_x().IsAggregate() || ten_minus_x().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_minus_x: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_minus_x\":"); + } else { + emboss_reserved_local_stream->Write("ten_minus_x: "); + } ten_minus_x().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12135,20 +12628,28 @@ class GenericImplicitWriteBackView final { if (has_ten_minus_x_plus_ten().ValueOr(false)) { if (!emboss_reserved_local_field_options.allow_partial_output() || ten_minus_x_plus_ten().IsAggregate() || ten_minus_x_plus_ten().Ok()) { + if (emboss_reserved_local_wrote_field) { + if (emboss_reserved_local_field_options.json() || + !emboss_reserved_local_field_options.multiline()) { + emboss_reserved_local_stream->Write(","); + } + } if (emboss_reserved_local_field_options.multiline()) { emboss_reserved_local_stream->Write( emboss_reserved_local_field_options.current_indent()); - } else { - if (emboss_reserved_local_wrote_field) { - emboss_reserved_local_stream->Write(","); - } + } else if (!emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write(" "); } - emboss_reserved_local_stream->Write("ten_minus_x_plus_ten: "); + if (emboss_reserved_local_field_options.json()) { + emboss_reserved_local_stream->Write("\"ten_minus_x_plus_ten\":"); + } else { + emboss_reserved_local_stream->Write("ten_minus_x_plus_ten: "); + } ten_minus_x_plus_ten().WriteToTextStream(emboss_reserved_local_stream, emboss_reserved_local_field_options); emboss_reserved_local_wrote_field = true; - if (emboss_reserved_local_field_options.multiline()) { + if (emboss_reserved_local_field_options.multiline() && + !emboss_reserved_local_field_options.json()) { emboss_reserved_local_stream->Write("\n"); } } else if (emboss_reserved_local_field_options.allow_partial_output() && @@ -12164,11 +12665,18 @@ class GenericImplicitWriteBackView final { (void)emboss_reserved_local_wrote_field; if (emboss_reserved_local_options.multiline()) { + if (emboss_reserved_local_wrote_field && + emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write("\n"); + } emboss_reserved_local_stream->Write( emboss_reserved_local_options.current_indent()); emboss_reserved_local_stream->Write("}"); } else { - emboss_reserved_local_stream->Write(" }"); + if (!emboss_reserved_local_options.json()) { + emboss_reserved_local_stream->Write(" "); + } + emboss_reserved_local_stream->Write("}"); } } diff --git a/testdata/text_format.emb b/testdata/text_format.emb index 7458170..a8fb026 100644 --- a/testdata/text_format.emb +++ b/testdata/text_format.emb @@ -14,6 +14,7 @@ -- Structures used specifically to test text format input and output. +[$default byte_order: "LittleEndian"] [(cpp) namespace: "emboss::test"] @@ -34,3 +35,31 @@ struct StructWithSkippedStructureFields: 2 [+2] Vanilla b [text_output: "Skip"] 4 [+2] Vanilla c + +enum JsonTestEnum: + ZERO = 0 + ONE = 1 + TWO = 2 + THREE = 3 + FOUR = 4 + +struct JsonTestArrayStruct: + 0 [+1] UInt element_one + 1 [+1] UInt element_two + 2 [+1] UInt element_three + 3 [+1] UInt element_four + + +struct JsonTestStruct: + 0 [+1] JsonTestEnum one_byte_enum + 1 [+1] bits: + 0 [+7] UInt seven_bit_uint + 7 [+1] Flag one_bit_flag + + 2 [+1] UInt one_byte_uint + 3 [+2] UInt two_byte_uint + 5 [+4] UInt four_byte_uint + 9 [+8] UInt eight_byte_uint + 17 [+10] UInt:8[] uint8_array + 27 [+20] UInt:16[] uint16_array + 47 [+40] JsonTestArrayStruct[] struct_array