blob: 500813b3101813b228cf6e119d76cc6c012e86a2 [file] [log] [blame] [edit]
/**
* 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_