| // WARNING: This file is machine generated by fidlgen. | 
 |  | 
 | #pragma once | 
 |  | 
 | #include <lib/fidl/internal.h> | 
 | #include <lib/fidl/llcpp/array.h> | 
 | #include <lib/fidl/llcpp/buffer_allocator.h> | 
 | #include <lib/fidl/llcpp/buffer_then_heap_allocator.h> | 
 | #include <lib/fidl/llcpp/coding.h> | 
 | #include <lib/fidl/llcpp/envelope.h> | 
 | #include <lib/fidl/llcpp/errors.h> | 
 | #include <lib/fidl/llcpp/memory.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/tracking_ptr.h> | 
 | #include <lib/fidl/llcpp/traits.h> | 
 | #include <lib/fidl/llcpp/vector_view.h> | 
 | #include <lib/fit/function.h> | 
 | #include <lib/stdcompat/optional.h> | 
 |  | 
 | #include <algorithm> | 
 | #include <cstddef> | 
 | #include <variant> | 
 | #ifdef __Fuchsia__ | 
 | #include <lib/fidl/llcpp/client.h> | 
 | #include <lib/fidl/llcpp/client_end.h> | 
 | #include <lib/fidl/llcpp/connect_service.h> | 
 | #include <lib/fidl/llcpp/result.h> | 
 | #include <lib/fidl/llcpp/server.h> | 
 | #include <lib/fidl/llcpp/server_end.h> | 
 | #include <lib/fidl/llcpp/service_handler_interface.h> | 
 | #include <lib/fidl/llcpp/sync_call.h> | 
 | #include <lib/fidl/llcpp/transaction.h> | 
 | #include <lib/fidl/txn_header.h> | 
 |  | 
 | #endif  // __Fuchsia__ | 
 | #include <middle/llcpp/fidl.h> | 
 | #include <zircon/fidl.h> | 
 |  | 
 | namespace llcpp { | 
 | namespace fidl { | 
 | namespace test { | 
 | namespace transitivedependencies { | 
 | namespace wire { | 
 | struct Baz; | 
 | }  // namespace wire | 
 | using Baz = ::llcpp::fidl::test::transitivedependencies::wire::Baz; | 
 | namespace wire { | 
 |  | 
 | extern "C" const fidl_type_t fidl_test_transitivedependencies_BazTable; | 
 |  | 
 | struct Baz { | 
 |   static constexpr const fidl_type_t* Type = | 
 |       &fidl_test_transitivedependencies_BazTable; | 
 |   static constexpr uint32_t MaxNumHandles = 0; | 
 |   static constexpr uint32_t PrimarySize = 4; | 
 |   [[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 0; | 
 |   static constexpr bool HasPointer = false; | 
 |  | 
 |   ::llcpp::middle::wire::Bar g = {}; | 
 |  | 
 |  private: | 
 |   class UnownedEncodedByteMessage final { | 
 |    public: | 
 |     UnownedEncodedByteMessage(uint8_t* bytes, uint32_t byte_size, Baz* value) | 
 |         : message_(bytes, byte_size, sizeof(Baz), nullptr, 0, 0) { | 
 |       message_.Encode<Baz>(value); | 
 |     } | 
 |     UnownedEncodedByteMessage(const UnownedEncodedByteMessage&) = delete; | 
 |     UnownedEncodedByteMessage(UnownedEncodedByteMessage&&) = delete; | 
 |     UnownedEncodedByteMessage* operator=(const UnownedEncodedByteMessage&) = | 
 |         delete; | 
 |     UnownedEncodedByteMessage* operator=(UnownedEncodedByteMessage&&) = delete; | 
 |  | 
 |     zx_status_t status() const { return message_.status(); } | 
 | #ifdef __Fuchsia__ | 
 |     const char* status_string() const { return message_.status_string(); } | 
 | #endif | 
 |     bool ok() const { return message_.status() == ZX_OK; } | 
 |     const char* error() const { return message_.error(); } | 
 |  | 
 |     ::fidl::OutgoingByteMessage& GetOutgoingMessage() { return message_; } | 
 |  | 
 |    private: | 
 |     ::fidl::OutgoingByteMessage message_; | 
 |   }; | 
 |  | 
 |   class UnownedEncodedIovecMessage final { | 
 |    public: | 
 |     UnownedEncodedIovecMessage(zx_channel_iovec_t* iovecs, uint32_t iovec_size, | 
 |                                fidl_iovec_substitution_t* substitutions, | 
 |                                uint32_t substitutions_size, Baz* value) | 
 |         : message_(::fidl::OutgoingIovecMessage::constructor_args{ | 
 |               .iovecs = iovecs, | 
 |               .iovecs_actual = 0, | 
 |               .iovecs_capacity = iovec_size, | 
 |               .substitutions = substitutions, | 
 |               .substitutions_actual = 0, | 
 |               .substitutions_capacity = substitutions_size, | 
 |               .handles = nullptr, | 
 |               .handle_actual = 0, | 
 |               .handle_capacity = 0, | 
 |           }) { | 
 |       message_.Encode<Baz>(value); | 
 |     } | 
 |     UnownedEncodedIovecMessage(const UnownedEncodedIovecMessage&) = delete; | 
 |     UnownedEncodedIovecMessage(UnownedEncodedIovecMessage&&) = delete; | 
 |     UnownedEncodedIovecMessage* operator=(const UnownedEncodedIovecMessage&) = | 
 |         delete; | 
 |     UnownedEncodedIovecMessage* operator=(UnownedEncodedIovecMessage&&) = | 
 |         delete; | 
 |  | 
 |     zx_status_t status() const { return message_.status(); } | 
 | #ifdef __Fuchsia__ | 
 |     const char* status_string() const { return message_.status_string(); } | 
 | #endif | 
 |     bool ok() const { return message_.status() == ZX_OK; } | 
 |     const char* error() const { return message_.error(); } | 
 |  | 
 |     ::fidl::OutgoingIovecMessage& GetOutgoingMessage() { return message_; } | 
 |  | 
 |    private: | 
 |     ::fidl::OutgoingIovecMessage message_; | 
 |   }; | 
 |  | 
 |   class OwnedEncodedByteMessage final { | 
 |    public: | 
 |     explicit OwnedEncodedByteMessage(Baz* value) | 
 |         : message_(bytes_, sizeof(bytes_), value) {} | 
 |     OwnedEncodedByteMessage(const OwnedEncodedByteMessage&) = delete; | 
 |     OwnedEncodedByteMessage(OwnedEncodedByteMessage&&) = delete; | 
 |     OwnedEncodedByteMessage* operator=(const OwnedEncodedByteMessage&) = delete; | 
 |     OwnedEncodedByteMessage* operator=(OwnedEncodedByteMessage&&) = delete; | 
 |  | 
 |     zx_status_t status() const { return message_.status(); } | 
 | #ifdef __Fuchsia__ | 
 |     const char* status_string() const { return message_.status_string(); } | 
 | #endif | 
 |     bool ok() const { return message_.ok(); } | 
 |     const char* error() const { return message_.error(); } | 
 |  | 
 |     ::fidl::OutgoingByteMessage& GetOutgoingMessage() { | 
 |       return message_.GetOutgoingMessage(); | 
 |     } | 
 |  | 
 |    private: | 
 |     FIDL_ALIGNDECL | 
 |     uint8_t bytes_[FIDL_ALIGN(PrimarySize + MaxOutOfLine)]; | 
 |     UnownedEncodedByteMessage message_; | 
 |   }; | 
 |  | 
 |   class OwnedEncodedIovecMessage final { | 
 |    public: | 
 |     explicit OwnedEncodedIovecMessage(Baz* value) | 
 |         : message_(iovecs_, ::fidl::internal::kIovecBufferSize, substitutions_, | 
 |                    ::fidl::internal::kIovecBufferSize, value) {} | 
 |     OwnedEncodedIovecMessage(const OwnedEncodedIovecMessage&) = delete; | 
 |     OwnedEncodedIovecMessage(OwnedEncodedIovecMessage&&) = delete; | 
 |     OwnedEncodedIovecMessage* operator=(const OwnedEncodedIovecMessage&) = | 
 |         delete; | 
 |     OwnedEncodedIovecMessage* operator=(OwnedEncodedIovecMessage&&) = delete; | 
 |  | 
 |     zx_status_t status() const { return message_.status(); } | 
 | #ifdef __Fuchsia__ | 
 |     const char* status_string() const { return message_.status_string(); } | 
 | #endif | 
 |     bool ok() const { return message_.ok(); } | 
 |     const char* error() const { return message_.error(); } | 
 |  | 
 |     ::fidl::OutgoingIovecMessage& GetOutgoingMessage() { | 
 |       return message_.GetOutgoingMessage(); | 
 |     } | 
 |  | 
 |    private: | 
 |     zx_channel_iovec_t iovecs_[::fidl::internal::kIovecBufferSize]; | 
 |     fidl_iovec_substitution_t | 
 |         substitutions_[::fidl::internal::kIovecBufferSize]; | 
 |     UnownedEncodedIovecMessage message_; | 
 |   }; | 
 |  | 
 |  public: | 
 |   friend ::fidl::internal::EncodedMessageTypes<Baz>; | 
 |   using OwnedEncodedMessage = OwnedEncodedByteMessage; | 
 |   using UnownedEncodedMessage = UnownedEncodedByteMessage; | 
 |  | 
 |   class DecodedMessage final : public ::fidl::internal::IncomingMessage { | 
 |    public: | 
 |     DecodedMessage(uint8_t* bytes, uint32_t byte_actual, | 
 |                    zx_handle_info_t* handles = nullptr, | 
 |                    uint32_t handle_actual = 0) | 
 |         : ::fidl::internal::IncomingMessage(bytes, byte_actual, handles, | 
 |                                             handle_actual) { | 
 |       Decode<struct Baz>(); | 
 |     } | 
 |     DecodedMessage(fidl_incoming_msg_t* msg) | 
 |         : ::fidl::internal::IncomingMessage(msg) { | 
 |       Decode<struct Baz>(); | 
 |     } | 
 |     DecodedMessage(const DecodedMessage&) = delete; | 
 |     DecodedMessage(DecodedMessage&&) = delete; | 
 |     DecodedMessage* operator=(const DecodedMessage&) = delete; | 
 |     DecodedMessage* operator=(DecodedMessage&&) = delete; | 
 |  | 
 |     struct Baz* PrimaryObject() { | 
 |       ZX_DEBUG_ASSERT(ok()); | 
 |       return reinterpret_cast<struct Baz*>(bytes()); | 
 |     } | 
 |  | 
 |     // Release the ownership of the decoded message. That means that the handles | 
 |     // won't be closed When the object is destroyed. After calling this method, | 
 |     // the DecodedMessage object should not be used anymore. | 
 |     void ReleasePrimaryObject() { ResetBytes(); } | 
 |   }; | 
 | }; | 
 |  | 
 | }  // namespace wire | 
 | }  // namespace transitivedependencies | 
 | }  // namespace test | 
 | }  // namespace fidl | 
 | }  // namespace llcpp | 
 | namespace fidl { | 
 |  | 
 | template <> | 
 | struct IsFidlType<::llcpp::fidl::test::transitivedependencies::wire::Baz> | 
 |     : public std::true_type {}; | 
 | template <> | 
 | struct IsStruct<::llcpp::fidl::test::transitivedependencies::wire::Baz> | 
 |     : public std::true_type {}; | 
 | static_assert(std::is_standard_layout_v< | 
 |               ::llcpp::fidl::test::transitivedependencies::wire::Baz>); | 
 | static_assert(offsetof(::llcpp::fidl::test::transitivedependencies::wire::Baz, | 
 |                        g) == 0); | 
 | static_assert( | 
 |     sizeof(::llcpp::fidl::test::transitivedependencies::wire::Baz) == | 
 |     ::llcpp::fidl::test::transitivedependencies::wire::Baz::PrimarySize); | 
 | }  // namespace fidl | 
 | namespace llcpp { | 
 | namespace fidl { | 
 | namespace test { | 
 | namespace transitivedependencies { | 
 | namespace wire {}  // namespace wire | 
 | }  // namespace transitivedependencies | 
 | }  // namespace test | 
 | }  // namespace fidl | 
 | }  // namespace llcpp |