/**
 * Autogenerated by Thrift for /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_fbthrift/fbthrift/work/fbthrift-2023.05.15.00/thrift/lib/thrift/any_rep.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated @nocommit
 */
#pragma once

#include "thrift/lib/thrift/gen-cpp2/any_rep_types.h"

#include <thrift/lib/cpp2/gen/module_types_tcc.h>


namespace apache {
namespace thrift {
namespace detail {

template <>
struct TccStructTraits<::apache::thrift::type::AnyStruct> {
  static void translateFieldName(
      folly::StringPiece _fname,
      int16_t& fid,
      apache::thrift::protocol::TType& _ftype) noexcept;
};
template <>
struct TccStructTraits<::apache::thrift::type::SemiAnyStruct> {
  static void translateFieldName(
      folly::StringPiece _fname,
      int16_t& fid,
      apache::thrift::protocol::TType& _ftype) noexcept;
};

} // namespace detail
} // namespace thrift
} // namespace apache

namespace apache { namespace thrift { namespace type {

template <class Protocol_>
void AnyStruct::readNoXfer(Protocol_* iprot) {
  __fbthrift_clear_terse_fields();

  apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;

  _readState.readStructBegin(iprot);

  using apache::thrift::TProtocolException;


  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          0,
          1,
          apache::thrift::protocol::T_STRUCT))) {
    goto _loop;
  }
_readField_type:
  {
    _readState.beforeSubobject(iprot);
    constexpr bool hasInplaceToThrift = ::apache::thrift::adapt_detail::has_inplace_toThrift<::apache::thrift::InlineAdapter<::apache::thrift::type::Type>, ::apache::thrift::type::Type>::value;
    ::folly::if_constexpr<hasInplaceToThrift>(
      [&](auto& field) {
        ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::readWithContext(*iprot, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(field), _readState);
      },
      [&](auto&) {})(this->__fbthrift_field_type);
    if (!hasInplaceToThrift) {
      ::apache::thrift::type::TypeStruct tvalue;
      ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::readWithContext(*iprot, tvalue, _readState);
      this->__fbthrift_field_type = ::apache::thrift::adapt_detail::fromThriftField<::apache::thrift::InlineAdapter<::apache::thrift::type::Type>, 1>(::std::move(tvalue), *this);
    }
    _readState.afterSubobject(iprot);
    
  }
 this->__isset.set(0, true);

  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          1,
          2,
          apache::thrift::protocol::T_STRUCT))) {
    goto _loop;
  }
_readField_protocol:
  {
    _readState.beforeSubobject(iprot);
    constexpr bool hasInplaceToThrift = ::apache::thrift::adapt_detail::has_inplace_toThrift<::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>, ::apache::thrift::type::Protocol>::value;
    ::folly::if_constexpr<hasInplaceToThrift>(
      [&](auto& field) {
        ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::readWithContext(*iprot, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(field), _readState);
      },
      [&](auto&) {})(this->__fbthrift_field_protocol);
    if (!hasInplaceToThrift) {
      ::apache::thrift::type::ProtocolUnion tvalue;
      ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::readWithContext(*iprot, tvalue, _readState);
      this->__fbthrift_field_protocol = ::apache::thrift::adapt_detail::fromThriftField<::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>, 2>(::std::move(tvalue), *this);
    }
    _readState.afterSubobject(iprot);
    
  }
 this->__isset.set(1, true);

  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          2,
          3,
          apache::thrift::protocol::T_STRING))) {
    goto _loop;
  }
_readField_data:
  {
    ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::readWithContext(*iprot, this->__fbthrift_field_data, _readState);
    
  }
 this->__isset.set(2, true);

  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          3,
          0,
          apache::thrift::protocol::T_STOP))) {
    goto _loop;
  }

_end:
  _readState.readStructEnd(iprot);

  return;

_loop:
  _readState.afterAdvanceFailure(iprot);
  if (_readState.atStop()) {
    goto _end;
  }
  if (iprot->kUsesFieldNames()) {
    _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<AnyStruct>>();
  }

  switch (_readState.fieldId) {
    case 1:
    {
      if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
        goto _readField_type;
      } else {
        goto _skip;
      }
    }
    case 2:
    {
      if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
        goto _readField_protocol;
      } else {
        goto _skip;
      }
    }
    case 3:
    {
      if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
        goto _readField_data;
      } else {
        goto _skip;
      }
    }
    default:
    {
_skip:
      _readState.skip(iprot);
      _readState.readFieldEnd(iprot);
      _readState.readFieldBeginNoInline(iprot);
      goto _loop;
    }
  }
}

template <class Protocol_>
uint32_t AnyStruct::serializedSize(Protocol_ const* prot_) const {
  uint32_t xfer = 0;
  xfer += prot_->serializedStructSize("AnyStruct");
  {
    xfer += prot_->serializedFieldSize("type", apache::thrift::protocol::T_STRUCT, 1);
    xfer += ::apache::thrift::adapt_detail::serializedSize<false, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>>(*prot_, this->__fbthrift_field_type, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::serializedSize<false>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(this->__fbthrift_field_type));});
  }
  {
    xfer += prot_->serializedFieldSize("protocol", apache::thrift::protocol::T_STRUCT, 2);
    xfer += ::apache::thrift::adapt_detail::serializedSize<false, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>>(*prot_, this->__fbthrift_field_protocol, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::serializedSize<false>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(this->__fbthrift_field_protocol));});
  }
  {
    xfer += prot_->serializedFieldSize("data", apache::thrift::protocol::T_STRING, 3);
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::serializedSize<false>(*prot_, this->__fbthrift_field_data);
  }
  xfer += prot_->serializedSizeStop();
  return xfer;
}

template <class Protocol_>
uint32_t AnyStruct::serializedSizeZC(Protocol_ const* prot_) const {
  uint32_t xfer = 0;
  xfer += prot_->serializedStructSize("AnyStruct");
  {
    xfer += prot_->serializedFieldSize("type", apache::thrift::protocol::T_STRUCT, 1);
    xfer += ::apache::thrift::adapt_detail::serializedSize<true, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>>(*prot_, this->__fbthrift_field_type, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::serializedSize<true>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(this->__fbthrift_field_type));});
  }
  {
    xfer += prot_->serializedFieldSize("protocol", apache::thrift::protocol::T_STRUCT, 2);
    xfer += ::apache::thrift::adapt_detail::serializedSize<true, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>>(*prot_, this->__fbthrift_field_protocol, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::serializedSize<true>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(this->__fbthrift_field_protocol));});
  }
  {
    xfer += prot_->serializedFieldSize("data", apache::thrift::protocol::T_STRING, 3);
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::serializedSize<true>(*prot_, this->__fbthrift_field_data);
  }
  xfer += prot_->serializedSizeStop();
  return xfer;
}

template <class Protocol_>
uint32_t AnyStruct::write(Protocol_* prot_) const {
  uint32_t xfer = 0;
  xfer += prot_->writeStructBegin("AnyStruct");
  bool previousFieldHasValue = true;
  {
    constexpr int16_t kPrevFieldId = 0;
    xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "type", previousFieldHasValue);
    previousFieldHasValue = true;
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::write(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(this->__fbthrift_field_type));
    xfer += prot_->writeFieldEnd();
  }
  {
    constexpr int16_t kPrevFieldId = 1;
    xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "protocol", previousFieldHasValue);
    previousFieldHasValue = true;
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::write(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(this->__fbthrift_field_protocol));
    xfer += prot_->writeFieldEnd();
  }
  {
    constexpr int16_t kPrevFieldId = 2;
    xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 3, kPrevFieldId>(*prot_, "data", previousFieldHasValue);
    previousFieldHasValue = true;
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::write(*prot_, this->__fbthrift_field_data);
    xfer += prot_->writeFieldEnd();
  }
  xfer += prot_->writeFieldStop();
  xfer += prot_->writeStructEnd();
  return xfer;
}

extern template void AnyStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
extern template uint32_t AnyStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
extern template uint32_t AnyStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
extern template uint32_t AnyStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
extern template void AnyStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
extern template uint32_t AnyStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
extern template uint32_t AnyStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
extern template uint32_t AnyStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;


template <class Protocol_>
void SemiAnyStruct::readNoXfer(Protocol_* iprot) {
  __fbthrift_clear_terse_fields();

  apache::thrift::detail::ProtocolReaderStructReadState<Protocol_> _readState;

  _readState.readStructBegin(iprot);

  using apache::thrift::TProtocolException;


  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          0,
          1,
          apache::thrift::protocol::T_STRUCT))) {
    goto _loop;
  }
_readField_type:
  {
    _readState.beforeSubobject(iprot);
    constexpr bool hasInplaceToThrift = ::apache::thrift::adapt_detail::has_inplace_toThrift<::apache::thrift::InlineAdapter<::apache::thrift::type::Type>, ::apache::thrift::type::Type>::value;
    ::folly::if_constexpr<hasInplaceToThrift>(
      [&](auto& field) {
        ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::readWithContext(*iprot, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(field), _readState);
      },
      [&](auto&) {})(this->__fbthrift_field_type);
    if (!hasInplaceToThrift) {
      ::apache::thrift::type::TypeStruct tvalue;
      ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::readWithContext(*iprot, tvalue, _readState);
      this->__fbthrift_field_type = ::apache::thrift::adapt_detail::fromThriftField<::apache::thrift::InlineAdapter<::apache::thrift::type::Type>, 1>(::std::move(tvalue), *this);
    }
    _readState.afterSubobject(iprot);
    
  }
 this->__isset.set(0, true);

  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          1,
          2,
          apache::thrift::protocol::T_STRUCT))) {
    goto _loop;
  }
_readField_protocol:
  {
    _readState.beforeSubobject(iprot);
    constexpr bool hasInplaceToThrift = ::apache::thrift::adapt_detail::has_inplace_toThrift<::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>, ::apache::thrift::type::Protocol>::value;
    ::folly::if_constexpr<hasInplaceToThrift>(
      [&](auto& field) {
        ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::readWithContext(*iprot, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(field), _readState);
      },
      [&](auto&) {})(this->__fbthrift_field_protocol);
    if (!hasInplaceToThrift) {
      ::apache::thrift::type::ProtocolUnion tvalue;
      ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::readWithContext(*iprot, tvalue, _readState);
      this->__fbthrift_field_protocol = ::apache::thrift::adapt_detail::fromThriftField<::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>, 2>(::std::move(tvalue), *this);
    }
    _readState.afterSubobject(iprot);
    
  }
 this->__isset.set(1, true);

  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          2,
          3,
          apache::thrift::protocol::T_STRING))) {
    goto _loop;
  }
_readField_data:
  {
    ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::readWithContext(*iprot, this->__fbthrift_field_data, _readState);
    
  }
 this->__isset.set(2, true);

  if (UNLIKELY(!_readState.advanceToNextField(
          iprot,
          3,
          0,
          apache::thrift::protocol::T_STOP))) {
    goto _loop;
  }

_end:
  _readState.readStructEnd(iprot);

  return;

_loop:
  _readState.afterAdvanceFailure(iprot);
  if (_readState.atStop()) {
    goto _end;
  }
  if (iprot->kUsesFieldNames()) {
    _readState.template fillFieldTraitsFromName<apache::thrift::detail::TccStructTraits<SemiAnyStruct>>();
  }

  switch (_readState.fieldId) {
    case 1:
    {
      if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
        goto _readField_type;
      } else {
        goto _skip;
      }
    }
    case 2:
    {
      if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRUCT))) {
        goto _readField_protocol;
      } else {
        goto _skip;
      }
    }
    case 3:
    {
      if (LIKELY(_readState.isCompatibleWithType(iprot, apache::thrift::protocol::T_STRING))) {
        goto _readField_data;
      } else {
        goto _skip;
      }
    }
    default:
    {
_skip:
      _readState.skip(iprot);
      _readState.readFieldEnd(iprot);
      _readState.readFieldBeginNoInline(iprot);
      goto _loop;
    }
  }
}

template <class Protocol_>
uint32_t SemiAnyStruct::serializedSize(Protocol_ const* prot_) const {
  uint32_t xfer = 0;
  xfer += prot_->serializedStructSize("SemiAnyStruct");
  {
    xfer += prot_->serializedFieldSize("type", apache::thrift::protocol::T_STRUCT, 1);
    xfer += ::apache::thrift::adapt_detail::serializedSize<false, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>>(*prot_, this->__fbthrift_field_type, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::serializedSize<false>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(this->__fbthrift_field_type));});
  }
  {
    xfer += prot_->serializedFieldSize("protocol", apache::thrift::protocol::T_STRUCT, 2);
    xfer += ::apache::thrift::adapt_detail::serializedSize<false, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>>(*prot_, this->__fbthrift_field_protocol, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::serializedSize<false>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(this->__fbthrift_field_protocol));});
  }
  {
    xfer += prot_->serializedFieldSize("data", apache::thrift::protocol::T_STRING, 3);
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::serializedSize<false>(*prot_, this->__fbthrift_field_data);
  }
  xfer += prot_->serializedSizeStop();
  return xfer;
}

template <class Protocol_>
uint32_t SemiAnyStruct::serializedSizeZC(Protocol_ const* prot_) const {
  uint32_t xfer = 0;
  xfer += prot_->serializedStructSize("SemiAnyStruct");
  {
    xfer += prot_->serializedFieldSize("type", apache::thrift::protocol::T_STRUCT, 1);
    xfer += ::apache::thrift::adapt_detail::serializedSize<true, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>>(*prot_, this->__fbthrift_field_type, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::serializedSize<true>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(this->__fbthrift_field_type));});
  }
  {
    xfer += prot_->serializedFieldSize("protocol", apache::thrift::protocol::T_STRUCT, 2);
    xfer += ::apache::thrift::adapt_detail::serializedSize<true, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>>(*prot_, this->__fbthrift_field_protocol, [&] {return ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::serializedSize<true>(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(this->__fbthrift_field_protocol));});
  }
  {
    xfer += prot_->serializedFieldSize("data", apache::thrift::protocol::T_STRING, 3);
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::serializedSize<true>(*prot_, this->__fbthrift_field_data);
  }
  xfer += prot_->serializedSizeStop();
  return xfer;
}

template <class Protocol_>
uint32_t SemiAnyStruct::write(Protocol_* prot_) const {
  uint32_t xfer = 0;
  xfer += prot_->writeStructBegin("SemiAnyStruct");
  bool previousFieldHasValue = true;
  {
    constexpr int16_t kPrevFieldId = 0;
    xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 1, kPrevFieldId>(*prot_, "type", previousFieldHasValue);
    previousFieldHasValue = true;
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::structure, ::apache::thrift::type::TypeStruct>::write(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Type>::toThrift(this->__fbthrift_field_type));
    xfer += prot_->writeFieldEnd();
  }
  {
    constexpr int16_t kPrevFieldId = 1;
    xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRUCT, 2, kPrevFieldId>(*prot_, "protocol", previousFieldHasValue);
    previousFieldHasValue = true;
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::variant, ::apache::thrift::type::ProtocolUnion>::write(*prot_, ::apache::thrift::InlineAdapter<::apache::thrift::type::Protocol>::toThrift(this->__fbthrift_field_protocol));
    xfer += prot_->writeFieldEnd();
  }
  {
    constexpr int16_t kPrevFieldId = 2;
    xfer += ::apache::thrift::detail::writeFieldBegin<apache::thrift::protocol::T_STRING, 3, kPrevFieldId>(*prot_, "data", previousFieldHasValue);
    previousFieldHasValue = true;
    xfer += ::apache::thrift::detail::pm::protocol_methods<::apache::thrift::type_class::binary, ::apache::thrift::type::ByteBuffer>::write(*prot_, this->__fbthrift_field_data);
    xfer += prot_->writeFieldEnd();
  }
  xfer += prot_->writeFieldStop();
  xfer += prot_->writeStructEnd();
  return xfer;
}

extern template void SemiAnyStruct::readNoXfer<>(apache::thrift::BinaryProtocolReader*);
extern template uint32_t SemiAnyStruct::write<>(apache::thrift::BinaryProtocolWriter*) const;
extern template uint32_t SemiAnyStruct::serializedSize<>(apache::thrift::BinaryProtocolWriter const*) const;
extern template uint32_t SemiAnyStruct::serializedSizeZC<>(apache::thrift::BinaryProtocolWriter const*) const;
extern template void SemiAnyStruct::readNoXfer<>(apache::thrift::CompactProtocolReader*);
extern template uint32_t SemiAnyStruct::write<>(apache::thrift::CompactProtocolWriter*) const;
extern template uint32_t SemiAnyStruct::serializedSize<>(apache::thrift::CompactProtocolWriter const*) const;
extern template uint32_t SemiAnyStruct::serializedSizeZC<>(apache::thrift::CompactProtocolWriter const*) const;


}}} // apache::thrift::type
