blob: 9b2365d51b2dae22425a98b9895473521be18507 [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/zx/channel.h>
#endif // __Fuchsia__
#include <fidl/test.aliases/cpp/common_types.h>
#include <fidl/test.aliases/cpp/markers.h>
#include <fidl/test.someotherlibrary/cpp/wire_types.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"
namespace test_aliases {
namespace wire {
using ObjType = ::test_aliases::ObjType;
struct ExampleOfUseOfAliases;
using U32 = uint32_t;
using VecOfStrings = ::fidl::VectorView<::fidl::StringView>;
using VecOfStringsAtMost5 = ::fidl::VectorView<::fidl::StringView>;
#ifdef __Fuchsia__
using Channel = ::zx::channel;
#endif // __Fuchsia__
#ifdef __Fuchsia__
using AliasOfChannel = ::zx::channel;
#endif // __Fuchsia__
using ReferenceMe = ::test_someotherlibrary::wire::ReferenceMe;
#ifdef __Fuchsia__
struct ExampleOfUseOfAliases {
uint32_t field_of_u32 = {};
::fidl::VectorView<::fidl::StringView> field_of_vec_of_strings = {};
::fidl::VectorView<::fidl::StringView> field_of_vec_of_strings_at_most_nine = {};
::fidl::VectorView<::fidl::StringView> field_of_vec_of_strings_at_most_5 = {};
::fidl::VectorView<::test_someotherlibrary::wire::ReferenceMe> field_of_vec_of_ref_me_at_most_5 = {};
::zx::channel field_of_channel = {};
::zx::channel field_of_client_end = {};
::zx::channel field_of_nullable_client_end = {};
void _CloseHandles();
};
#endif // __Fuchsia__
} // namespace wire
} // namespace test_aliases
namespace fidl {
template <bool IsRecursive>
struct internal::WireCodingTraits<::test_aliases::wire::ObjType, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = sizeof(uint32_t);
static constexpr bool kIsMemcpyCompatible = false;
static void Encode(internal::WireEncoder* encoder, ::test_aliases::wire::ObjType* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
switch (*value) {
case ::test_aliases::wire::ObjType::kNone:
case ::test_aliases::wire::ObjType::kChannel:
break;
default:
encoder->SetError(::fidl::internal::kCodingErrorUnknownEnumValue);
return;
}
*position.As<::test_aliases::wire::ObjType>() = *value;
}
static void Decode(internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
[[maybe_unused]] ::test_aliases::wire::ObjType value = *position.As<::test_aliases::wire::ObjType>();
switch (value) {
case ::test_aliases::wire::ObjType::kNone:
case ::test_aliases::wire::ObjType::kChannel:
break;
default:
decoder->SetError(::fidl::internal::kCodingErrorUnknownEnumValue);
return;
}
}
};
#ifdef __Fuchsia__
template <>
struct IsResource<::test_aliases::wire::ExampleOfUseOfAliases> : public std::true_type {};
template <>
struct TypeTraits<::test_aliases::wire::ExampleOfUseOfAliases> {
static constexpr uint32_t kMaxNumHandles = 3;
static constexpr uint32_t kMaxDepth = 2;
static constexpr uint32_t kPrimarySize = 88;
[[maybe_unused]]
static constexpr uint32_t kMaxOutOfLine = 4294967295;
static constexpr bool kHasFlexibleEnvelope = false;
static constexpr bool kHasPointer = true;
};
template <>
struct IsFidlType<::test_aliases::wire::ExampleOfUseOfAliases> : public std::true_type {};
template <>
struct IsWire<::test_aliases::wire::ExampleOfUseOfAliases> : public std::true_type {};
template <>
struct IsStruct<::test_aliases::wire::ExampleOfUseOfAliases> : public std::true_type {};
static_assert(std::is_standard_layout_v<::test_aliases::wire::ExampleOfUseOfAliases>);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_u32) == 0);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_vec_of_strings) == 8);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_vec_of_strings_at_most_nine) == 24);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_vec_of_strings_at_most_5) == 40);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_vec_of_ref_me_at_most_5) == 56);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_channel) == 72);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_client_end) == 76);
static_assert(offsetof(::test_aliases::wire::ExampleOfUseOfAliases, field_of_nullable_client_end) == 80);
static_assert(sizeof(::test_aliases::wire::ExampleOfUseOfAliases) == TypeTraits<::test_aliases::wire::ExampleOfUseOfAliases>::kPrimarySize);
template <bool IsRecursive>
struct ::fidl::internal::WireCodingTraits<::test_aliases::wire::ExampleOfUseOfAliases, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = 88;
static constexpr auto kMembers = std::make_tuple(::fidl::internal::WireStructMemberCodingInfo<uint32_t, fidl::internal::WireCodingConstraintEmpty, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false, 9>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false, 5>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::fidl::VectorView<::test_someotherlibrary::wire::ReferenceMe>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintEmpty, false, 5>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>(), ::fidl::internal::WireStructMemberCodingInfo<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, true>, IsRecursive>());
static constexpr bool kHasPadding = true;
using Base = WireStructCodingTraitsBase<::test_aliases::wire::ExampleOfUseOfAliases, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive>;
static constexpr bool kIsMemcpyCompatible = Base::kIsMemcpyCompatible;
static void Encode(
internal::WireEncoder* encoder, ::test_aliases::wire::ExampleOfUseOfAliases* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
if constexpr (kIsMemcpyCompatible) {
memcpy(position.As<void>(), value, sizeof(::test_aliases::wire::ExampleOfUseOfAliases));
} else {
internal::WireZeroPadding<uint64_t>(encoder, position + 0);
internal::WireZeroPadding<uint64_t>(encoder, position + 80);
internal::WireCodingTraits<uint32_t, fidl::internal::WireCodingConstraintEmpty, IsRecursive>::Encode(encoder, &value->field_of_u32, position + 0, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false>, IsRecursive>::Encode(encoder, &value->field_of_vec_of_strings, position + 8, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false, 9>, IsRecursive>::Encode(encoder, &value->field_of_vec_of_strings_at_most_nine, position + 24, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false, 5>, IsRecursive>::Encode(encoder, &value->field_of_vec_of_strings_at_most_5, position + 40, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::test_someotherlibrary::wire::ReferenceMe>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintEmpty, false, 5>, IsRecursive>::Encode(encoder, &value->field_of_vec_of_ref_me_at_most_5, position + 56, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->field_of_channel, position + 72, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Encode(encoder, &value->field_of_client_end, position + 76, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, true>, IsRecursive>::Encode(encoder, &value->field_of_nullable_client_end, position + 80, 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<uint32_t, fidl::internal::WireCodingConstraintEmpty, IsRecursive>::Decode(
decoder, position + 0, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false>, IsRecursive>::Decode(
decoder, position + 8, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false, 9>, IsRecursive>::Decode(
decoder, position + 24, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::fidl::StringView>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintString<false>, false, 5>, IsRecursive>::Decode(
decoder, position + 40, recursion_depth);
internal::WireCodingTraits<::fidl::VectorView<::test_someotherlibrary::wire::ReferenceMe>, fidl::internal::WireCodingConstraintVector<fidl::internal::WireCodingConstraintEmpty, false, 5>, IsRecursive>::Decode(
decoder, position + 56, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 72, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, false>, IsRecursive>::Decode(
decoder, position + 76, recursion_depth);
internal::WireCodingTraits<::zx::channel, fidl::internal::WireCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL, 0x80000000, true>, IsRecursive>::Decode(
decoder, position + 80, recursion_depth);
}
internal::WireCheckPadding<uint64_t>(decoder, position + 0, 0xffffffff00000000);
internal::WireCheckPadding<uint64_t>(decoder, position + 80, 0xffffffff00000000);
}
};
#endif // __Fuchsia__
#pragma clang diagnostic pop
} // namespace fidl