blob: b0e390b55eddd87321dfb0a2d6ec79b4465ee72a [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
// fidl_experiment = output_index_json
#pragma once
#include <lib/fidl/cpp/wire/array.h>
#include <lib/fidl/cpp/wire/envelope.h>
#include <lib/fidl/cpp/wire/internal/framework_err.h>
#include <lib/fidl/cpp/wire/message.h>
#include <lib/fidl/cpp/wire/message_storage.h>
#include <lib/fidl/cpp/wire/object_view.h>
#include <lib/fidl/cpp/wire/string_view.h>
#include <lib/fidl/cpp/wire/traits.h>
#include <lib/fidl/cpp/wire/wire_types.h>
#include <lib/stdcompat/optional.h>
#include <cinttypes>
#ifdef __Fuchsia__
#include <lib/fidl_driver/cpp/wire_types.h>
#include <lib/zx/bti.h>
#include <lib/zx/channel.h>
#include <lib/zx/clock.h>
#include <lib/zx/debuglog.h>
#include <lib/zx/event.h>
#include <lib/zx/eventpair.h>
#include <lib/zx/exception.h>
#include <lib/zx/fifo.h>
#include <lib/zx/guest.h>
#include <lib/zx/handle.h>
#include <lib/zx/interrupt.h>
#include <lib/zx/iommu.h>
#include <lib/zx/job.h>
#include <lib/zx/msi.h>
#include <lib/zx/pager.h>
#include <lib/zx/pmt.h>
#include <lib/zx/port.h>
#include <lib/zx/process.h>
#include <lib/zx/profile.h>
#include <lib/zx/resource.h>
#include <lib/zx/socket.h>
#include <lib/zx/stream.h>
#include <lib/zx/suspend_token.h>
#include <lib/zx/thread.h>
#include <lib/zx/timer.h>
#include <lib/zx/vcpu.h>
#include <lib/zx/vmar.h>
#include <lib/zx/vmo.h>
#endif // __Fuchsia__
#include <fidl/fdf/cpp/wire_types.h>
#include <fidl/test.handles/cpp/common_types.h>
#include <fidl/test.handles/cpp/markers.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"
namespace test_handles {
namespace wire {
struct Handles;
struct FdfHandles;
#ifdef __Fuchsia__
using AliasedPlainHandle = ::zx::handle;
#endif // __Fuchsia__
#ifdef __Fuchsia__
using AliasedSubtypeHandle = ::zx::vmo;
#endif // __Fuchsia__
#ifdef __Fuchsia__
using AliasedRightsHandle = ::zx::vmo;
#endif // __Fuchsia__
#ifdef __Fuchsia__
struct Handles {
::zx::handle plain_handle = {};
::zx::bti bti_handle = {};
::zx::channel channel_handle = {};
::zx::clock clock_handle = {};
::zx::debuglog debuglog_handle = {};
::zx::event event_handle = {};
::zx::eventpair eventpair_handle = {};
::zx::exception exception_handle = {};
::zx::fifo fifo_handle = {};
::zx::guest guest_handle = {};
::zx::interrupt interrupt_handle = {};
::zx::iommu iommu_handle = {};
::zx::job job_handle = {};
::zx::msi msi_handle = {};
::zx::pager pager_handle = {};
::zx::pmt pmt_handle = {};
::zx::port port_handle = {};
::zx::process process_handle = {};
::zx::profile profile_handle = {};
::zx::resource resource_handle = {};
::zx::socket socket_handle = {};
::zx::stream stream_handle = {};
::zx::suspend_token suspendtoken_handle = {};
::zx::thread thread_handle = {};
::zx::timer timer_handle = {};
::zx::vcpu vcpu_handle = {};
::zx::vmar vmar_handle = {};
::zx::vmo vmo_handle = {};
::zx::vmo rights_handle = {};
::zx::handle aliased_plain_handle_field = {};
::zx::vmo aliased_subtype_handle_field = {};
::zx::vmo aliased_rights_handle_field = {};
::fidl::ClientEnd<::test_handles::SomeProtocol> some_protocol = {};
::fidl::ServerEnd<::test_handles::SomeProtocol> request_some_protocol = {};
void _CloseHandles();
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
struct FdfHandles {
::fdf::Channel fdf_channel_handle = {};
::fdf::ClientEnd<::test_handles::DriverProtocol> client_end_driver = {};
::fdf::ServerEnd<::test_handles::DriverProtocol> server_end_driver = {};
void _CloseHandles();
};
#endif // __Fuchsia__
} // namespace wire
} // namespace test_handles
namespace fidl {
#ifdef __Fuchsia__
template <>
struct IsResource<::test_handles::wire::Handles> : public std::true_type {};
template <>
struct TypeTraits<::test_handles::wire::Handles> {
static constexpr uint32_t kMaxNumHandles = 34;
static constexpr uint32_t kMaxDepth = 0;
static constexpr uint32_t kPrimarySize = 136;
[[maybe_unused]]
static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr bool kHasFlexibleEnvelope = false;
static constexpr bool kHasPointer = false;
};
template <>
struct IsFidlType<::test_handles::wire::Handles> : public std::true_type {};
template <>
struct IsWire<::test_handles::wire::Handles> : public std::true_type {};
template <>
struct IsStruct<::test_handles::wire::Handles> : public std::true_type {};
static_assert(std::is_standard_layout_v<::test_handles::wire::Handles>);
static_assert(offsetof(::test_handles::wire::Handles, plain_handle) == 0);
static_assert(offsetof(::test_handles::wire::Handles, bti_handle) == 4);
static_assert(offsetof(::test_handles::wire::Handles, channel_handle) == 8);
static_assert(offsetof(::test_handles::wire::Handles, clock_handle) == 12);
static_assert(offsetof(::test_handles::wire::Handles, debuglog_handle) == 16);
static_assert(offsetof(::test_handles::wire::Handles, event_handle) == 20);
static_assert(offsetof(::test_handles::wire::Handles, eventpair_handle) == 24);
static_assert(offsetof(::test_handles::wire::Handles, exception_handle) == 28);
static_assert(offsetof(::test_handles::wire::Handles, fifo_handle) == 32);
static_assert(offsetof(::test_handles::wire::Handles, guest_handle) == 36);
static_assert(offsetof(::test_handles::wire::Handles, interrupt_handle) == 40);
static_assert(offsetof(::test_handles::wire::Handles, iommu_handle) == 44);
static_assert(offsetof(::test_handles::wire::Handles, job_handle) == 48);
static_assert(offsetof(::test_handles::wire::Handles, msi_handle) == 52);
static_assert(offsetof(::test_handles::wire::Handles, pager_handle) == 56);
static_assert(offsetof(::test_handles::wire::Handles, pmt_handle) == 60);
static_assert(offsetof(::test_handles::wire::Handles, port_handle) == 64);
static_assert(offsetof(::test_handles::wire::Handles, process_handle) == 68);
static_assert(offsetof(::test_handles::wire::Handles, profile_handle) == 72);
static_assert(offsetof(::test_handles::wire::Handles, resource_handle) == 76);
static_assert(offsetof(::test_handles::wire::Handles, socket_handle) == 80);
static_assert(offsetof(::test_handles::wire::Handles, stream_handle) == 84);
static_assert(offsetof(::test_handles::wire::Handles, suspendtoken_handle) == 88);
static_assert(offsetof(::test_handles::wire::Handles, thread_handle) == 92);
static_assert(offsetof(::test_handles::wire::Handles, timer_handle) == 96);
static_assert(offsetof(::test_handles::wire::Handles, vcpu_handle) == 100);
static_assert(offsetof(::test_handles::wire::Handles, vmar_handle) == 104);
static_assert(offsetof(::test_handles::wire::Handles, vmo_handle) == 108);
static_assert(offsetof(::test_handles::wire::Handles, rights_handle) == 112);
static_assert(offsetof(::test_handles::wire::Handles, aliased_plain_handle_field) == 116);
static_assert(offsetof(::test_handles::wire::Handles, aliased_subtype_handle_field) == 120);
static_assert(offsetof(::test_handles::wire::Handles, aliased_rights_handle_field) == 124);
static_assert(offsetof(::test_handles::wire::Handles, some_protocol) == 128);
static_assert(offsetof(::test_handles::wire::Handles, request_some_protocol) == 132);
static_assert(sizeof(::test_handles::wire::Handles) == TypeTraits<::test_handles::wire::Handles>::kPrimarySize);
template <bool IsRecursive>
struct ::fidl::internal::WireCodingTraits<::test_handles::wire::Handles, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = 136;
static constexpr auto kMembers = std::make_tuple(::fidl::internal::WireStructMemberCodingInfo<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::bti, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_BTI, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::clock, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CLOCK, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::debuglog, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_DEBUGLOG, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::event, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EVENT, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::eventpair, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EVENTPAIR, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::exception, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EXCEPTION, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::fifo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_FIFO, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::guest, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_GUEST, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::interrupt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_INTERRUPT, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::iommu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_IOMMU, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::job, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_JOB, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::msi, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_MSI, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::pager, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PAGER, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::pmt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PMT, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::port, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PORT, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::process, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROCESS, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::profile, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROFILE, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::resource, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_RESOURCE, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::socket, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SOCKET, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::stream, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_STREAM, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::suspend_token, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SUSPEND_TOKEN, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::thread, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_THREAD, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::timer, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_TIMER, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::vcpu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VCPU, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::vmar, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMAR, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x5, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x1, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fidl::ClientEnd<::test_handles::SomeProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fidl::ServerEnd<::test_handles::SomeProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>());
static constexpr bool kHasPadding = false;
using Base = WireStructCodingTraitsBase<::test_handles::wire::Handles, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive>;
static constexpr bool kIsMemcpyCompatible = Base::kIsMemcpyCompatible;
static void Encode(
internal::WireEncoder* encoder, ::test_handles::wire::Handles* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (kIsMemcpyCompatible) {
memcpy(position.As<void>(), value, sizeof(::test_handles::wire::Handles));
} else {
internal::WireCodingTraits<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->plain_handle, position + 0, recursion_depth);
internal::WireCodingTraits<::zx::bti, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_BTI, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->bti_handle, position + 4, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->channel_handle, position + 8, recursion_depth);
internal::WireCodingTraits<::zx::clock, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CLOCK, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->clock_handle, position + 12, recursion_depth);
internal::WireCodingTraits<::zx::debuglog, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_DEBUGLOG, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->debuglog_handle, position + 16, recursion_depth);
internal::WireCodingTraits<::zx::event, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EVENT, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->event_handle, position + 20, recursion_depth);
internal::WireCodingTraits<::zx::eventpair, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EVENTPAIR, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->eventpair_handle, position + 24, recursion_depth);
internal::WireCodingTraits<::zx::exception, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EXCEPTION, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->exception_handle, position + 28, recursion_depth);
internal::WireCodingTraits<::zx::fifo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_FIFO, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->fifo_handle, position + 32, recursion_depth);
internal::WireCodingTraits<::zx::guest, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_GUEST, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->guest_handle, position + 36, recursion_depth);
internal::WireCodingTraits<::zx::interrupt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_INTERRUPT, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->interrupt_handle, position + 40, recursion_depth);
internal::WireCodingTraits<::zx::iommu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_IOMMU, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->iommu_handle, position + 44, recursion_depth);
internal::WireCodingTraits<::zx::job, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_JOB, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->job_handle, position + 48, recursion_depth);
internal::WireCodingTraits<::zx::msi, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_MSI, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->msi_handle, position + 52, recursion_depth);
internal::WireCodingTraits<::zx::pager, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PAGER, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->pager_handle, position + 56, recursion_depth);
internal::WireCodingTraits<::zx::pmt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PMT, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->pmt_handle, position + 60, recursion_depth);
internal::WireCodingTraits<::zx::port, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PORT, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->port_handle, position + 64, recursion_depth);
internal::WireCodingTraits<::zx::process, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROCESS, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->process_handle, position + 68, recursion_depth);
internal::WireCodingTraits<::zx::profile, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROFILE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->profile_handle, position + 72, recursion_depth);
internal::WireCodingTraits<::zx::resource, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_RESOURCE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->resource_handle, position + 76, recursion_depth);
internal::WireCodingTraits<::zx::socket, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SOCKET, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->socket_handle, position + 80, recursion_depth);
internal::WireCodingTraits<::zx::stream, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_STREAM, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->stream_handle, position + 84, recursion_depth);
internal::WireCodingTraits<::zx::suspend_token, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SUSPEND_TOKEN, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->suspendtoken_handle, position + 88, recursion_depth);
internal::WireCodingTraits<::zx::thread, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_THREAD, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->thread_handle, position + 92, recursion_depth);
internal::WireCodingTraits<::zx::timer, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_TIMER, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->timer_handle, position + 96, recursion_depth);
internal::WireCodingTraits<::zx::vcpu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VCPU, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->vcpu_handle, position + 100, recursion_depth);
internal::WireCodingTraits<::zx::vmar, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMAR, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->vmar_handle, position + 104, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->vmo_handle, position + 108, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x5, false>, IsRecursive>::Encode(encoder, &value->rights_handle, position + 112, recursion_depth);
internal::WireCodingTraits<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->aliased_plain_handle_field, position + 116, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->aliased_subtype_handle_field, position + 120, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x1, false>, IsRecursive>::Encode(encoder, &value->aliased_rights_handle_field, position + 124, recursion_depth);
internal::WireCodingTraits<::fidl::ClientEnd<::test_handles::SomeProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Encode(encoder, &value->some_protocol, position + 128, recursion_depth);
internal::WireCodingTraits<::fidl::ServerEnd<::test_handles::SomeProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Encode(encoder, &value->request_some_protocol, position + 132, recursion_depth);
}
}
static void Decode(
internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (!Base::are_members_memcpy_compatible) {
internal::WireCodingTraits<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 0, recursion_depth);
internal::WireCodingTraits<::zx::bti, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_BTI, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 4, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 8, recursion_depth);
internal::WireCodingTraits<::zx::clock, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CLOCK, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 12, recursion_depth);
internal::WireCodingTraits<::zx::debuglog, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_DEBUGLOG, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 16, recursion_depth);
internal::WireCodingTraits<::zx::event, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EVENT, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 20, recursion_depth);
internal::WireCodingTraits<::zx::eventpair, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EVENTPAIR, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 24, recursion_depth);
internal::WireCodingTraits<::zx::exception, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_EXCEPTION, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 28, recursion_depth);
internal::WireCodingTraits<::zx::fifo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_FIFO, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 32, recursion_depth);
internal::WireCodingTraits<::zx::guest, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_GUEST, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 36, recursion_depth);
internal::WireCodingTraits<::zx::interrupt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_INTERRUPT, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 40, recursion_depth);
internal::WireCodingTraits<::zx::iommu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_IOMMU, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 44, recursion_depth);
internal::WireCodingTraits<::zx::job, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_JOB, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 48, recursion_depth);
internal::WireCodingTraits<::zx::msi, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_MSI, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 52, recursion_depth);
internal::WireCodingTraits<::zx::pager, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PAGER, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 56, recursion_depth);
internal::WireCodingTraits<::zx::pmt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PMT, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 60, recursion_depth);
internal::WireCodingTraits<::zx::port, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PORT, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 64, recursion_depth);
internal::WireCodingTraits<::zx::process, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROCESS, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 68, recursion_depth);
internal::WireCodingTraits<::zx::profile, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROFILE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 72, recursion_depth);
internal::WireCodingTraits<::zx::resource, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_RESOURCE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 76, recursion_depth);
internal::WireCodingTraits<::zx::socket, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SOCKET, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 80, recursion_depth);
internal::WireCodingTraits<::zx::stream, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_STREAM, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 84, recursion_depth);
internal::WireCodingTraits<::zx::suspend_token, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SUSPEND_TOKEN, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 88, recursion_depth);
internal::WireCodingTraits<::zx::thread, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_THREAD, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 92, recursion_depth);
internal::WireCodingTraits<::zx::timer, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_TIMER, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 96, recursion_depth);
internal::WireCodingTraits<::zx::vcpu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VCPU, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 100, recursion_depth);
internal::WireCodingTraits<::zx::vmar, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMAR, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 104, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 108, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x5, false>, IsRecursive>::Decode(
decoder, position + 112, recursion_depth);
internal::WireCodingTraits<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 116, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 120, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x1, false>, IsRecursive>::Decode(
decoder, position + 124, recursion_depth);
internal::WireCodingTraits<::fidl::ClientEnd<::test_handles::SomeProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Decode(
decoder, position + 128, recursion_depth);
internal::WireCodingTraits<::fidl::ServerEnd<::test_handles::SomeProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Decode(
decoder, position + 132, recursion_depth);
}
}
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
template <>
struct IsResource<::test_handles::wire::FdfHandles> : public std::true_type {};
template <>
struct TypeTraits<::test_handles::wire::FdfHandles> {
static constexpr uint32_t kMaxNumHandles = 3;
static constexpr uint32_t kMaxDepth = 0;
static constexpr uint32_t kPrimarySize = 12;
[[maybe_unused]]
static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr bool kHasFlexibleEnvelope = false;
static constexpr bool kHasPointer = false;
};
template <>
struct IsFidlType<::test_handles::wire::FdfHandles> : public std::true_type {};
template <>
struct IsWire<::test_handles::wire::FdfHandles> : public std::true_type {};
template <>
struct IsStruct<::test_handles::wire::FdfHandles> : public std::true_type {};
static_assert(std::is_standard_layout_v<::test_handles::wire::FdfHandles>);
static_assert(offsetof(::test_handles::wire::FdfHandles, fdf_channel_handle) == 0);
static_assert(offsetof(::test_handles::wire::FdfHandles, client_end_driver) == 4);
static_assert(offsetof(::test_handles::wire::FdfHandles, server_end_driver) == 8);
static_assert(sizeof(::test_handles::wire::FdfHandles) == TypeTraits<::test_handles::wire::FdfHandles>::kPrimarySize);
template <bool IsRecursive>
struct ::fidl::internal::WireCodingTraits<::test_handles::wire::FdfHandles, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = 12;
static constexpr auto kMembers = std::make_tuple(::fidl::internal::WireStructMemberCodingInfo<::fdf::Channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fdf::ClientEnd<::test_handles::DriverProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fdf::ServerEnd<::test_handles::DriverProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>());
static constexpr bool kHasPadding = false;
using Base = WireStructCodingTraitsBase<::test_handles::wire::FdfHandles, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive>;
static constexpr bool kIsMemcpyCompatible = Base::kIsMemcpyCompatible;
static void Encode(
internal::WireEncoder* encoder, ::test_handles::wire::FdfHandles* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (kIsMemcpyCompatible) {
memcpy(position.As<void>(), value, sizeof(::test_handles::wire::FdfHandles));
} else {
internal::WireCodingTraits<::fdf::Channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->fdf_channel_handle, position + 0, recursion_depth);
internal::WireCodingTraits<::fdf::ClientEnd<::test_handles::DriverProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Encode(encoder, &value->client_end_driver, position + 4, recursion_depth);
internal::WireCodingTraits<::fdf::ServerEnd<::test_handles::DriverProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Encode(encoder, &value->server_end_driver, position + 8, recursion_depth);
}
}
static void Decode(
internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (!Base::are_members_memcpy_compatible) {
internal::WireCodingTraits<::fdf::Channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 0, recursion_depth);
internal::WireCodingTraits<::fdf::ClientEnd<::test_handles::DriverProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Decode(
decoder, position + 4, recursion_depth);
internal::WireCodingTraits<::fdf::ServerEnd<::test_handles::DriverProtocol>, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, ZX_DEFAULT_CHANNEL_RIGHTS, false>, IsRecursive>::Decode(
decoder, position + 8, recursion_depth);
}
}
};
#endif // __Fuchsia__
#pragma clang diagnostic pop
} // namespace fidl