| // 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 |