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

#include <fidl/test.nullable/cpp/wire_types.h>

#ifdef __Fuchsia__
void ::test_nullable::wire::StructWithNullableRequest::_CloseHandles() {
  val.reset();
}
#endif  // __Fuchsia__

#ifdef __Fuchsia__
void ::test_nullable::wire::StructWithNullableProtocol::_CloseHandles() {
  val.reset();
}
#endif  // __Fuchsia__

#ifdef __Fuchsia__
void ::test_nullable::wire::StructWithNullableHandle::_CloseHandles() {
  val.reset();
}
#endif  // __Fuchsia__

void ::test_nullable::wire::SimpleUnion::SizeAndOffsetAssertionHelper() {
  static_assert(sizeof(SimpleUnion) == sizeof(fidl_xunion_v2_t));
  static_assert(offsetof(SimpleUnion, ordinal_) ==
                offsetof(fidl_xunion_v2_t, tag));
  static_assert(offsetof(SimpleUnion, envelope_) ==
                offsetof(fidl_xunion_v2_t, envelope));
}
