// WARNING: This file is machine generated by fidlgen.

#include <union.fidl.json.llcpp.h>
#include <memory>

namespace test {
namespace name {

void ::test::name::Union::SizeAndOffsetAssertionHelper() {
  static_assert(offsetof(::test::name::Union, Primitive_) == 8);
  static_assert(offsetof(::test::name::Union, StringNeedsConstructor_) == 8);
  static_assert(offsetof(::test::name::Union, VectorStringAlsoNeedsConstructor_) == 8);
  static_assert(sizeof(::test::name::Union) == ::test::name::Union::PrimarySize);
}

}  // namespace name
}  // namespace test
