blob: 45bea33624876a24e67e50925afc2e35c9f6399a [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <lib/fidl/internal.h>
#include <lib/fidl/cpp/vector_view.h>
#include <lib/fidl/cpp/string_view.h>
#include <lib/fidl/llcpp/array_wrapper.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/traits.h>
#include <zircon/fidl.h>
namespace test {
namespace name {
struct Union;
extern "C" const fidl_type_t test_name_UnionTable;
struct Union {
enum class Tag : fidl_union_tag_t {
kPrimitive = 0,
kStringNeedsConstructor = 1,
kVectorStringAlsoNeedsConstructor = 2,
Invalid = ::std::numeric_limits<::fidl_union_tag_t>::max(),
};
bool has_invalid_tag() const { return tag_ == Tag::Invalid; }
bool is_Primitive() const { return tag_ == Tag::kPrimitive; }
int32_t& mutable_Primitive() {
tag_ = Tag::kPrimitive;
return Primitive_;
}
const int32_t& Primitive() const { return Primitive_; }
bool is_StringNeedsConstructor() const { return tag_ == Tag::kStringNeedsConstructor; }
::fidl::StringView& mutable_StringNeedsConstructor() {
tag_ = Tag::kStringNeedsConstructor;
return StringNeedsConstructor_;
}
const ::fidl::StringView& StringNeedsConstructor() const { return StringNeedsConstructor_; }
bool is_VectorStringAlsoNeedsConstructor() const { return tag_ == Tag::kVectorStringAlsoNeedsConstructor; }
::fidl::VectorView<::fidl::StringView>& mutable_VectorStringAlsoNeedsConstructor() {
tag_ = Tag::kVectorStringAlsoNeedsConstructor;
return VectorStringAlsoNeedsConstructor_;
}
const ::fidl::VectorView<::fidl::StringView>& VectorStringAlsoNeedsConstructor() const { return VectorStringAlsoNeedsConstructor_; }
Tag which() const { return tag_; }
static constexpr const fidl_type_t* Type = &test_name_UnionTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 24;
[[maybe_unused]]
static constexpr uint32_t MaxOutOfLine = 4294967295;
private:
void SizeAndOffsetAssertionHelper();
Tag tag_;
union {
int32_t Primitive_;
::fidl::StringView StringNeedsConstructor_;
::fidl::VectorView<::fidl::StringView> VectorStringAlsoNeedsConstructor_;
};
};
} // namespace name
} // namespace test
namespace fidl {
template <>
struct IsFidlType<::test::name::Union> : public std::true_type {};
static_assert(std::is_standard_layout_v<::test::name::Union>);
} // namespace fidl