blob: 0b148880b266c630d361748f4b02738c2d7a707f [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <lib/fidl/llcpp/array.h>
#include <lib/fidl/llcpp/envelope.h>
#include <lib/fidl/llcpp/message.h>
#include <lib/fidl/llcpp/message_storage.h>
#include <lib/fidl/llcpp/object_view.h>
#include <lib/fidl/llcpp/string_view.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/fidl/llcpp/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/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/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>
namespace test_handles {
namespace wire {
struct Handles;
struct FdfHandles;
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_handles_HandlesTable;
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::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::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__
extern "C" const fidl_type_t test_handles_FdfHandlesTable;
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 {};
// TODO(fxbug.dev/95833) Remove this.
template <>
struct DeprecatedCTypeTraits<::test_handles::wire::Handles> {
static constexpr const fidl_type_t* kType = &::test_handles::wire::test_handles_HandlesTable;
};
template <>
struct TypeTraits<::test_handles::wire::Handles> {
static constexpr uint32_t kMaxNumHandles = 32;
static constexpr uint32_t kMaxDepth = 0;
static constexpr uint32_t kPrimarySize = 128;
static constexpr uint32_t kPrimarySizeV1 = 128;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr uint32_t kMaxOutOfLineV1 = 0;
static constexpr bool kHasEnvelope = false;
static constexpr bool kHasPointer = false;
};
template <>
struct IsFidlType<::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, pager_handle) == 52);
static_assert(offsetof(::test_handles::wire::Handles, pmt_handle) == 56);
static_assert(offsetof(::test_handles::wire::Handles, port_handle) == 60);
static_assert(offsetof(::test_handles::wire::Handles, process_handle) == 64);
static_assert(offsetof(::test_handles::wire::Handles, profile_handle) == 68);
static_assert(offsetof(::test_handles::wire::Handles, resource_handle) == 72);
static_assert(offsetof(::test_handles::wire::Handles, socket_handle) == 76);
static_assert(offsetof(::test_handles::wire::Handles, suspendtoken_handle) == 80);
static_assert(offsetof(::test_handles::wire::Handles, thread_handle) == 84);
static_assert(offsetof(::test_handles::wire::Handles, timer_handle) == 88);
static_assert(offsetof(::test_handles::wire::Handles, vcpu_handle) == 92);
static_assert(offsetof(::test_handles::wire::Handles, vmar_handle) == 96);
static_assert(offsetof(::test_handles::wire::Handles, vmo_handle) == 100);
static_assert(offsetof(::test_handles::wire::Handles, rights_handle) == 104);
static_assert(offsetof(::test_handles::wire::Handles, aliased_plain_handle_field) == 108);
static_assert(offsetof(::test_handles::wire::Handles, aliased_subtype_handle_field) == 112);
static_assert(offsetof(::test_handles::wire::Handles, aliased_rights_handle_field) == 116);
static_assert(offsetof(::test_handles::wire::Handles, some_protocol) == 120);
static_assert(offsetof(::test_handles::wire::Handles, request_some_protocol) == 124);
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 inline_size = 128;
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_LOG, 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::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::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 is_memcpy_compatible = Base::is_memcpy_compatible;
static void Encode(
internal::WireEncoder* encoder, ::test_handles::wire::Handles* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (is_memcpy_compatible) {
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_LOG, 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::pager, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PAGER, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->pager_handle, position + 52, recursion_depth);
internal::WireCodingTraits<::zx::pmt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PMT, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->pmt_handle, position + 56, recursion_depth);
internal::WireCodingTraits<::zx::port, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PORT, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->port_handle, position + 60, recursion_depth);
internal::WireCodingTraits<::zx::process, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROCESS, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->process_handle, position + 64, recursion_depth);
internal::WireCodingTraits<::zx::profile, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROFILE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->profile_handle, position + 68, recursion_depth);
internal::WireCodingTraits<::zx::resource, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_RESOURCE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->resource_handle, position + 72, recursion_depth);
internal::WireCodingTraits<::zx::socket, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SOCKET, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->socket_handle, position + 76, recursion_depth);
internal::WireCodingTraits<::zx::suspend_token, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SUSPEND_TOKEN, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->suspendtoken_handle, position + 80, recursion_depth);
internal::WireCodingTraits<::zx::thread, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_THREAD, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->thread_handle, position + 84, recursion_depth);
internal::WireCodingTraits<::zx::timer, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_TIMER, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->timer_handle, position + 88, recursion_depth);
internal::WireCodingTraits<::zx::vcpu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VCPU, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->vcpu_handle, position + 92, recursion_depth);
internal::WireCodingTraits<::zx::vmar, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMAR, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->vmar_handle, position + 96, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->vmo_handle, position + 100, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x5, false>, IsRecursive>::Encode(encoder, &value->rights_handle, position + 104, recursion_depth);
internal::WireCodingTraits<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->aliased_plain_handle_field, position + 108, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->aliased_subtype_handle_field, position + 112, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x1, false>, IsRecursive>::Encode(encoder, &value->aliased_rights_handle_field, position + 116, 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 + 120, 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 + 124, 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_LOG, 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::pager, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PAGER, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 52, recursion_depth);
internal::WireCodingTraits<::zx::pmt, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PMT, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 56, recursion_depth);
internal::WireCodingTraits<::zx::port, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PORT, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 60, recursion_depth);
internal::WireCodingTraits<::zx::process, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROCESS, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 64, recursion_depth);
internal::WireCodingTraits<::zx::profile, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_PROFILE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 68, recursion_depth);
internal::WireCodingTraits<::zx::resource, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_RESOURCE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 72, recursion_depth);
internal::WireCodingTraits<::zx::socket, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SOCKET, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 76, recursion_depth);
internal::WireCodingTraits<::zx::suspend_token, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_SUSPEND_TOKEN, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 80, recursion_depth);
internal::WireCodingTraits<::zx::thread, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_THREAD, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 84, recursion_depth);
internal::WireCodingTraits<::zx::timer, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_TIMER, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 88, recursion_depth);
internal::WireCodingTraits<::zx::vcpu, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VCPU, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 92, recursion_depth);
internal::WireCodingTraits<::zx::vmar, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMAR, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 96, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 100, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x5, false>, IsRecursive>::Decode(
decoder, position + 104, recursion_depth);
internal::WireCodingTraits<::zx::handle, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_NONE, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 108, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 112, recursion_depth);
internal::WireCodingTraits<::zx::vmo, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_VMO, 0x1, false>, IsRecursive>::Decode(
decoder, position + 116, 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 + 120, 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 + 124, recursion_depth);
}
}
};
#endif // __Fuchsia__
#ifdef __Fuchsia__
template <>
struct IsResource<::test_handles::wire::FdfHandles> : public std::true_type {};
// TODO(fxbug.dev/95833) Remove this.
template <>
struct DeprecatedCTypeTraits<::test_handles::wire::FdfHandles> {
static constexpr const fidl_type_t* kType = &::test_handles::wire::test_handles_FdfHandlesTable;
};
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;
static constexpr uint32_t kPrimarySizeV1 = 12;
[[maybe_unused]] static constexpr uint32_t kMaxOutOfLine = 0;
static constexpr uint32_t kMaxOutOfLineV1 = 0;
static constexpr bool kHasEnvelope = false;
static constexpr bool kHasPointer = false;
};
template <>
struct IsFidlType<::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 inline_size = 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 is_memcpy_compatible = Base::is_memcpy_compatible;
static void Encode(
internal::WireEncoder* encoder, ::test_handles::wire::FdfHandles* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (is_memcpy_compatible) {
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__
} // namespace fidl