| /** |
| * Generated by the Emboss compiler. DO NOT EDIT! |
| */ |
| #ifndef TESTDATA_REQUIRES_EMB_H_ |
| #define TESTDATA_REQUIRES_EMB_H_ |
| #include <stdint.h> |
| #include <string.h> |
| |
| #include <algorithm> |
| #include <type_traits> |
| #include <utility> |
| |
| #include "runtime/cpp/emboss_cpp_util.h" |
| |
| #include "runtime/cpp/emboss_prelude.h" |
| |
| #include "runtime/cpp/emboss_enum_view.h" |
| |
| #include "runtime/cpp/emboss_text_util.h" |
| |
| |
| |
| /* NOLINTBEGIN */ |
| namespace emboss { |
| namespace test { |
| namespace RequiresIntegers { |
| |
| } // namespace RequiresIntegers |
| |
| |
| template <class Storage> |
| class GenericRequiresIntegersView; |
| |
| namespace RequiresBools { |
| namespace EmbossReservedAnonymousField2 { |
| |
| } // namespace EmbossReservedAnonymousField2 |
| |
| |
| template <class Storage> |
| class GenericEmbossReservedAnonymousField2View; |
| |
| |
| } // namespace RequiresBools |
| |
| |
| template <class Storage> |
| class GenericRequiresBoolsView; |
| |
| namespace RequiresEnums { |
| enum class Enum : ::std::uint64_t; |
| |
| |
| } // namespace RequiresEnums |
| |
| |
| template <class Storage> |
| class GenericRequiresEnumsView; |
| |
| namespace RequiresWithOptionalFields { |
| namespace EmbossReservedAnonymousField1 { |
| |
| } // namespace EmbossReservedAnonymousField1 |
| |
| |
| template <class Storage> |
| class GenericEmbossReservedAnonymousField1View; |
| |
| |
| } // namespace RequiresWithOptionalFields |
| |
| |
| template <class Storage> |
| class GenericRequiresWithOptionalFieldsView; |
| |
| namespace RequiresInArrayElements { |
| namespace Element { |
| |
| } // namespace Element |
| |
| |
| template <class Storage> |
| class GenericElementView; |
| |
| |
| } // namespace RequiresInArrayElements |
| |
| |
| template <class Storage> |
| class GenericRequiresInArrayElementsView; |
| |
| |
| namespace RequiresIntegers { |
| struct EmbossReservedValidatorForZeroThroughNine { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(0LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(9LL))))).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace RequiresIntegers |
| |
| |
| |
| namespace RequiresIntegers { |
| struct EmbossReservedValidatorForTenThroughTwenty { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(10LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(20LL))))).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace RequiresIntegers |
| |
| |
| |
| namespace RequiresIntegers { |
| struct EmbossReservedValidatorForDisjoint { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::Or</**/bool, bool, bool, bool>(::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(0LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(5LL)))), ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(15LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(20LL)))))).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace RequiresIntegers |
| |
| |
| |
| |
| |
| |
| |
| |
| namespace RequiresIntegers { |
| |
| } // namespace RequiresIntegers |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresIntegersView; |
| |
| template <class Storage> |
| class GenericRequiresIntegersView final { |
| public: |
| GenericRequiresIntegersView() : backing_() {} |
| explicit GenericRequiresIntegersView( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresIntegersView( |
| const GenericRequiresIntegersView<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericRequiresIntegersView< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericRequiresIntegersView( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericRequiresIntegersView( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresIntegersView<Storage> &operator=( |
| const GenericRequiresIntegersView<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_zero_through_nine().Known()) return false; |
| if (has_zero_through_nine().ValueOrDefault() && !zero_through_nine().Ok()) return false; |
| |
| |
| if (!has_ten_through_twenty().Known()) return false; |
| if (has_ten_through_twenty().ValueOrDefault() && !ten_through_twenty().Ok()) return false; |
| |
| |
| if (!has_disjoint().Known()) return false; |
| if (has_disjoint().ValueOrDefault() && !disjoint().Ok()) return false; |
| |
| |
| if (!has_ztn_plus_ttt().Known()) return false; |
| if (has_ztn_plus_ttt().ValueOrDefault() && !ztn_plus_ttt().Ok()) return false; |
| |
| |
| if (!has_alias_of_zero_through_nine().Known()) return false; |
| if (has_alias_of_zero_through_nine().ValueOrDefault() && !alias_of_zero_through_nine().Ok()) return false; |
| |
| |
| if (!has_zero_through_nine_plus_five().Known()) return false; |
| if (has_zero_through_nine_plus_five().ValueOrDefault() && !zero_through_nine_plus_five().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; |
| |
| |
| if (!(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>((zero_through_nine().Ok() ? ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(zero_through_nine().UncheckedRead())) : ::emboss::support::Maybe</**/::std::int32_t>()), ::emboss::support::Difference</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>((ten_through_twenty().Ok() ? ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(ten_through_twenty().UncheckedRead())) : ::emboss::support::Maybe</**/::std::int32_t>()), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(10LL))))).ValueOr(false)) |
| return false; |
| return true; |
| } |
| Storage BackingStorage() const { return backing_; } |
| bool IsComplete() const { |
| return backing_.Ok() && IntrinsicSizeInBytes().Ok() && |
| backing_.SizeInBytes() >= |
| static_cast</**/ ::std::size_t>( |
| IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBytes() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBytes().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBytes().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericRequiresIntegersView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_zero_through_nine().Known()) return false; |
| if (!emboss_reserved_local_other.has_zero_through_nine().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_zero_through_nine().ValueOrDefault() && |
| !has_zero_through_nine().ValueOrDefault()) |
| return false; |
| if (has_zero_through_nine().ValueOrDefault() && |
| !emboss_reserved_local_other.has_zero_through_nine().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_zero_through_nine().ValueOrDefault() && |
| has_zero_through_nine().ValueOrDefault() && |
| !zero_through_nine().Equals(emboss_reserved_local_other.zero_through_nine())) |
| return false; |
| |
| |
| |
| if (!has_ten_through_twenty().Known()) return false; |
| if (!emboss_reserved_local_other.has_ten_through_twenty().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_ten_through_twenty().ValueOrDefault() && |
| !has_ten_through_twenty().ValueOrDefault()) |
| return false; |
| if (has_ten_through_twenty().ValueOrDefault() && |
| !emboss_reserved_local_other.has_ten_through_twenty().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_ten_through_twenty().ValueOrDefault() && |
| has_ten_through_twenty().ValueOrDefault() && |
| !ten_through_twenty().Equals(emboss_reserved_local_other.ten_through_twenty())) |
| return false; |
| |
| |
| |
| if (!has_disjoint().Known()) return false; |
| if (!emboss_reserved_local_other.has_disjoint().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_disjoint().ValueOrDefault() && |
| !has_disjoint().ValueOrDefault()) |
| return false; |
| if (has_disjoint().ValueOrDefault() && |
| !emboss_reserved_local_other.has_disjoint().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_disjoint().ValueOrDefault() && |
| has_disjoint().ValueOrDefault() && |
| !disjoint().Equals(emboss_reserved_local_other.disjoint())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericRequiresIntegersView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_zero_through_nine().ValueOr(false) && |
| !has_zero_through_nine().ValueOr(false)) |
| return false; |
| if (has_zero_through_nine().ValueOr(false) && |
| !emboss_reserved_local_other.has_zero_through_nine().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_zero_through_nine().ValueOr(false) && |
| has_zero_through_nine().ValueOr(false) && |
| !zero_through_nine().UncheckedEquals(emboss_reserved_local_other.zero_through_nine())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_ten_through_twenty().ValueOr(false) && |
| !has_ten_through_twenty().ValueOr(false)) |
| return false; |
| if (has_ten_through_twenty().ValueOr(false) && |
| !emboss_reserved_local_other.has_ten_through_twenty().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_ten_through_twenty().ValueOr(false) && |
| has_ten_through_twenty().ValueOr(false) && |
| !ten_through_twenty().UncheckedEquals(emboss_reserved_local_other.ten_through_twenty())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_disjoint().ValueOr(false) && |
| !has_disjoint().ValueOr(false)) |
| return false; |
| if (has_disjoint().ValueOr(false) && |
| !emboss_reserved_local_other.has_disjoint().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_disjoint().ValueOr(false) && |
| has_disjoint().ValueOr(false) && |
| !disjoint().UncheckedEquals(emboss_reserved_local_other.disjoint())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericRequiresIntegersView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericRequiresIntegersView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericRequiresIntegersView<OtherStorage> 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 <class Stream> |
| 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 == "zero_through_nine") { |
| if (!zero_through_nine().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "ten_through_twenty") { |
| if (!ten_through_twenty().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "disjoint") { |
| if (!disjoint().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "alias_of_zero_through_nine") { |
| if (!alias_of_zero_through_nine().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "zero_through_nine_plus_five") { |
| if (!zero_through_nine_plus_five().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !zero_through_nine().IsAggregate() && !zero_through_nine().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("# zero_through_nine: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !ten_through_twenty().IsAggregate() && !ten_through_twenty().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("# ten_through_twenty: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_disjoint().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| disjoint().IsAggregate() || disjoint().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !disjoint().IsAggregate() && !disjoint().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("# disjoint: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_ztn_plus_ttt().ValueOr(false) && |
| emboss_reserved_local_field_options.comments()) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| ztn_plus_ttt().IsAggregate() || ztn_plus_ttt().Ok()) { |
| emboss_reserved_local_stream->Write( |
| emboss_reserved_local_field_options.current_indent()); |
| emboss_reserved_local_stream->Write("# ztn_plus_ttt: "); |
| ztn_plus_ttt().WriteToTextStream(emboss_reserved_local_stream, |
| emboss_reserved_local_field_options); |
| emboss_reserved_local_stream->Write("\n"); |
| } else { |
| if (emboss_reserved_local_field_options.multiline()) { |
| emboss_reserved_local_stream->Write( |
| emboss_reserved_local_field_options.current_indent()); |
| } |
| emboss_reserved_local_stream->Write("# ztn_plus_ttt: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !alias_of_zero_through_nine().IsAggregate() && !alias_of_zero_through_nine().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("# alias_of_zero_through_nine: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !zero_through_nine_plus_five().IsAggregate() && !zero_through_nine_plus_five().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("# zero_through_nine_plus_five: 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; } |
| |
| public: |
| typename ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForZeroThroughNine>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| zero_through_nine() const; |
| ::emboss::support::Maybe<bool> has_zero_through_nine() const; |
| |
| public: |
| typename ::emboss::prelude::IntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForTenThroughTwenty>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| ten_through_twenty() const; |
| ::emboss::support::Maybe<bool> has_ten_through_twenty() const; |
| |
| public: |
| typename ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForDisjoint>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| disjoint() const; |
| ::emboss::support::Maybe<bool> has_disjoint() const; |
| |
| public: |
| class EmbossReservedVirtualZtnPlusTttView final { |
| public: |
| using ValueType = ::std::int32_t; |
| |
| explicit EmbossReservedVirtualZtnPlusTttView( |
| const GenericRequiresIntegersView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualZtnPlusTttView() = delete; |
| EmbossReservedVirtualZtnPlusTttView(const EmbossReservedVirtualZtnPlusTttView &) = default; |
| EmbossReservedVirtualZtnPlusTttView(EmbossReservedVirtualZtnPlusTttView &&) = default; |
| EmbossReservedVirtualZtnPlusTttView &operator=(const EmbossReservedVirtualZtnPlusTttView &) = |
| default; |
| EmbossReservedVirtualZtnPlusTttView &operator=(EmbossReservedVirtualZtnPlusTttView &&) = |
| default; |
| ~EmbossReservedVirtualZtnPlusTttView() = default; |
| |
| ::std::int32_t Read() const { |
| EMBOSS_CHECK(view_.has_ztn_plus_ttt().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| ::std::int32_t UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| 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; } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ ::std::int32_t> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.zero_through_nine(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/::std::int32_t>()); |
| const auto emboss_reserved_local_subexpr_3 = view_.ten_through_twenty(); |
| const auto emboss_reserved_local_subexpr_4 = (emboss_reserved_local_subexpr_3.Ok() ? ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(emboss_reserved_local_subexpr_3.UncheckedRead())) : ::emboss::support::Maybe</**/::std::int32_t>()); |
| const auto emboss_reserved_local_subexpr_5 = ::emboss::support::Sum</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>(emboss_reserved_local_subexpr_2, emboss_reserved_local_subexpr_4); |
| |
| return emboss_reserved_local_subexpr_5; |
| } |
| |
| static constexpr bool ValueIsOk( |
| ::std::int32_t emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(10LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(19LL)))).ValueOr(false); |
| } |
| |
| const GenericRequiresIntegersView view_; |
| }; |
| EmbossReservedVirtualZtnPlusTttView ztn_plus_ttt() const; |
| ::emboss::support::Maybe<bool> has_ztn_plus_ttt() const; |
| |
| public: |
| class EmbossReservedVirtualAliasOfZeroThroughNineView final { |
| public: |
| using ValueType = ::std::int32_t; |
| |
| explicit EmbossReservedVirtualAliasOfZeroThroughNineView( |
| const GenericRequiresIntegersView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualAliasOfZeroThroughNineView() = delete; |
| EmbossReservedVirtualAliasOfZeroThroughNineView(const EmbossReservedVirtualAliasOfZeroThroughNineView &) = default; |
| EmbossReservedVirtualAliasOfZeroThroughNineView(EmbossReservedVirtualAliasOfZeroThroughNineView &&) = default; |
| EmbossReservedVirtualAliasOfZeroThroughNineView &operator=(const EmbossReservedVirtualAliasOfZeroThroughNineView &) = |
| default; |
| EmbossReservedVirtualAliasOfZeroThroughNineView &operator=(EmbossReservedVirtualAliasOfZeroThroughNineView &&) = |
| default; |
| ~EmbossReservedVirtualAliasOfZeroThroughNineView() = default; |
| |
| ::std::int32_t Read() const { |
| EMBOSS_CHECK(view_.has_alias_of_zero_through_nine().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| ::std::int32_t UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| 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; } |
| |
| bool TryToWrite(::std::int32_t emboss_reserved_local_value) { |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value); |
| if (!CouldWriteValue(emboss_reserved_local_value)) return false; |
| return view_.zero_through_nine().TryToWrite( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| void Write(::std::int32_t emboss_reserved_local_value) { |
| const bool result = TryToWrite(emboss_reserved_local_value); |
| (void)result; |
| EMBOSS_CHECK(result); |
| } |
| void UncheckedWrite(::std::int32_t emboss_reserved_local_value) { |
| view_.zero_through_nine().UncheckedWrite((::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value)).ValueOrDefault()); |
| } |
| bool CouldWriteValue(::std::int32_t emboss_reserved_local_value) { |
| if (!ValueIsOk(emboss_reserved_local_value)) return false; |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value); |
| if (!emboss_reserved_local_maybe_new_value.Known()) return false; |
| return view_.zero_through_nine().CouldWriteValue( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) { |
| return ::emboss::support::ReadIntegerFromTextStream( |
| this, emboss_reserved_local_stream); |
| } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ ::std::int32_t> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.zero_through_nine(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/::std::int32_t>()); |
| |
| return emboss_reserved_local_subexpr_2; |
| } |
| |
| static constexpr bool ValueIsOk( |
| ::std::int32_t emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(2LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(7LL)))).ValueOr(false); |
| } |
| |
| const GenericRequiresIntegersView view_; |
| }; |
| EmbossReservedVirtualAliasOfZeroThroughNineView alias_of_zero_through_nine() const; |
| ::emboss::support::Maybe<bool> has_alias_of_zero_through_nine() const; |
| |
| public: |
| class EmbossReservedVirtualZeroThroughNinePlusFiveView final { |
| public: |
| using ValueType = ::std::int32_t; |
| |
| explicit EmbossReservedVirtualZeroThroughNinePlusFiveView( |
| const GenericRequiresIntegersView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualZeroThroughNinePlusFiveView() = delete; |
| EmbossReservedVirtualZeroThroughNinePlusFiveView(const EmbossReservedVirtualZeroThroughNinePlusFiveView &) = default; |
| EmbossReservedVirtualZeroThroughNinePlusFiveView(EmbossReservedVirtualZeroThroughNinePlusFiveView &&) = default; |
| EmbossReservedVirtualZeroThroughNinePlusFiveView &operator=(const EmbossReservedVirtualZeroThroughNinePlusFiveView &) = |
| default; |
| EmbossReservedVirtualZeroThroughNinePlusFiveView &operator=(EmbossReservedVirtualZeroThroughNinePlusFiveView &&) = |
| default; |
| ~EmbossReservedVirtualZeroThroughNinePlusFiveView() = default; |
| |
| ::std::int32_t Read() const { |
| EMBOSS_CHECK(view_.has_zero_through_nine_plus_five().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| ::std::int32_t UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| 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; } |
| |
| bool TryToWrite(::std::int32_t emboss_reserved_local_value) { |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Difference</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(5LL))); |
| if (!CouldWriteValue(emboss_reserved_local_value)) return false; |
| return view_.zero_through_nine().TryToWrite( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| void Write(::std::int32_t emboss_reserved_local_value) { |
| const bool result = TryToWrite(emboss_reserved_local_value); |
| (void)result; |
| EMBOSS_CHECK(result); |
| } |
| void UncheckedWrite(::std::int32_t emboss_reserved_local_value) { |
| view_.zero_through_nine().UncheckedWrite((::emboss::support::Difference</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(5LL)))).ValueOrDefault()); |
| } |
| bool CouldWriteValue(::std::int32_t emboss_reserved_local_value) { |
| if (!ValueIsOk(emboss_reserved_local_value)) return false; |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Difference</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(5LL))); |
| if (!emboss_reserved_local_maybe_new_value.Known()) return false; |
| return view_.zero_through_nine().CouldWriteValue( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) { |
| return ::emboss::support::ReadIntegerFromTextStream( |
| this, emboss_reserved_local_stream); |
| } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ ::std::int32_t> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.zero_through_nine(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/::std::int32_t>()); |
| const auto emboss_reserved_local_subexpr_3 = ::emboss::support::Sum</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>(emboss_reserved_local_subexpr_2, ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(5LL))); |
| |
| return emboss_reserved_local_subexpr_3; |
| } |
| |
| static constexpr bool ValueIsOk( |
| ::std::int32_t emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(5LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(10LL)))).ValueOr(false); |
| } |
| |
| const GenericRequiresIntegersView view_; |
| }; |
| EmbossReservedVirtualZeroThroughNinePlusFiveView zero_through_nine_plus_five() const; |
| ::emboss::support::Maybe<bool> has_zero_through_nine_plus_five() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericRequiresIntegersView; |
| }; |
| using RequiresIntegersView = |
| GenericRequiresIntegersView</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using RequiresIntegersWriter = |
| GenericRequiresIntegersView</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresIntegersView { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericRequiresIntegersView< |
| GenericRequiresIntegersView<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericRequiresIntegersView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeRequiresIntegersView( T &&emboss_reserved_local_arg) { |
| return GenericRequiresIntegersView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericRequiresIntegersView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeRequiresIntegersView( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresIntegersView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericRequiresIntegersView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedRequiresIntegersView( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresIntegersView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| namespace RequiresBools { |
| |
| |
| namespace EmbossReservedAnonymousField2 { |
| struct EmbossReservedValidatorForMustBeTrue { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::Maybe</**/bool>(emboss_reserved_local_value)).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace EmbossReservedAnonymousField2 |
| |
| |
| |
| namespace EmbossReservedAnonymousField2 { |
| struct EmbossReservedValidatorForMustBeFalse { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::Equal</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(emboss_reserved_local_value), ::emboss::support::Maybe</**/bool>(false))).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace EmbossReservedAnonymousField2 |
| |
| |
| |
| |
| |
| namespace EmbossReservedAnonymousField2 { |
| |
| } // namespace EmbossReservedAnonymousField2 |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField2View; |
| |
| template <class Storage> |
| class GenericEmbossReservedAnonymousField2View final { |
| public: |
| GenericEmbossReservedAnonymousField2View() : backing_() {} |
| explicit GenericEmbossReservedAnonymousField2View( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericEmbossReservedAnonymousField2View( |
| const GenericEmbossReservedAnonymousField2View<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericEmbossReservedAnonymousField2View< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericEmbossReservedAnonymousField2View( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericEmbossReservedAnonymousField2View( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericEmbossReservedAnonymousField2View<Storage> &operator=( |
| const GenericEmbossReservedAnonymousField2View<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_a().Known()) return false; |
| if (has_a().ValueOrDefault() && !a().Ok()) return false; |
| |
| |
| if (!has_b().Known()) return false; |
| if (has_b().ValueOrDefault() && !b().Ok()) return false; |
| |
| |
| if (!has_must_be_true().Known()) return false; |
| if (has_must_be_true().ValueOrDefault() && !must_be_true().Ok()) return false; |
| |
| |
| if (!has_must_be_false().Known()) return false; |
| if (has_must_be_false().ValueOrDefault() && !must_be_false().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</**/ ::std::size_t>( |
| IntrinsicSizeInBits().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBits() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBits().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBits().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericEmbossReservedAnonymousField2View<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_a().Known()) return false; |
| if (!emboss_reserved_local_other.has_a().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOrDefault() && |
| !has_a().ValueOrDefault()) |
| return false; |
| if (has_a().ValueOrDefault() && |
| !emboss_reserved_local_other.has_a().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOrDefault() && |
| has_a().ValueOrDefault() && |
| !a().Equals(emboss_reserved_local_other.a())) |
| return false; |
| |
| |
| |
| if (!has_b().Known()) return false; |
| if (!emboss_reserved_local_other.has_b().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOrDefault() && |
| !has_b().ValueOrDefault()) |
| return false; |
| if (has_b().ValueOrDefault() && |
| !emboss_reserved_local_other.has_b().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOrDefault() && |
| has_b().ValueOrDefault() && |
| !b().Equals(emboss_reserved_local_other.b())) |
| return false; |
| |
| |
| |
| if (!has_must_be_true().Known()) return false; |
| if (!emboss_reserved_local_other.has_must_be_true().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_must_be_true().ValueOrDefault() && |
| !has_must_be_true().ValueOrDefault()) |
| return false; |
| if (has_must_be_true().ValueOrDefault() && |
| !emboss_reserved_local_other.has_must_be_true().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_must_be_true().ValueOrDefault() && |
| has_must_be_true().ValueOrDefault() && |
| !must_be_true().Equals(emboss_reserved_local_other.must_be_true())) |
| return false; |
| |
| |
| |
| if (!has_must_be_false().Known()) return false; |
| if (!emboss_reserved_local_other.has_must_be_false().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_must_be_false().ValueOrDefault() && |
| !has_must_be_false().ValueOrDefault()) |
| return false; |
| if (has_must_be_false().ValueOrDefault() && |
| !emboss_reserved_local_other.has_must_be_false().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_must_be_false().ValueOrDefault() && |
| has_must_be_false().ValueOrDefault() && |
| !must_be_false().Equals(emboss_reserved_local_other.must_be_false())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericEmbossReservedAnonymousField2View<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_a().ValueOr(false) && |
| !has_a().ValueOr(false)) |
| return false; |
| if (has_a().ValueOr(false) && |
| !emboss_reserved_local_other.has_a().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOr(false) && |
| has_a().ValueOr(false) && |
| !a().UncheckedEquals(emboss_reserved_local_other.a())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_b().ValueOr(false) && |
| !has_b().ValueOr(false)) |
| return false; |
| if (has_b().ValueOr(false) && |
| !emboss_reserved_local_other.has_b().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOr(false) && |
| has_b().ValueOr(false) && |
| !b().UncheckedEquals(emboss_reserved_local_other.b())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_must_be_true().ValueOr(false) && |
| !has_must_be_true().ValueOr(false)) |
| return false; |
| if (has_must_be_true().ValueOr(false) && |
| !emboss_reserved_local_other.has_must_be_true().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_must_be_true().ValueOr(false) && |
| has_must_be_true().ValueOr(false) && |
| !must_be_true().UncheckedEquals(emboss_reserved_local_other.must_be_true())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_must_be_false().ValueOr(false) && |
| !has_must_be_false().ValueOr(false)) |
| return false; |
| if (has_must_be_false().ValueOr(false) && |
| !emboss_reserved_local_other.has_must_be_false().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_must_be_false().ValueOr(false) && |
| has_must_be_false().ValueOr(false) && |
| !must_be_false().UncheckedEquals(emboss_reserved_local_other.must_be_false())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericEmbossReservedAnonymousField2View<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBits().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericEmbossReservedAnonymousField2View<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBits().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericEmbossReservedAnonymousField2View<OtherStorage> 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 <class Stream> |
| 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 == "a") { |
| if (!a().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b") { |
| if (!b().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "must_be_true") { |
| if (!must_be_true().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "must_be_false") { |
| if (!must_be_false().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_a().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| a().IsAggregate() || a().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !a().IsAggregate() && !a().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("# a: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_b().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| b().IsAggregate() || b().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b().IsAggregate() && !b().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("# b: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !must_be_true().IsAggregate() && !must_be_true().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("# must_be_true: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !must_be_false().IsAggregate() && !must_be_false().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("# must_be_false: 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; } |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 0>> |
| |
| a() const; |
| ::emboss::support::Maybe<bool> has_a() const; |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 1>> |
| |
| b() const; |
| ::emboss::support::Maybe<bool> has_b() const; |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| must_be_true() const; |
| ::emboss::support::Maybe<bool> has_must_be_true() const; |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeFalse>, |
| typename Storage::template OffsetStorageType</**/0, 3>> |
| |
| must_be_false() const; |
| ::emboss::support::Maybe<bool> has_must_be_false() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBits() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBits() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBits() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericEmbossReservedAnonymousField2View; |
| }; |
| using EmbossReservedAnonymousField2View = |
| GenericEmbossReservedAnonymousField2View</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using EmbossReservedAnonymousField2Writer = |
| GenericEmbossReservedAnonymousField2View</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField2View { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField2View< |
| GenericEmbossReservedAnonymousField2View<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericEmbossReservedAnonymousField2View< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeEmbossReservedAnonymousField2View( T &&emboss_reserved_local_arg) { |
| return GenericEmbossReservedAnonymousField2View< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericEmbossReservedAnonymousField2View</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeEmbossReservedAnonymousField2View( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericEmbossReservedAnonymousField2View</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericEmbossReservedAnonymousField2View< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedEmbossReservedAnonymousField2View( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericEmbossReservedAnonymousField2View< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| } // namespace RequiresBools |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresBoolsView; |
| |
| template <class Storage> |
| class GenericRequiresBoolsView final { |
| public: |
| GenericRequiresBoolsView() : backing_() {} |
| explicit GenericRequiresBoolsView( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresBoolsView( |
| const GenericRequiresBoolsView<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericRequiresBoolsView< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericRequiresBoolsView( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericRequiresBoolsView( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresBoolsView<Storage> &operator=( |
| const GenericRequiresBoolsView<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_emboss_reserved_anonymous_field_2().Known()) return false; |
| if (has_emboss_reserved_anonymous_field_2().ValueOrDefault() && !emboss_reserved_anonymous_field_2().Ok()) return false; |
| |
| |
| if (!has_a().Known()) return false; |
| if (has_a().ValueOrDefault() && !a().Ok()) return false; |
| |
| |
| if (!has_b().Known()) return false; |
| if (has_b().ValueOrDefault() && !b().Ok()) return false; |
| |
| |
| if (!has_must_be_true().Known()) return false; |
| if (has_must_be_true().ValueOrDefault() && !must_be_true().Ok()) return false; |
| |
| |
| if (!has_must_be_false().Known()) return false; |
| if (has_must_be_false().ValueOrDefault() && !must_be_false().Ok()) return false; |
| |
| |
| if (!has_b_must_be_false().Known()) return false; |
| if (has_b_must_be_false().ValueOrDefault() && !b_must_be_false().Ok()) return false; |
| |
| |
| if (!has_alias_of_a_must_be_true().Known()) return false; |
| if (has_alias_of_a_must_be_true().ValueOrDefault() && !alias_of_a_must_be_true().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; |
| |
| |
| if (!(::emboss::support::Or</**/bool, bool, bool, bool>((a().Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(a().UncheckedRead())) : ::emboss::support::Maybe</**/bool>()), (b().Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(b().UncheckedRead())) : ::emboss::support::Maybe</**/bool>()))).ValueOr(false)) |
| return false; |
| return true; |
| } |
| Storage BackingStorage() const { return backing_; } |
| bool IsComplete() const { |
| return backing_.Ok() && IntrinsicSizeInBytes().Ok() && |
| backing_.SizeInBytes() >= |
| static_cast</**/ ::std::size_t>( |
| IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBytes() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBytes().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBytes().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericRequiresBoolsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_emboss_reserved_anonymous_field_2().Known()) return false; |
| if (!emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().ValueOrDefault() && |
| !has_emboss_reserved_anonymous_field_2().ValueOrDefault()) |
| return false; |
| if (has_emboss_reserved_anonymous_field_2().ValueOrDefault() && |
| !emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().ValueOrDefault() && |
| has_emboss_reserved_anonymous_field_2().ValueOrDefault() && |
| !emboss_reserved_anonymous_field_2().Equals(emboss_reserved_local_other.emboss_reserved_anonymous_field_2())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericRequiresBoolsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().ValueOr(false) && |
| !has_emboss_reserved_anonymous_field_2().ValueOr(false)) |
| return false; |
| if (has_emboss_reserved_anonymous_field_2().ValueOr(false) && |
| !emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_emboss_reserved_anonymous_field_2().ValueOr(false) && |
| has_emboss_reserved_anonymous_field_2().ValueOr(false) && |
| !emboss_reserved_anonymous_field_2().UncheckedEquals(emboss_reserved_local_other.emboss_reserved_anonymous_field_2())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericRequiresBoolsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericRequiresBoolsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericRequiresBoolsView<OtherStorage> 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 <class Stream> |
| 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 == "a") { |
| if (!a().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b") { |
| if (!b().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "must_be_true") { |
| if (!must_be_true().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "must_be_false") { |
| if (!must_be_false().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "alias_of_a_must_be_true") { |
| if (!alias_of_a_must_be_true().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_a().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| a().IsAggregate() || a().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !a().IsAggregate() && !a().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("# a: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_b().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| b().IsAggregate() || b().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b().IsAggregate() && !b().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("# b: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !must_be_true().IsAggregate() && !must_be_true().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("# must_be_true: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !must_be_false().IsAggregate() && !must_be_false().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("# must_be_false: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_b_must_be_false().ValueOr(false) && |
| emboss_reserved_local_field_options.comments()) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| b_must_be_false().IsAggregate() || b_must_be_false().Ok()) { |
| emboss_reserved_local_stream->Write( |
| emboss_reserved_local_field_options.current_indent()); |
| emboss_reserved_local_stream->Write("# b_must_be_false: "); |
| b_must_be_false().WriteToTextStream(emboss_reserved_local_stream, |
| emboss_reserved_local_field_options); |
| emboss_reserved_local_stream->Write("\n"); |
| } else { |
| if (emboss_reserved_local_field_options.multiline()) { |
| emboss_reserved_local_stream->Write( |
| emboss_reserved_local_field_options.current_indent()); |
| } |
| emboss_reserved_local_stream->Write("# b_must_be_false: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !alias_of_a_must_be_true().IsAggregate() && !alias_of_a_must_be_true().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("# alias_of_a_must_be_true: 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; } |
| |
| private: |
| typename ::emboss::test::RequiresBools::GenericEmbossReservedAnonymousField2View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| emboss_reserved_anonymous_field_2() const; |
| ::emboss::support::Maybe<bool> has_emboss_reserved_anonymous_field_2() const; |
| |
| public: |
| auto a() const -> decltype(this->emboss_reserved_anonymous_field_2().a()) { |
| return has_a().ValueOrDefault() ? emboss_reserved_anonymous_field_2().a() |
| : decltype(this->emboss_reserved_anonymous_field_2().a())(); |
| } |
| ::emboss::support::Maybe<bool> has_a() const; |
| |
| public: |
| auto b() const -> decltype(this->emboss_reserved_anonymous_field_2().b()) { |
| return has_b().ValueOrDefault() ? emboss_reserved_anonymous_field_2().b() |
| : decltype(this->emboss_reserved_anonymous_field_2().b())(); |
| } |
| ::emboss::support::Maybe<bool> has_b() const; |
| |
| public: |
| auto must_be_true() const -> decltype(this->emboss_reserved_anonymous_field_2().must_be_true()) { |
| return has_must_be_true().ValueOrDefault() ? emboss_reserved_anonymous_field_2().must_be_true() |
| : decltype(this->emboss_reserved_anonymous_field_2().must_be_true())(); |
| } |
| ::emboss::support::Maybe<bool> has_must_be_true() const; |
| |
| public: |
| auto must_be_false() const -> decltype(this->emboss_reserved_anonymous_field_2().must_be_false()) { |
| return has_must_be_false().ValueOrDefault() ? emboss_reserved_anonymous_field_2().must_be_false() |
| : decltype(this->emboss_reserved_anonymous_field_2().must_be_false())(); |
| } |
| ::emboss::support::Maybe<bool> has_must_be_false() const; |
| |
| public: |
| class EmbossReservedVirtualBMustBeFalseView final { |
| public: |
| using ValueType = bool; |
| |
| explicit EmbossReservedVirtualBMustBeFalseView( |
| const GenericRequiresBoolsView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualBMustBeFalseView() = delete; |
| EmbossReservedVirtualBMustBeFalseView(const EmbossReservedVirtualBMustBeFalseView &) = default; |
| EmbossReservedVirtualBMustBeFalseView(EmbossReservedVirtualBMustBeFalseView &&) = default; |
| EmbossReservedVirtualBMustBeFalseView &operator=(const EmbossReservedVirtualBMustBeFalseView &) = |
| default; |
| EmbossReservedVirtualBMustBeFalseView &operator=(EmbossReservedVirtualBMustBeFalseView &&) = |
| default; |
| ~EmbossReservedVirtualBMustBeFalseView() = default; |
| |
| bool Read() const { |
| EMBOSS_CHECK(view_.has_b_must_be_false().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| bool UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| void WriteToTextStream(Stream *emboss_reserved_local_stream, |
| const ::emboss::TextOutputOptions |
| &emboss_reserved_local_options) const { |
| ::emboss::support::WriteBooleanViewToTextStream( |
| this, emboss_reserved_local_stream, emboss_reserved_local_options); |
| } |
| |
| static constexpr bool IsAggregate() { return false; } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ bool> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.b(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/bool>()); |
| const auto emboss_reserved_local_subexpr_3 = ::emboss::support::Equal</**/bool, bool, bool, bool>(emboss_reserved_local_subexpr_2, ::emboss::support::Maybe</**/bool>(false)); |
| |
| return emboss_reserved_local_subexpr_3; |
| } |
| |
| static constexpr bool ValueIsOk( |
| bool emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::Maybe</**/bool>(emboss_reserved_local_value).ValueOr(false); |
| } |
| |
| const GenericRequiresBoolsView view_; |
| }; |
| EmbossReservedVirtualBMustBeFalseView b_must_be_false() const; |
| ::emboss::support::Maybe<bool> has_b_must_be_false() const; |
| |
| public: |
| class EmbossReservedVirtualAliasOfAMustBeTrueView final { |
| public: |
| using ValueType = bool; |
| |
| explicit EmbossReservedVirtualAliasOfAMustBeTrueView( |
| const GenericRequiresBoolsView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualAliasOfAMustBeTrueView() = delete; |
| EmbossReservedVirtualAliasOfAMustBeTrueView(const EmbossReservedVirtualAliasOfAMustBeTrueView &) = default; |
| EmbossReservedVirtualAliasOfAMustBeTrueView(EmbossReservedVirtualAliasOfAMustBeTrueView &&) = default; |
| EmbossReservedVirtualAliasOfAMustBeTrueView &operator=(const EmbossReservedVirtualAliasOfAMustBeTrueView &) = |
| default; |
| EmbossReservedVirtualAliasOfAMustBeTrueView &operator=(EmbossReservedVirtualAliasOfAMustBeTrueView &&) = |
| default; |
| ~EmbossReservedVirtualAliasOfAMustBeTrueView() = default; |
| |
| bool Read() const { |
| EMBOSS_CHECK(view_.has_alias_of_a_must_be_true().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| bool UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| void WriteToTextStream(Stream *emboss_reserved_local_stream, |
| const ::emboss::TextOutputOptions |
| &emboss_reserved_local_options) const { |
| ::emboss::support::WriteBooleanViewToTextStream( |
| this, emboss_reserved_local_stream, emboss_reserved_local_options); |
| } |
| |
| static constexpr bool IsAggregate() { return false; } |
| |
| bool TryToWrite(bool emboss_reserved_local_value) { |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value); |
| if (!CouldWriteValue(emboss_reserved_local_value)) return false; |
| return view_.a().TryToWrite( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| void Write(bool emboss_reserved_local_value) { |
| const bool result = TryToWrite(emboss_reserved_local_value); |
| (void)result; |
| EMBOSS_CHECK(result); |
| } |
| void UncheckedWrite(bool emboss_reserved_local_value) { |
| view_.a().UncheckedWrite((::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value)).ValueOrDefault()); |
| } |
| bool CouldWriteValue(bool emboss_reserved_local_value) { |
| if (!ValueIsOk(emboss_reserved_local_value)) return false; |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value); |
| if (!emboss_reserved_local_maybe_new_value.Known()) return false; |
| return view_.a().CouldWriteValue( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) { |
| return ::emboss::support::ReadIntegerFromTextStream( |
| this, emboss_reserved_local_stream); |
| } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ bool> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.a(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/bool>()); |
| |
| return emboss_reserved_local_subexpr_2; |
| } |
| |
| static constexpr bool ValueIsOk( |
| bool emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::Maybe</**/bool>(emboss_reserved_local_value).ValueOr(false); |
| } |
| |
| const GenericRequiresBoolsView view_; |
| }; |
| EmbossReservedVirtualAliasOfAMustBeTrueView alias_of_a_must_be_true() const; |
| ::emboss::support::Maybe<bool> has_alias_of_a_must_be_true() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericRequiresBoolsView; |
| }; |
| using RequiresBoolsView = |
| GenericRequiresBoolsView</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using RequiresBoolsWriter = |
| GenericRequiresBoolsView</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresBoolsView { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericRequiresBoolsView< |
| GenericRequiresBoolsView<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericRequiresBoolsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeRequiresBoolsView( T &&emboss_reserved_local_arg) { |
| return GenericRequiresBoolsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericRequiresBoolsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeRequiresBoolsView( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresBoolsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericRequiresBoolsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedRequiresBoolsView( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresBoolsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| |
| namespace RequiresEnums { |
| struct EmbossReservedValidatorForC { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::Or</**/bool, bool, bool, bool>(::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>(::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(0))), ::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>(::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(1))))).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace RequiresEnums |
| |
| |
| |
| |
| |
| |
| |
| namespace RequiresEnums { |
| enum class Enum : ::std::uint64_t { |
| EN0 = static_cast</**/::std::int32_t>(0LL), |
| EN1 = static_cast</**/::std::int32_t>(1LL), |
| EN2 = static_cast</**/::std::int32_t>(2LL), |
| EN3 = static_cast</**/::std::int32_t>(3LL), |
| |
| }; |
| template <class Enum> |
| class EnumTraits; |
| |
| template <> |
| class EnumTraits<Enum> final { |
| public: |
| static bool TryToGetEnumFromName(const char *emboss_reserved_local_name, |
| Enum *emboss_reserved_local_result) { |
| if (emboss_reserved_local_name == nullptr) return false; |
| if (!strcmp("EN0", emboss_reserved_local_name)) { |
| *emboss_reserved_local_result = Enum::EN0; |
| return true; |
| } |
| |
| if (!strcmp("EN1", emboss_reserved_local_name)) { |
| *emboss_reserved_local_result = Enum::EN1; |
| return true; |
| } |
| |
| if (!strcmp("EN2", emboss_reserved_local_name)) { |
| *emboss_reserved_local_result = Enum::EN2; |
| return true; |
| } |
| |
| if (!strcmp("EN3", emboss_reserved_local_name)) { |
| *emboss_reserved_local_result = Enum::EN3; |
| return true; |
| } |
| |
| return false; |
| } |
| |
| static const char *TryToGetNameFromEnum( |
| Enum emboss_reserved_local_value) { |
| switch (emboss_reserved_local_value) { |
| case Enum::EN0: return "EN0"; |
| |
| case Enum::EN1: return "EN1"; |
| |
| case Enum::EN2: return "EN2"; |
| |
| case Enum::EN3: return "EN3"; |
| |
| default: return nullptr; |
| } |
| } |
| |
| static bool EnumIsKnown(Enum emboss_reserved_local_value) { |
| switch (emboss_reserved_local_value) { |
| case Enum::EN0: return true; |
| |
| case Enum::EN1: return true; |
| |
| case Enum::EN2: return true; |
| |
| case Enum::EN3: return true; |
| |
| default: |
| return false; |
| } |
| } |
| |
| static ::std::ostream &SendToOstream(::std::ostream &emboss_reserved_local_os, |
| Enum 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</**/ ::std::underlying_type<Enum>::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, |
| Enum *emboss_reserved_local_result) { |
| return EnumTraits<Enum>::TryToGetEnumFromName( |
| emboss_reserved_local_name, emboss_reserved_local_result); |
| } |
| |
| static inline const char *TryToGetNameFromEnum( |
| Enum emboss_reserved_local_value) { |
| return EnumTraits<Enum>::TryToGetNameFromEnum( |
| emboss_reserved_local_value); |
| } |
| |
| static inline bool EnumIsKnown(Enum emboss_reserved_local_value) { |
| return EnumTraits<Enum>::EnumIsKnown(emboss_reserved_local_value); |
| } |
| |
| static inline ::std::ostream &operator<<( |
| ::std::ostream &emboss_reserved_local_os, |
| Enum emboss_reserved_local_value) { |
| return EnumTraits<Enum>::SendToOstream(emboss_reserved_local_os, |
| emboss_reserved_local_value); |
| } |
| |
| } // namespace RequiresEnums |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresEnumsView; |
| |
| template <class Storage> |
| class GenericRequiresEnumsView final { |
| public: |
| GenericRequiresEnumsView() : backing_() {} |
| explicit GenericRequiresEnumsView( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresEnumsView( |
| const GenericRequiresEnumsView<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericRequiresEnumsView< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericRequiresEnumsView( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericRequiresEnumsView( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresEnumsView<Storage> &operator=( |
| const GenericRequiresEnumsView<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| using Enum = ::emboss::test::RequiresEnums::Enum; |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_a().Known()) return false; |
| if (has_a().ValueOrDefault() && !a().Ok()) return false; |
| |
| |
| if (!has_b().Known()) return false; |
| if (has_b().ValueOrDefault() && !b().Ok()) return false; |
| |
| |
| if (!has_c().Known()) return false; |
| if (has_c().ValueOrDefault() && !c().Ok()) return false; |
| |
| |
| if (!has_filtered_a().Known()) return false; |
| if (has_filtered_a().ValueOrDefault() && !filtered_a().Ok()) return false; |
| |
| |
| if (!has_alias_of_a().Known()) return false; |
| if (has_alias_of_a().ValueOrDefault() && !alias_of_a().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; |
| |
| |
| if (!(::emboss::support::Or</**/bool, bool, bool, bool>(::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>((a().Ok() ? ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(a().UncheckedRead())) : ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>()), ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(0))), ::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>((b().Ok() ? ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(b().UncheckedRead())) : ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>()), ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(0))))).ValueOr(false)) |
| return false; |
| return true; |
| } |
| Storage BackingStorage() const { return backing_; } |
| bool IsComplete() const { |
| return backing_.Ok() && IntrinsicSizeInBytes().Ok() && |
| backing_.SizeInBytes() >= |
| static_cast</**/ ::std::size_t>( |
| IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBytes() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBytes().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBytes().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericRequiresEnumsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_a().Known()) return false; |
| if (!emboss_reserved_local_other.has_a().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOrDefault() && |
| !has_a().ValueOrDefault()) |
| return false; |
| if (has_a().ValueOrDefault() && |
| !emboss_reserved_local_other.has_a().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOrDefault() && |
| has_a().ValueOrDefault() && |
| !a().Equals(emboss_reserved_local_other.a())) |
| return false; |
| |
| |
| |
| if (!has_b().Known()) return false; |
| if (!emboss_reserved_local_other.has_b().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOrDefault() && |
| !has_b().ValueOrDefault()) |
| return false; |
| if (has_b().ValueOrDefault() && |
| !emboss_reserved_local_other.has_b().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOrDefault() && |
| has_b().ValueOrDefault() && |
| !b().Equals(emboss_reserved_local_other.b())) |
| return false; |
| |
| |
| |
| if (!has_c().Known()) return false; |
| if (!emboss_reserved_local_other.has_c().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_c().ValueOrDefault() && |
| !has_c().ValueOrDefault()) |
| return false; |
| if (has_c().ValueOrDefault() && |
| !emboss_reserved_local_other.has_c().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_c().ValueOrDefault() && |
| has_c().ValueOrDefault() && |
| !c().Equals(emboss_reserved_local_other.c())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericRequiresEnumsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_a().ValueOr(false) && |
| !has_a().ValueOr(false)) |
| return false; |
| if (has_a().ValueOr(false) && |
| !emboss_reserved_local_other.has_a().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOr(false) && |
| has_a().ValueOr(false) && |
| !a().UncheckedEquals(emboss_reserved_local_other.a())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_b().ValueOr(false) && |
| !has_b().ValueOr(false)) |
| return false; |
| if (has_b().ValueOr(false) && |
| !emboss_reserved_local_other.has_b().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOr(false) && |
| has_b().ValueOr(false) && |
| !b().UncheckedEquals(emboss_reserved_local_other.b())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_c().ValueOr(false) && |
| !has_c().ValueOr(false)) |
| return false; |
| if (has_c().ValueOr(false) && |
| !emboss_reserved_local_other.has_c().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_c().ValueOr(false) && |
| has_c().ValueOr(false) && |
| !c().UncheckedEquals(emboss_reserved_local_other.c())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericRequiresEnumsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericRequiresEnumsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericRequiresEnumsView<OtherStorage> 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 <class Stream> |
| 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 == "a") { |
| if (!a().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b") { |
| if (!b().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "c") { |
| if (!c().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "alias_of_a") { |
| if (!alias_of_a().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_a().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| a().IsAggregate() || a().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !a().IsAggregate() && !a().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("# a: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_b().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| b().IsAggregate() || b().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b().IsAggregate() && !b().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("# b: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_c().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| c().IsAggregate() || c().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !c().IsAggregate() && !c().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("# c: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_filtered_a().ValueOr(false) && |
| emboss_reserved_local_field_options.comments()) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| filtered_a().IsAggregate() || filtered_a().Ok()) { |
| emboss_reserved_local_stream->Write( |
| emboss_reserved_local_field_options.current_indent()); |
| emboss_reserved_local_stream->Write("# filtered_a: "); |
| filtered_a().WriteToTextStream(emboss_reserved_local_stream, |
| emboss_reserved_local_field_options); |
| emboss_reserved_local_stream->Write("\n"); |
| } else { |
| if (emboss_reserved_local_field_options.multiline()) { |
| emboss_reserved_local_stream->Write( |
| emboss_reserved_local_field_options.current_indent()); |
| } |
| emboss_reserved_local_stream->Write("# filtered_a: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !alias_of_a().IsAggregate() && !alias_of_a().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("# alias_of_a: 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; } |
| |
| public: |
| typename ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| a() const; |
| ::emboss::support::Maybe<bool> has_a() const; |
| |
| public: |
| typename ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| b() const; |
| ::emboss::support::Maybe<bool> has_b() const; |
| |
| public: |
| typename ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, RequiresEnums::EmbossReservedValidatorForC>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| c() const; |
| ::emboss::support::Maybe<bool> has_c() const; |
| |
| public: |
| class EmbossReservedVirtualFilteredAView final { |
| public: |
| using ValueType = ::emboss::test::RequiresEnums::Enum; |
| |
| explicit EmbossReservedVirtualFilteredAView( |
| const GenericRequiresEnumsView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualFilteredAView() = delete; |
| EmbossReservedVirtualFilteredAView(const EmbossReservedVirtualFilteredAView &) = default; |
| EmbossReservedVirtualFilteredAView(EmbossReservedVirtualFilteredAView &&) = default; |
| EmbossReservedVirtualFilteredAView &operator=(const EmbossReservedVirtualFilteredAView &) = |
| default; |
| EmbossReservedVirtualFilteredAView &operator=(EmbossReservedVirtualFilteredAView &&) = |
| default; |
| ~EmbossReservedVirtualFilteredAView() = default; |
| |
| ::emboss::test::RequiresEnums::Enum Read() const { |
| EMBOSS_CHECK(view_.has_filtered_a().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| ::emboss::test::RequiresEnums::Enum UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| void WriteToTextStream(Stream *emboss_reserved_local_stream, |
| const ::emboss::TextOutputOptions |
| &emboss_reserved_local_options) const { |
| ::emboss::support::WriteEnumViewToTextStream( |
| this, emboss_reserved_local_stream, emboss_reserved_local_options); |
| } |
| |
| static constexpr bool IsAggregate() { return false; } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ ::emboss::test::RequiresEnums::Enum> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.a(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>()); |
| const auto emboss_reserved_local_subexpr_3 = ::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_subexpr_2, ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(0))); |
| const auto emboss_reserved_local_subexpr_4 = ::emboss::support::Choice</**/::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_subexpr_3, ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(1)), emboss_reserved_local_subexpr_2); |
| |
| return emboss_reserved_local_subexpr_4; |
| } |
| |
| static constexpr bool ValueIsOk( |
| ::emboss::test::RequiresEnums::Enum emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>(::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(1))).ValueOr(false); |
| } |
| |
| const GenericRequiresEnumsView view_; |
| }; |
| EmbossReservedVirtualFilteredAView filtered_a() const; |
| ::emboss::support::Maybe<bool> has_filtered_a() const; |
| |
| public: |
| class EmbossReservedVirtualAliasOfAView final { |
| public: |
| using ValueType = ::emboss::test::RequiresEnums::Enum; |
| |
| explicit EmbossReservedVirtualAliasOfAView( |
| const GenericRequiresEnumsView &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedVirtualAliasOfAView() = delete; |
| EmbossReservedVirtualAliasOfAView(const EmbossReservedVirtualAliasOfAView &) = default; |
| EmbossReservedVirtualAliasOfAView(EmbossReservedVirtualAliasOfAView &&) = default; |
| EmbossReservedVirtualAliasOfAView &operator=(const EmbossReservedVirtualAliasOfAView &) = |
| default; |
| EmbossReservedVirtualAliasOfAView &operator=(EmbossReservedVirtualAliasOfAView &&) = |
| default; |
| ~EmbossReservedVirtualAliasOfAView() = default; |
| |
| ::emboss::test::RequiresEnums::Enum Read() const { |
| EMBOSS_CHECK(view_.has_alias_of_a().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| ::emboss::test::RequiresEnums::Enum UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| void WriteToTextStream(Stream *emboss_reserved_local_stream, |
| const ::emboss::TextOutputOptions |
| &emboss_reserved_local_options) const { |
| ::emboss::support::WriteEnumViewToTextStream( |
| this, emboss_reserved_local_stream, emboss_reserved_local_options); |
| } |
| |
| static constexpr bool IsAggregate() { return false; } |
| |
| bool TryToWrite(::emboss::test::RequiresEnums::Enum emboss_reserved_local_value) { |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value); |
| if (!CouldWriteValue(emboss_reserved_local_value)) return false; |
| return view_.a().TryToWrite( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| void Write(::emboss::test::RequiresEnums::Enum emboss_reserved_local_value) { |
| const bool result = TryToWrite(emboss_reserved_local_value); |
| (void)result; |
| EMBOSS_CHECK(result); |
| } |
| void UncheckedWrite(::emboss::test::RequiresEnums::Enum emboss_reserved_local_value) { |
| view_.a().UncheckedWrite((::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value)).ValueOrDefault()); |
| } |
| bool CouldWriteValue(::emboss::test::RequiresEnums::Enum emboss_reserved_local_value) { |
| if (!ValueIsOk(emboss_reserved_local_value)) return false; |
| const auto emboss_reserved_local_maybe_new_value = ::emboss::support::Maybe</**/decltype(emboss_reserved_local_value)>(emboss_reserved_local_value); |
| if (!emboss_reserved_local_maybe_new_value.Known()) return false; |
| return view_.a().CouldWriteValue( |
| emboss_reserved_local_maybe_new_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| bool UpdateFromTextStream(Stream *emboss_reserved_local_stream) { |
| return ::emboss::support::ReadIntegerFromTextStream( |
| this, emboss_reserved_local_stream); |
| } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ ::emboss::test::RequiresEnums::Enum> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.a(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>()); |
| |
| return emboss_reserved_local_subexpr_2; |
| } |
| |
| static constexpr bool ValueIsOk( |
| ::emboss::test::RequiresEnums::Enum emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::Equal</**/::emboss::test::RequiresEnums::Enum, bool, ::emboss::test::RequiresEnums::Enum, ::emboss::test::RequiresEnums::Enum>(::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::emboss::test::RequiresEnums::Enum>(static_cast</**/::emboss::test::RequiresEnums::Enum>(1))).ValueOr(false); |
| } |
| |
| const GenericRequiresEnumsView view_; |
| }; |
| EmbossReservedVirtualAliasOfAView alias_of_a() const; |
| ::emboss::support::Maybe<bool> has_alias_of_a() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericRequiresEnumsView; |
| }; |
| using RequiresEnumsView = |
| GenericRequiresEnumsView</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using RequiresEnumsWriter = |
| GenericRequiresEnumsView</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresEnumsView { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericRequiresEnumsView< |
| GenericRequiresEnumsView<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericRequiresEnumsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeRequiresEnumsView( T &&emboss_reserved_local_arg) { |
| return GenericRequiresEnumsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericRequiresEnumsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeRequiresEnumsView( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresEnumsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericRequiresEnumsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedRequiresEnumsView( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresEnumsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| |
| |
| |
| |
| |
| |
| namespace RequiresWithOptionalFields { |
| |
| |
| |
| namespace EmbossReservedAnonymousField1 { |
| struct EmbossReservedValidatorForBTrue { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::Maybe</**/bool>(emboss_reserved_local_value)).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace EmbossReservedAnonymousField1 |
| |
| |
| |
| |
| |
| namespace EmbossReservedAnonymousField1 { |
| |
| } // namespace EmbossReservedAnonymousField1 |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View; |
| |
| template <class Storage> |
| class GenericEmbossReservedAnonymousField1View final { |
| public: |
| GenericEmbossReservedAnonymousField1View() : backing_() {} |
| explicit GenericEmbossReservedAnonymousField1View( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericEmbossReservedAnonymousField1View( |
| const GenericEmbossReservedAnonymousField1View<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericEmbossReservedAnonymousField1View( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericEmbossReservedAnonymousField1View( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericEmbossReservedAnonymousField1View<Storage> &operator=( |
| const GenericEmbossReservedAnonymousField1View<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_a().Known()) return false; |
| if (has_a().ValueOrDefault() && !a().Ok()) return false; |
| |
| |
| if (!has_b_exists().Known()) return false; |
| if (has_b_exists().ValueOrDefault() && !b_exists().Ok()) return false; |
| |
| |
| if (!has_b().Known()) return false; |
| if (has_b().ValueOrDefault() && !b().Ok()) return false; |
| |
| |
| if (!has_b_true().Known()) return false; |
| if (has_b_true().ValueOrDefault() && !b_true().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</**/ ::std::size_t>( |
| IntrinsicSizeInBits().UncheckedRead()); |
| } |
| ::std::size_t SizeInBits() const { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBits().Read()); |
| } |
| bool SizeIsKnown() const { return IntrinsicSizeInBits().Ok(); } |
| |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericEmbossReservedAnonymousField1View<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_a().Known()) return false; |
| if (!emboss_reserved_local_other.has_a().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOrDefault() && |
| !has_a().ValueOrDefault()) |
| return false; |
| if (has_a().ValueOrDefault() && |
| !emboss_reserved_local_other.has_a().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOrDefault() && |
| has_a().ValueOrDefault() && |
| !a().Equals(emboss_reserved_local_other.a())) |
| return false; |
| |
| |
| |
| if (!has_b_exists().Known()) return false; |
| if (!emboss_reserved_local_other.has_b_exists().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_b_exists().ValueOrDefault() && |
| !has_b_exists().ValueOrDefault()) |
| return false; |
| if (has_b_exists().ValueOrDefault() && |
| !emboss_reserved_local_other.has_b_exists().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b_exists().ValueOrDefault() && |
| has_b_exists().ValueOrDefault() && |
| !b_exists().Equals(emboss_reserved_local_other.b_exists())) |
| return false; |
| |
| |
| |
| if (!has_b().Known()) return false; |
| if (!emboss_reserved_local_other.has_b().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOrDefault() && |
| !has_b().ValueOrDefault()) |
| return false; |
| if (has_b().ValueOrDefault() && |
| !emboss_reserved_local_other.has_b().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOrDefault() && |
| has_b().ValueOrDefault() && |
| !b().Equals(emboss_reserved_local_other.b())) |
| return false; |
| |
| |
| |
| if (!has_b_true().Known()) return false; |
| if (!emboss_reserved_local_other.has_b_true().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_b_true().ValueOrDefault() && |
| !has_b_true().ValueOrDefault()) |
| return false; |
| if (has_b_true().ValueOrDefault() && |
| !emboss_reserved_local_other.has_b_true().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b_true().ValueOrDefault() && |
| has_b_true().ValueOrDefault() && |
| !b_true().Equals(emboss_reserved_local_other.b_true())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericEmbossReservedAnonymousField1View<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_a().ValueOr(false) && |
| !has_a().ValueOr(false)) |
| return false; |
| if (has_a().ValueOr(false) && |
| !emboss_reserved_local_other.has_a().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_a().ValueOr(false) && |
| has_a().ValueOr(false) && |
| !a().UncheckedEquals(emboss_reserved_local_other.a())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_b_exists().ValueOr(false) && |
| !has_b_exists().ValueOr(false)) |
| return false; |
| if (has_b_exists().ValueOr(false) && |
| !emboss_reserved_local_other.has_b_exists().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b_exists().ValueOr(false) && |
| has_b_exists().ValueOr(false) && |
| !b_exists().UncheckedEquals(emboss_reserved_local_other.b_exists())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_b().ValueOr(false) && |
| !has_b().ValueOr(false)) |
| return false; |
| if (has_b().ValueOr(false) && |
| !emboss_reserved_local_other.has_b().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b().ValueOr(false) && |
| has_b().ValueOr(false) && |
| !b().UncheckedEquals(emboss_reserved_local_other.b())) |
| return false; |
| |
| |
| |
| if (emboss_reserved_local_other.has_b_true().ValueOr(false) && |
| !has_b_true().ValueOr(false)) |
| return false; |
| if (has_b_true().ValueOr(false) && |
| !emboss_reserved_local_other.has_b_true().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_b_true().ValueOr(false) && |
| has_b_true().ValueOr(false) && |
| !b_true().UncheckedEquals(emboss_reserved_local_other.b_true())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericEmbossReservedAnonymousField1View<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBits().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericEmbossReservedAnonymousField1View<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBits().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericEmbossReservedAnonymousField1View<OtherStorage> 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 <class Stream> |
| 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 == "a") { |
| if (!a().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b_exists") { |
| if (!b_exists().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b") { |
| if (!b().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b_true") { |
| if (!b_true().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_a().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| a().IsAggregate() || a().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !a().IsAggregate() && !a().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("# a: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b_exists().IsAggregate() && !b_exists().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("# b_exists: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_b().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| b().IsAggregate() || b().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b().IsAggregate() && !b().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("# b: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b_true().IsAggregate() && !b_true().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("# b_true: 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; } |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 0>> |
| |
| a() const; |
| ::emboss::support::Maybe<bool> has_a() const; |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 1>> |
| |
| b_exists() const; |
| ::emboss::support::Maybe<bool> has_b_exists() const; |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| b() const; |
| ::emboss::support::Maybe<bool> has_b() const; |
| |
| public: |
| typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField1::EmbossReservedValidatorForBTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| b_true() const; |
| ::emboss::support::Maybe<bool> has_b_true() const; |
| |
| public: |
| class EmbossReservedDollarVirtualIntrinsicSizeInBitsView final { |
| public: |
| using ValueType = ::std::int32_t; |
| |
| explicit EmbossReservedDollarVirtualIntrinsicSizeInBitsView( |
| const GenericEmbossReservedAnonymousField1View &emboss_reserved_local_view) |
| : view_(emboss_reserved_local_view) {} |
| EmbossReservedDollarVirtualIntrinsicSizeInBitsView() = delete; |
| EmbossReservedDollarVirtualIntrinsicSizeInBitsView(const EmbossReservedDollarVirtualIntrinsicSizeInBitsView &) = default; |
| EmbossReservedDollarVirtualIntrinsicSizeInBitsView(EmbossReservedDollarVirtualIntrinsicSizeInBitsView &&) = default; |
| EmbossReservedDollarVirtualIntrinsicSizeInBitsView &operator=(const EmbossReservedDollarVirtualIntrinsicSizeInBitsView &) = |
| default; |
| EmbossReservedDollarVirtualIntrinsicSizeInBitsView &operator=(EmbossReservedDollarVirtualIntrinsicSizeInBitsView &&) = |
| default; |
| ~EmbossReservedDollarVirtualIntrinsicSizeInBitsView() = default; |
| |
| ::std::int32_t Read() const { |
| EMBOSS_CHECK(view_.has_IntrinsicSizeInBits().ValueOr(false)); |
| auto emboss_reserved_local_value = MaybeRead(); |
| EMBOSS_CHECK(emboss_reserved_local_value.Known()); |
| EMBOSS_CHECK(ValueIsOk(emboss_reserved_local_value.ValueOrDefault())); |
| return emboss_reserved_local_value.ValueOrDefault(); |
| } |
| ::std::int32_t UncheckedRead() const { |
| return MaybeRead().ValueOrDefault(); |
| } |
| bool Ok() const { |
| auto emboss_reserved_local_value = MaybeRead(); |
| return emboss_reserved_local_value.Known() && |
| ValueIsOk(emboss_reserved_local_value.ValueOrDefault()); |
| } |
| template <class Stream> |
| 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; } |
| |
| |
| |
| private: |
| ::emboss::support::Maybe</**/ ::std::int32_t> MaybeRead() const { |
| const auto emboss_reserved_local_subexpr_1 = view_.b_exists(); |
| const auto emboss_reserved_local_subexpr_2 = (emboss_reserved_local_subexpr_1.Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(emboss_reserved_local_subexpr_1.UncheckedRead())) : ::emboss::support::Maybe</**/bool>()); |
| const auto emboss_reserved_local_subexpr_3 = ::emboss::support::Choice</**/::std::int32_t, ::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(emboss_reserved_local_subexpr_2, ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(0LL))); |
| const auto emboss_reserved_local_subexpr_4 = ::emboss::support::Maximum</**/::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(0LL)), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(2LL)), emboss_reserved_local_subexpr_3, emboss_reserved_local_subexpr_3); |
| |
| return emboss_reserved_local_subexpr_4; |
| } |
| |
| static constexpr bool ValueIsOk( |
| ::std::int32_t emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| ::emboss::support::Maybe<bool>(true).ValueOr(false); |
| } |
| |
| const GenericEmbossReservedAnonymousField1View view_; |
| }; |
| EmbossReservedDollarVirtualIntrinsicSizeInBitsView IntrinsicSizeInBits() const; |
| ::emboss::support::Maybe<bool> has_IntrinsicSizeInBits() const; |
| |
| 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 <class Stream> |
| 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<bool> has_MaxSizeInBits() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBits() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericEmbossReservedAnonymousField1View; |
| }; |
| using EmbossReservedAnonymousField1View = |
| GenericEmbossReservedAnonymousField1View</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using EmbossReservedAnonymousField1Writer = |
| GenericEmbossReservedAnonymousField1View</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericEmbossReservedAnonymousField1View< |
| GenericEmbossReservedAnonymousField1View<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericEmbossReservedAnonymousField1View< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeEmbossReservedAnonymousField1View( T &&emboss_reserved_local_arg) { |
| return GenericEmbossReservedAnonymousField1View< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericEmbossReservedAnonymousField1View</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeEmbossReservedAnonymousField1View( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericEmbossReservedAnonymousField1View</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericEmbossReservedAnonymousField1View< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedEmbossReservedAnonymousField1View( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericEmbossReservedAnonymousField1View< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| } // namespace RequiresWithOptionalFields |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresWithOptionalFieldsView; |
| |
| template <class Storage> |
| class GenericRequiresWithOptionalFieldsView final { |
| public: |
| GenericRequiresWithOptionalFieldsView() : backing_() {} |
| explicit GenericRequiresWithOptionalFieldsView( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresWithOptionalFieldsView( |
| const GenericRequiresWithOptionalFieldsView<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericRequiresWithOptionalFieldsView< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericRequiresWithOptionalFieldsView( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericRequiresWithOptionalFieldsView( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresWithOptionalFieldsView<Storage> &operator=( |
| const GenericRequiresWithOptionalFieldsView<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) 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_a().Known()) return false; |
| if (has_a().ValueOrDefault() && !a().Ok()) return false; |
| |
| |
| if (!has_b_exists().Known()) return false; |
| if (has_b_exists().ValueOrDefault() && !b_exists().Ok()) return false; |
| |
| |
| if (!has_b().Known()) return false; |
| if (has_b().ValueOrDefault() && !b().Ok()) return false; |
| |
| |
| if (!has_b_true().Known()) return false; |
| if (has_b_true().ValueOrDefault() && !b_true().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; |
| |
| |
| if (!(::emboss::support::Or</**/bool, bool, bool, bool>((a().Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(a().UncheckedRead())) : ::emboss::support::Maybe</**/bool>()), (b().Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(b().UncheckedRead())) : ::emboss::support::Maybe</**/bool>()))).ValueOr(false)) |
| return false; |
| return true; |
| } |
| Storage BackingStorage() const { return backing_; } |
| bool IsComplete() const { |
| return backing_.Ok() && IntrinsicSizeInBytes().Ok() && |
| backing_.SizeInBytes() >= |
| static_cast</**/ ::std::size_t>( |
| IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBytes() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBytes().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBytes().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericRequiresWithOptionalFieldsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| 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; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericRequiresWithOptionalFieldsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| 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; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericRequiresWithOptionalFieldsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericRequiresWithOptionalFieldsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericRequiresWithOptionalFieldsView<OtherStorage> 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 <class Stream> |
| 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 == "a") { |
| if (!a().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b_exists") { |
| if (!b_exists().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b") { |
| if (!b().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| if (emboss_reserved_local_name == "b_true") { |
| if (!b_true().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_a().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| a().IsAggregate() || a().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !a().IsAggregate() && !a().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("# a: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b_exists().IsAggregate() && !b_exists().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("# b_exists: UNREADABLE\n"); |
| } |
| } |
| |
| if (has_b().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| b().IsAggregate() || b().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b().IsAggregate() && !b().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("# b: UNREADABLE\n"); |
| } |
| } |
| |
| 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_field_options.multiline()) { |
| 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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !b_true().IsAggregate() && !b_true().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("# b_true: 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; } |
| |
| private: |
| typename ::emboss::test::RequiresWithOptionalFields::GenericEmbossReservedAnonymousField1View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| emboss_reserved_anonymous_field_1() const; |
| ::emboss::support::Maybe<bool> has_emboss_reserved_anonymous_field_1() const; |
| |
| public: |
| auto a() const -> decltype(this->emboss_reserved_anonymous_field_1().a()) { |
| return has_a().ValueOrDefault() ? emboss_reserved_anonymous_field_1().a() |
| : decltype(this->emboss_reserved_anonymous_field_1().a())(); |
| } |
| ::emboss::support::Maybe<bool> has_a() const; |
| |
| public: |
| auto b_exists() const -> decltype(this->emboss_reserved_anonymous_field_1().b_exists()) { |
| return has_b_exists().ValueOrDefault() ? emboss_reserved_anonymous_field_1().b_exists() |
| : decltype(this->emboss_reserved_anonymous_field_1().b_exists())(); |
| } |
| ::emboss::support::Maybe<bool> has_b_exists() const; |
| |
| public: |
| auto b() const -> decltype(this->emboss_reserved_anonymous_field_1().b()) { |
| return has_b().ValueOrDefault() ? emboss_reserved_anonymous_field_1().b() |
| : decltype(this->emboss_reserved_anonymous_field_1().b())(); |
| } |
| ::emboss::support::Maybe<bool> has_b() const; |
| |
| public: |
| auto b_true() const -> decltype(this->emboss_reserved_anonymous_field_1().b_true()) { |
| return has_b_true().ValueOrDefault() ? emboss_reserved_anonymous_field_1().b_true() |
| : decltype(this->emboss_reserved_anonymous_field_1().b_true())(); |
| } |
| ::emboss::support::Maybe<bool> has_b_true() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericRequiresWithOptionalFieldsView; |
| }; |
| using RequiresWithOptionalFieldsView = |
| GenericRequiresWithOptionalFieldsView</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using RequiresWithOptionalFieldsWriter = |
| GenericRequiresWithOptionalFieldsView</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresWithOptionalFieldsView { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericRequiresWithOptionalFieldsView< |
| GenericRequiresWithOptionalFieldsView<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericRequiresWithOptionalFieldsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeRequiresWithOptionalFieldsView( T &&emboss_reserved_local_arg) { |
| return GenericRequiresWithOptionalFieldsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericRequiresWithOptionalFieldsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeRequiresWithOptionalFieldsView( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresWithOptionalFieldsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericRequiresWithOptionalFieldsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedRequiresWithOptionalFieldsView( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresWithOptionalFieldsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| |
| |
| namespace RequiresInArrayElements { |
| namespace Element { |
| struct EmbossReservedValidatorForX { |
| template <typename ValueType> |
| static constexpr bool ValueIsOk(ValueType emboss_reserved_local_value) { |
| return (void)emboss_reserved_local_value, // Silence -Wunused-parameter |
| (::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(0LL)), ::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value)), ::emboss::support::LessThanOrEqual</**/::std::int32_t, bool, ::std::int32_t, ::std::int32_t>(::emboss::support::Maybe</**/::std::int32_t>(emboss_reserved_local_value), ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(10LL))))).ValueOrDefault(); |
| } |
| }; |
| |
| |
| } // namespace Element |
| |
| |
| |
| |
| |
| namespace Element { |
| |
| } // namespace Element |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericElementView; |
| |
| template <class Storage> |
| class GenericElementView final { |
| public: |
| GenericElementView() : backing_() {} |
| explicit GenericElementView( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericElementView( |
| const GenericElementView<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericElementView< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericElementView( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericElementView( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericElementView<Storage> &operator=( |
| const GenericElementView<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_x().Known()) return false; |
| if (has_x().ValueOrDefault() && !x().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</**/ ::std::size_t>( |
| IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBytes() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBytes().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBytes().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericElementView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_x().Known()) return false; |
| if (!emboss_reserved_local_other.has_x().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_x().ValueOrDefault() && |
| !has_x().ValueOrDefault()) |
| return false; |
| if (has_x().ValueOrDefault() && |
| !emboss_reserved_local_other.has_x().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_x().ValueOrDefault() && |
| has_x().ValueOrDefault() && |
| !x().Equals(emboss_reserved_local_other.x())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericElementView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_x().ValueOr(false) && |
| !has_x().ValueOr(false)) |
| return false; |
| if (has_x().ValueOr(false) && |
| !emboss_reserved_local_other.has_x().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_x().ValueOr(false) && |
| has_x().ValueOr(false) && |
| !x().UncheckedEquals(emboss_reserved_local_other.x())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericElementView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericElementView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericElementView<OtherStorage> 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 <class Stream> |
| 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 == "x") { |
| if (!x().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_x().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| x().IsAggregate() || x().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !x().IsAggregate() && !x().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("# x: 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; } |
| |
| public: |
| typename ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, Element::EmbossReservedValidatorForX>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| x() const; |
| ::emboss::support::Maybe<bool> has_x() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericElementView; |
| }; |
| using ElementView = |
| GenericElementView</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using ElementWriter = |
| GenericElementView</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericElementView { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericElementView< |
| GenericElementView<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericElementView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeElementView( T &&emboss_reserved_local_arg) { |
| return GenericElementView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericElementView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeElementView( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericElementView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericElementView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedElementView( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericElementView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| } // namespace RequiresInArrayElements |
| |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresInArrayElementsView; |
| |
| template <class Storage> |
| class GenericRequiresInArrayElementsView final { |
| public: |
| GenericRequiresInArrayElementsView() : backing_() {} |
| explicit GenericRequiresInArrayElementsView( |
| Storage emboss_reserved_local_bytes) |
| : backing_(emboss_reserved_local_bytes) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresInArrayElementsView( |
| const GenericRequiresInArrayElementsView<OtherStorage> &emboss_reserved_local_other) |
| : backing_{emboss_reserved_local_other.BackingStorage()} |
| {} |
| |
| template <typename Arg, |
| typename = typename ::std::enable_if< |
| !EmbossReservedInternalIsGenericRequiresInArrayElementsView< |
| typename ::std::remove_cv<typename ::std::remove_reference< |
| Arg>::type>::type>::value>::type> |
| explicit GenericRequiresInArrayElementsView( |
| Arg &&emboss_reserved_local_arg) |
| : backing_(::std::forward<Arg>( |
| emboss_reserved_local_arg)) |
| {} |
| template <typename Arg0, typename Arg1, typename... Args> |
| explicit GenericRequiresInArrayElementsView( |
| Arg0 &&emboss_reserved_local_arg0, |
| Arg1 &&emboss_reserved_local_arg1, Args &&... emboss_reserved_local_args) |
| : backing_(::std::forward<Arg0>(emboss_reserved_local_arg0), |
| ::std::forward<Arg1>(emboss_reserved_local_arg1), |
| ::std::forward<Args>( |
| emboss_reserved_local_args)...) |
| {} |
| |
| template <typename OtherStorage> |
| GenericRequiresInArrayElementsView<Storage> &operator=( |
| const GenericRequiresInArrayElementsView<OtherStorage> &emboss_reserved_local_other) { |
| backing_ = emboss_reserved_local_other.BackingStorage(); |
| return *this; |
| } |
| |
| |
| |
| bool Ok() const { |
| if (!IsComplete()) return false; |
| |
| if (!has_xs().Known()) return false; |
| if (has_xs().ValueOrDefault() && !xs().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</**/ ::std::size_t>( |
| IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| static constexpr ::std::size_t SizeInBytes() { |
| return static_cast</**/ ::std::size_t>(IntrinsicSizeInBytes().Read()); |
| } |
| static constexpr bool SizeIsKnown() { |
| return IntrinsicSizeInBytes().Ok(); |
| } |
| |
| |
| template <typename OtherStorage> |
| bool Equals( |
| GenericRequiresInArrayElementsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (!has_xs().Known()) return false; |
| if (!emboss_reserved_local_other.has_xs().Known()) return false; |
| |
| if (emboss_reserved_local_other.has_xs().ValueOrDefault() && |
| !has_xs().ValueOrDefault()) |
| return false; |
| if (has_xs().ValueOrDefault() && |
| !emboss_reserved_local_other.has_xs().ValueOrDefault()) |
| return false; |
| |
| if (emboss_reserved_local_other.has_xs().ValueOrDefault() && |
| has_xs().ValueOrDefault() && |
| !xs().Equals(emboss_reserved_local_other.xs())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| bool UncheckedEquals( |
| GenericRequiresInArrayElementsView<OtherStorage> emboss_reserved_local_other) const { |
| |
| if (emboss_reserved_local_other.has_xs().ValueOr(false) && |
| !has_xs().ValueOr(false)) |
| return false; |
| if (has_xs().ValueOr(false) && |
| !emboss_reserved_local_other.has_xs().ValueOr(false)) |
| return false; |
| |
| if (emboss_reserved_local_other.has_xs().ValueOr(false) && |
| has_xs().ValueOr(false) && |
| !xs().UncheckedEquals(emboss_reserved_local_other.xs())) |
| return false; |
| |
| return true; |
| } |
| template <typename OtherStorage> |
| void UncheckedCopyFrom( |
| GenericRequiresInArrayElementsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.UncheckedCopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().UncheckedRead()); |
| } |
| |
| template <typename OtherStorage> |
| void CopyFrom( |
| GenericRequiresInArrayElementsView<OtherStorage> emboss_reserved_local_other) const { |
| backing_.CopyFrom( |
| emboss_reserved_local_other.BackingStorage(), |
| emboss_reserved_local_other.IntrinsicSizeInBytes().Read()); |
| } |
| template <typename OtherStorage> |
| bool TryToCopyFrom( |
| GenericRequiresInArrayElementsView<OtherStorage> 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 <class Stream> |
| 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 == "xs") { |
| if (!xs().UpdateFromTextStream( |
| emboss_reserved_local_stream)) { |
| return false; |
| } |
| continue; |
| } |
| |
| return false; |
| } |
| } |
| |
| template <class Stream> |
| 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_xs().ValueOr(false)) { |
| if (!emboss_reserved_local_field_options.allow_partial_output() || |
| xs().IsAggregate() || xs().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("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()) { |
| emboss_reserved_local_stream->Write("\n"); |
| } |
| } else if (emboss_reserved_local_field_options.allow_partial_output() && |
| emboss_reserved_local_field_options.comments() && |
| !xs().IsAggregate() && !xs().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("# xs: 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; } |
| |
| public: |
| typename ::emboss::support::GenericArrayView< |
| typename ::emboss::test::RequiresInArrayElements::GenericElementView<typename Storage::template OffsetStorageType</**/0, 0>::template OffsetStorageType</**/1, 0>> |
| |
| , typename Storage::template OffsetStorageType</**/0, 0>, 1, |
| 8 > |
| |
| xs() const; |
| ::emboss::support::Maybe<bool> has_xs() 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 <class Stream> |
| 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<bool> has_IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MaxSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(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 <class Stream> |
| 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<bool> has_MinSizeInBytes() { |
| return ::emboss::support::Maybe<bool>(true); |
| } |
| |
| |
| |
| private: |
| Storage backing_; |
| |
| |
| |
| template <class OtherStorage> |
| friend class GenericRequiresInArrayElementsView; |
| }; |
| using RequiresInArrayElementsView = |
| GenericRequiresInArrayElementsView</**/ ::emboss::support::ReadOnlyContiguousBuffer>; |
| using RequiresInArrayElementsWriter = |
| GenericRequiresInArrayElementsView</**/ ::emboss::support::ReadWriteContiguousBuffer>; |
| |
| template <class View> |
| struct EmbossReservedInternalIsGenericRequiresInArrayElementsView { |
| static constexpr const bool value = false; |
| }; |
| |
| template <class Storage> |
| struct EmbossReservedInternalIsGenericRequiresInArrayElementsView< |
| GenericRequiresInArrayElementsView<Storage>> { |
| static constexpr const bool value = true; |
| }; |
| |
| template <typename T> |
| inline GenericRequiresInArrayElementsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference< |
| decltype(*::std::declval<T>()->data())>::type, |
| 1, 0>> |
| MakeRequiresInArrayElementsView( T &&emboss_reserved_local_arg) { |
| return GenericRequiresInArrayElementsView< |
| /**/ ::emboss::support::ContiguousBuffer< |
| typename ::std::remove_reference<decltype( |
| *::std::declval<T>()->data())>::type, |
| 1, 0>>( |
| ::std::forward<T>(emboss_reserved_local_arg)); |
| } |
| |
| template <typename T> |
| inline GenericRequiresInArrayElementsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>> |
| MakeRequiresInArrayElementsView( T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresInArrayElementsView</**/ ::emboss::support::ContiguousBuffer<T, 1, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| template <typename T, ::std::size_t kAlignment> |
| inline GenericRequiresInArrayElementsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>> |
| MakeAlignedRequiresInArrayElementsView( |
| T *emboss_reserved_local_data, |
| ::std::size_t emboss_reserved_local_size) { |
| return GenericRequiresInArrayElementsView< |
| /**/ ::emboss::support::ContiguousBuffer<T, kAlignment, 0>>( |
| emboss_reserved_local_data, |
| emboss_reserved_local_size); |
| } |
| |
| namespace RequiresIntegers { |
| |
| } // namespace RequiresIntegers |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForZeroThroughNine>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| GenericRequiresIntegersView<Storage>::zero_through_nine() |
| const { |
| |
| if ( has_zero_through_nine().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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, RequiresIntegers::EmbossReservedValidatorForZeroThroughNine>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForZeroThroughNine>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresIntegersView<Storage>::has_zero_through_nine() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::IntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForTenThroughTwenty>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| GenericRequiresIntegersView<Storage>::ten_through_twenty() |
| const { |
| |
| if ( has_ten_through_twenty().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::IntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForTenThroughTwenty>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 1>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::IntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForTenThroughTwenty>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresIntegersView<Storage>::has_ten_through_twenty() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForDisjoint>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| GenericRequiresIntegersView<Storage>::disjoint() |
| const { |
| |
| if ( has_disjoint().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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, RequiresIntegers::EmbossReservedValidatorForDisjoint>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 2>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, RequiresIntegers::EmbossReservedValidatorForDisjoint>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresIntegersView<Storage>::has_disjoint() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresIntegersView<Storage>::EmbossReservedVirtualZtnPlusTttView |
| GenericRequiresIntegersView<Storage>::ztn_plus_ttt() const { |
| return |
| typename GenericRequiresIntegersView<Storage>::EmbossReservedVirtualZtnPlusTttView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresIntegersView<Storage>::has_ztn_plus_ttt() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresIntegersView<Storage>::EmbossReservedVirtualAliasOfZeroThroughNineView |
| GenericRequiresIntegersView<Storage>::alias_of_zero_through_nine() const { |
| return |
| typename GenericRequiresIntegersView<Storage>::EmbossReservedVirtualAliasOfZeroThroughNineView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresIntegersView<Storage>::has_alias_of_zero_through_nine() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresIntegersView<Storage>::EmbossReservedVirtualZeroThroughNinePlusFiveView |
| GenericRequiresIntegersView<Storage>::zero_through_nine_plus_five() const { |
| return |
| typename GenericRequiresIntegersView<Storage>::EmbossReservedVirtualZeroThroughNinePlusFiveView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresIntegersView<Storage>::has_zero_through_nine_plus_five() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace RequiresIntegers { |
| inline constexpr ::std::int32_t IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresIntegers |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresIntegersView<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { |
| return RequiresIntegers::IntrinsicSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresIntegersView< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { |
| return RequiresIntegers::IntrinsicSizeInBytes(); |
| } |
| |
| namespace RequiresIntegers { |
| inline constexpr ::std::int32_t MaxSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresIntegers |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresIntegersView<Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { |
| return RequiresIntegers::MaxSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresIntegersView< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { |
| return RequiresIntegers::MaxSizeInBytes(); |
| } |
| |
| namespace RequiresIntegers { |
| inline constexpr ::std::int32_t MinSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresIntegers |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresIntegersView<Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { |
| return RequiresIntegers::MinSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresIntegersView< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { |
| return RequiresIntegers::MinSizeInBytes(); |
| } |
| namespace RequiresBools { |
| namespace EmbossReservedAnonymousField2 { |
| |
| } // namespace EmbossReservedAnonymousField2 |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 0>> |
| |
| GenericEmbossReservedAnonymousField2View<Storage>::a() |
| const { |
| |
| if ( has_a().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 0>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| 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</**/0, 0>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField2View<Storage>::has_a() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 1>> |
| |
| GenericEmbossReservedAnonymousField2View<Storage>::b() |
| const { |
| |
| if ( has_b().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 1>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 1>( |
| 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</**/0, 1>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField2View<Storage>::has_b() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| GenericEmbossReservedAnonymousField2View<Storage>::must_be_true() |
| const { |
| |
| if ( has_must_be_true().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 2>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField2View<Storage>::has_must_be_true() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeFalse>, |
| typename Storage::template OffsetStorageType</**/0, 3>> |
| |
| GenericEmbossReservedAnonymousField2View<Storage>::must_be_false() |
| const { |
| |
| if ( has_must_be_false().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeFalse>, |
| typename Storage::template OffsetStorageType</**/0, 3>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 3>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField2::EmbossReservedValidatorForMustBeFalse>, |
| typename Storage::template OffsetStorageType</**/0, 3>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField2View<Storage>::has_must_be_false() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace EmbossReservedAnonymousField2 { |
| inline constexpr ::std::int32_t IntrinsicSizeInBits() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)).ValueOrDefault(); |
| } |
| } // namespace EmbossReservedAnonymousField2 |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField2View<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBitsView::Read() { |
| return EmbossReservedAnonymousField2::IntrinsicSizeInBits(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField2View< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBitsView::UncheckedRead() { |
| return EmbossReservedAnonymousField2::IntrinsicSizeInBits(); |
| } |
| |
| namespace EmbossReservedAnonymousField2 { |
| inline constexpr ::std::int32_t MaxSizeInBits() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)).ValueOrDefault(); |
| } |
| } // namespace EmbossReservedAnonymousField2 |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField2View<Storage>::EmbossReservedDollarVirtualMaxSizeInBitsView::Read() { |
| return EmbossReservedAnonymousField2::MaxSizeInBits(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField2View< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBitsView::UncheckedRead() { |
| return EmbossReservedAnonymousField2::MaxSizeInBits(); |
| } |
| |
| namespace EmbossReservedAnonymousField2 { |
| inline constexpr ::std::int32_t MinSizeInBits() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)).ValueOrDefault(); |
| } |
| } // namespace EmbossReservedAnonymousField2 |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField2View<Storage>::EmbossReservedDollarVirtualMinSizeInBitsView::Read() { |
| return EmbossReservedAnonymousField2::MinSizeInBits(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField2View< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBitsView::UncheckedRead() { |
| return EmbossReservedAnonymousField2::MinSizeInBits(); |
| } |
| |
| } // namespace RequiresBools |
| |
| |
| template <class Storage> |
| inline typename ::emboss::test::RequiresBools::GenericEmbossReservedAnonymousField2View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| GenericRequiresBoolsView<Storage>::emboss_reserved_anonymous_field_2() |
| const { |
| |
| if ( has_emboss_reserved_anonymous_field_2().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::RequiresBools::GenericEmbossReservedAnonymousField2View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::test::RequiresBools::GenericEmbossReservedAnonymousField2View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_emboss_reserved_anonymous_field_2() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_a() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), ::emboss::support::Maybe</**/bool>(true)); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_b() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), ::emboss::support::Maybe</**/bool>(true)); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_must_be_true() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), ::emboss::support::Maybe</**/bool>(true)); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_must_be_false() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), ::emboss::support::Maybe</**/bool>(true)); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresBoolsView<Storage>::EmbossReservedVirtualBMustBeFalseView |
| GenericRequiresBoolsView<Storage>::b_must_be_false() const { |
| return |
| typename GenericRequiresBoolsView<Storage>::EmbossReservedVirtualBMustBeFalseView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_b_must_be_false() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresBoolsView<Storage>::EmbossReservedVirtualAliasOfAMustBeTrueView |
| GenericRequiresBoolsView<Storage>::alias_of_a_must_be_true() const { |
| return |
| typename GenericRequiresBoolsView<Storage>::EmbossReservedVirtualAliasOfAMustBeTrueView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresBoolsView<Storage>::has_alias_of_a_must_be_true() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace RequiresBools { |
| inline constexpr ::std::int32_t IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresBools |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresBoolsView<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { |
| return RequiresBools::IntrinsicSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresBoolsView< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { |
| return RequiresBools::IntrinsicSizeInBytes(); |
| } |
| |
| namespace RequiresBools { |
| inline constexpr ::std::int32_t MaxSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresBools |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresBoolsView<Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { |
| return RequiresBools::MaxSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresBoolsView< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { |
| return RequiresBools::MaxSizeInBytes(); |
| } |
| |
| namespace RequiresBools { |
| inline constexpr ::std::int32_t MinSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresBools |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresBoolsView<Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { |
| return RequiresBools::MinSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresBoolsView< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { |
| return RequiresBools::MinSizeInBytes(); |
| } |
| namespace RequiresEnums { |
| |
| } // namespace RequiresEnums |
| |
| |
| template <class Storage> |
| inline typename ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| GenericRequiresEnumsView<Storage>::a() |
| const { |
| |
| if ( has_a().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresEnumsView<Storage>::has_a() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| GenericRequiresEnumsView<Storage>::b() |
| const { |
| |
| if ( has_b().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 1>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, ::emboss::support::AllValuesAreOk>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 1>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresEnumsView<Storage>::has_b() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, RequiresEnums::EmbossReservedValidatorForC>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| GenericRequiresEnumsView<Storage>::c() |
| const { |
| |
| if ( has_c().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, RequiresEnums::EmbossReservedValidatorForC>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 2>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::support::EnumView< |
| /**/ ::emboss::test::RequiresEnums::Enum, |
| ::emboss::support::FixedSizeViewParameters<8, RequiresEnums::EmbossReservedValidatorForC>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 2>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresEnumsView<Storage>::has_c() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresEnumsView<Storage>::EmbossReservedVirtualFilteredAView |
| GenericRequiresEnumsView<Storage>::filtered_a() const { |
| return |
| typename GenericRequiresEnumsView<Storage>::EmbossReservedVirtualFilteredAView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresEnumsView<Storage>::has_filtered_a() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericRequiresEnumsView<Storage>::EmbossReservedVirtualAliasOfAView |
| GenericRequiresEnumsView<Storage>::alias_of_a() const { |
| return |
| typename GenericRequiresEnumsView<Storage>::EmbossReservedVirtualAliasOfAView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresEnumsView<Storage>::has_alias_of_a() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace RequiresEnums { |
| inline constexpr ::std::int32_t IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresEnums |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresEnumsView<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { |
| return RequiresEnums::IntrinsicSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresEnumsView< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { |
| return RequiresEnums::IntrinsicSizeInBytes(); |
| } |
| |
| namespace RequiresEnums { |
| inline constexpr ::std::int32_t MaxSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresEnums |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresEnumsView<Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { |
| return RequiresEnums::MaxSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresEnumsView< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { |
| return RequiresEnums::MaxSizeInBytes(); |
| } |
| |
| namespace RequiresEnums { |
| inline constexpr ::std::int32_t MinSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresEnums |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresEnumsView<Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { |
| return RequiresEnums::MinSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresEnumsView< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { |
| return RequiresEnums::MinSizeInBytes(); |
| } |
| namespace RequiresWithOptionalFields { |
| namespace EmbossReservedAnonymousField1 { |
| |
| } // namespace EmbossReservedAnonymousField1 |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 0>> |
| |
| GenericEmbossReservedAnonymousField1View<Storage>::a() |
| const { |
| |
| if ( has_a().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 0>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| 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</**/0, 0>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField1View<Storage>::has_a() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 1>> |
| |
| GenericEmbossReservedAnonymousField1View<Storage>::b_exists() |
| const { |
| |
| if ( has_b_exists().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 1>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 1>( |
| 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</**/0, 1>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField1View<Storage>::has_b_exists() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| GenericEmbossReservedAnonymousField1View<Storage>::b() |
| const { |
| |
| if ( has_b().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, ::emboss::support::AllValuesAreOk>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 2>( |
| 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</**/0, 2>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField1View<Storage>::has_b() const { |
| return (b_exists().Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(b_exists().UncheckedRead())) : ::emboss::support::Maybe</**/bool>()); |
| } |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField1::EmbossReservedValidatorForBTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| GenericEmbossReservedAnonymousField1View<Storage>::b_true() |
| const { |
| |
| if ( has_b_true().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField1::EmbossReservedValidatorForBTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 2>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::FlagView< |
| /**/ ::emboss::support::FixedSizeViewParameters<1, EmbossReservedAnonymousField1::EmbossReservedValidatorForBTrue>, |
| typename Storage::template OffsetStorageType</**/0, 2>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField1View<Storage>::has_b_true() const { |
| return (b_exists().Ok() ? ::emboss::support::Maybe</**/bool>(static_cast</**/bool>(b_exists().UncheckedRead())) : ::emboss::support::Maybe</**/bool>()); |
| } |
| |
| |
| template <class Storage> |
| inline typename GenericEmbossReservedAnonymousField1View<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBitsView |
| GenericEmbossReservedAnonymousField1View<Storage>::IntrinsicSizeInBits() const { |
| return |
| typename GenericEmbossReservedAnonymousField1View<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBitsView( |
| *this); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericEmbossReservedAnonymousField1View<Storage>::has_IntrinsicSizeInBits() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace EmbossReservedAnonymousField1 { |
| inline constexpr ::std::int32_t MaxSizeInBits() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(3LL)).ValueOrDefault(); |
| } |
| } // namespace EmbossReservedAnonymousField1 |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField1View<Storage>::EmbossReservedDollarVirtualMaxSizeInBitsView::Read() { |
| return EmbossReservedAnonymousField1::MaxSizeInBits(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField1View< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBitsView::UncheckedRead() { |
| return EmbossReservedAnonymousField1::MaxSizeInBits(); |
| } |
| |
| namespace EmbossReservedAnonymousField1 { |
| inline constexpr ::std::int32_t MinSizeInBits() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(2LL)).ValueOrDefault(); |
| } |
| } // namespace EmbossReservedAnonymousField1 |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField1View<Storage>::EmbossReservedDollarVirtualMinSizeInBitsView::Read() { |
| return EmbossReservedAnonymousField1::MinSizeInBits(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericEmbossReservedAnonymousField1View< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBitsView::UncheckedRead() { |
| return EmbossReservedAnonymousField1::MinSizeInBits(); |
| } |
| |
| } // namespace RequiresWithOptionalFields |
| |
| |
| template <class Storage> |
| inline typename ::emboss::test::RequiresWithOptionalFields::GenericEmbossReservedAnonymousField1View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| GenericRequiresWithOptionalFieldsView<Storage>::emboss_reserved_anonymous_field_1() |
| const { |
| |
| if ( has_emboss_reserved_anonymous_field_1().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::RequiresWithOptionalFields::GenericEmbossReservedAnonymousField1View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::test::RequiresWithOptionalFields::GenericEmbossReservedAnonymousField1View<typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresWithOptionalFieldsView<Storage>::has_emboss_reserved_anonymous_field_1() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresWithOptionalFieldsView<Storage>::has_a() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), ::emboss::support::Maybe</**/bool>(true)); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresWithOptionalFieldsView<Storage>::has_b_exists() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), ::emboss::support::Maybe</**/bool>(true)); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresWithOptionalFieldsView<Storage>::has_b() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), emboss_reserved_anonymous_field_1().has_b()); |
| } |
| |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresWithOptionalFieldsView<Storage>::has_b_true() const { |
| return ::emboss::support::And</**/bool, bool, bool, bool>(::emboss::support::Maybe</**/bool>(true), emboss_reserved_anonymous_field_1().has_b_true()); |
| } |
| |
| |
| namespace RequiresWithOptionalFields { |
| inline constexpr ::std::int32_t IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresWithOptionalFields |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresWithOptionalFieldsView<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { |
| return RequiresWithOptionalFields::IntrinsicSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresWithOptionalFieldsView< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { |
| return RequiresWithOptionalFields::IntrinsicSizeInBytes(); |
| } |
| |
| namespace RequiresWithOptionalFields { |
| inline constexpr ::std::int32_t MaxSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresWithOptionalFields |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresWithOptionalFieldsView<Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { |
| return RequiresWithOptionalFields::MaxSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresWithOptionalFieldsView< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { |
| return RequiresWithOptionalFields::MaxSizeInBytes(); |
| } |
| |
| namespace RequiresWithOptionalFields { |
| inline constexpr ::std::int32_t MinSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresWithOptionalFields |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresWithOptionalFieldsView<Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { |
| return RequiresWithOptionalFields::MinSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresWithOptionalFieldsView< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { |
| return RequiresWithOptionalFields::MinSizeInBytes(); |
| } |
| namespace RequiresInArrayElements { |
| namespace Element { |
| |
| } // namespace Element |
| |
| |
| template <class Storage> |
| inline typename ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, Element::EmbossReservedValidatorForX>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| GenericElementView<Storage>::x() |
| const { |
| |
| if ( has_x().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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, Element::EmbossReservedValidatorForX>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::prelude::UIntView< |
| /**/ ::emboss::support::FixedSizeViewParameters<8, Element::EmbossReservedValidatorForX>, |
| typename ::emboss::support::BitBlock</**/::emboss::support::LittleEndianByteOrderer<typename Storage::template OffsetStorageType</**/0, 0>>, 8>> |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericElementView<Storage>::has_x() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace Element { |
| inline constexpr ::std::int32_t IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace Element |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericElementView<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { |
| return Element::IntrinsicSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericElementView< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { |
| return Element::IntrinsicSizeInBytes(); |
| } |
| |
| namespace Element { |
| inline constexpr ::std::int32_t MaxSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace Element |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericElementView<Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { |
| return Element::MaxSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericElementView< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { |
| return Element::MaxSizeInBytes(); |
| } |
| |
| namespace Element { |
| inline constexpr ::std::int32_t MinSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(1LL)).ValueOrDefault(); |
| } |
| } // namespace Element |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericElementView<Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { |
| return Element::MinSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericElementView< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { |
| return Element::MinSizeInBytes(); |
| } |
| |
| } // namespace RequiresInArrayElements |
| |
| |
| template <class Storage> |
| inline typename ::emboss::support::GenericArrayView< |
| typename ::emboss::test::RequiresInArrayElements::GenericElementView<typename Storage::template OffsetStorageType</**/0, 0>::template OffsetStorageType</**/1, 0>> |
| |
| , typename Storage::template OffsetStorageType</**/0, 0>, 1, |
| 8 > |
| |
| GenericRequiresInArrayElementsView<Storage>::xs() |
| const { |
| |
| if ( has_xs().ValueOr(false)) { |
| |
| auto emboss_reserved_local_size = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)); |
| auto emboss_reserved_local_offset = ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(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::GenericArrayView< |
| typename ::emboss::test::RequiresInArrayElements::GenericElementView<typename Storage::template OffsetStorageType</**/0, 0>::template OffsetStorageType</**/1, 0>> |
| |
| , typename Storage::template OffsetStorageType</**/0, 0>, 1, |
| 8 > |
| |
| ( |
| backing_ |
| .template GetOffsetStorage<0, |
| 0>( |
| emboss_reserved_local_offset.ValueOrDefault(), |
| emboss_reserved_local_size.ValueOrDefault())); |
| } |
| } |
| return ::emboss::support::GenericArrayView< |
| typename ::emboss::test::RequiresInArrayElements::GenericElementView<typename Storage::template OffsetStorageType</**/0, 0>::template OffsetStorageType</**/1, 0>> |
| |
| , typename Storage::template OffsetStorageType</**/0, 0>, 1, |
| 8 > |
| |
| (); |
| } |
| |
| template <class Storage> |
| inline ::emboss::support::Maybe<bool> |
| GenericRequiresInArrayElementsView<Storage>::has_xs() const { |
| return ::emboss::support::Maybe</**/bool>(true); |
| } |
| |
| |
| namespace RequiresInArrayElements { |
| inline constexpr ::std::int32_t IntrinsicSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresInArrayElements |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresInArrayElementsView<Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::Read() { |
| return RequiresInArrayElements::IntrinsicSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresInArrayElementsView< |
| Storage>::EmbossReservedDollarVirtualIntrinsicSizeInBytesView::UncheckedRead() { |
| return RequiresInArrayElements::IntrinsicSizeInBytes(); |
| } |
| |
| namespace RequiresInArrayElements { |
| inline constexpr ::std::int32_t MaxSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresInArrayElements |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresInArrayElementsView<Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::Read() { |
| return RequiresInArrayElements::MaxSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresInArrayElementsView< |
| Storage>::EmbossReservedDollarVirtualMaxSizeInBytesView::UncheckedRead() { |
| return RequiresInArrayElements::MaxSizeInBytes(); |
| } |
| |
| namespace RequiresInArrayElements { |
| inline constexpr ::std::int32_t MinSizeInBytes() { |
| return ::emboss::support::Maybe</**/::std::int32_t>(static_cast</**/::std::int32_t>(4LL)).ValueOrDefault(); |
| } |
| } // namespace RequiresInArrayElements |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresInArrayElementsView<Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::Read() { |
| return RequiresInArrayElements::MinSizeInBytes(); |
| } |
| |
| template <class Storage> |
| inline constexpr ::std::int32_t |
| GenericRequiresInArrayElementsView< |
| Storage>::EmbossReservedDollarVirtualMinSizeInBytesView::UncheckedRead() { |
| return RequiresInArrayElements::MinSizeInBytes(); |
| } |
| |
| |
| |
| } // namespace test |
| |
| |
| |
| } // namespace emboss |
| |
| |
| |
| /* NOLINTEND */ |
| |
| #endif // TESTDATA_REQUIRES_EMB_H_ |
| |