text: /**
   * Autogenerated by Thrift for src/module.thrift
   *
   * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
   *  @generated @nocommit
   */
  #pragma once
  
  #include <vector>
  
  #include <thrift/lib/cpp2/gen/module_metadata_h.h>
  #include "thrift/compiler/test/fixtures/basic-annotations/gen-cpp2/module_types.h"
  
  namespace cpp2 {
  class MyService;
  class MyServiceSvIf;
  } // namespace cpp2
  namespace cpp2 {
  class MyServicePrioParent;
  class MyServicePrioParentSvIf;
  } // namespace cpp2
  namespace cpp2 {
  class MyServicePrioChild;
  class MyServicePrioChildSvIf;
  } // namespace cpp2
  namespace cpp2 {
  class GoodService;
  class GoodServiceSvIf;
  } // namespace cpp2
  
  namespace apache {
  namespace thrift {
  namespace detail {
  namespace md {
  
  template <>
  class EnumMetadata<::cpp2::YourEnum> {
   public:
    static void gen(ThriftMetadata& metadata);
  };
  template <>
  class StructMetadata<::cpp2::MyStructNestedAnnotation> {
   public:
    static const ::apache::thrift::metadata::ThriftStruct& gen(ThriftMetadata& metadata);
   private:
    static void unstructured_annotations(::apache::thrift::metadata::ThriftStruct& thriftStruct);
  };
  template <>
  class StructMetadata<::cpp2::YourUnion> {
   public:
    static const ::apache::thrift::metadata::ThriftStruct& gen(ThriftMetadata& metadata);
   private:
    static void unstructured_annotations(::apache::thrift::metadata::ThriftStruct& thriftStruct);
  };
  template <>
  class StructMetadata<::cpp2::YourException> {
   public:
    static const ::apache::thrift::metadata::ThriftStruct& gen(ThriftMetadata& metadata);
   private:
    static void unstructured_annotations(::apache::thrift::metadata::ThriftStruct& thriftStruct);
  };
  template <>
  class StructMetadata<::cpp2::YourStruct> {
   public:
    static const ::apache::thrift::metadata::ThriftStruct& gen(ThriftMetadata& metadata);
   private:
    static void unstructured_annotations(::apache::thrift::metadata::ThriftStruct& thriftStruct);
  };
  template <>
  class StructMetadata<::cpp2::SecretStruct> {
   public:
    static const ::apache::thrift::metadata::ThriftStruct& gen(ThriftMetadata& metadata);
   private:
    static void unstructured_annotations(::apache::thrift::metadata::ThriftStruct& thriftStruct);
  };
  template <>
  class ExceptionMetadata<::cpp2::YourException> {
   public:
    static void gen(ThriftMetadata& metadata);
  };
  template <>
  class ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyService>> {
   public:
    static void gen(ThriftServiceMetadataResponse& response);
   private:
    static const ThriftServiceContextRef* genRecurse(ThriftMetadata& metadata, std::vector<ThriftServiceContextRef>& services);
  
    template <typename T>
    friend class ServiceMetadata;
  
    static void gen_ping(ThriftMetadata& metadata, ThriftService& context);
    static void gen_getRandomData(ThriftMetadata& metadata, ThriftService& context);
    static void gen_hasDataById(ThriftMetadata& metadata, ThriftService& context);
    static void gen_getDataById(ThriftMetadata& metadata, ThriftService& context);
    static void gen_putDataById(ThriftMetadata& metadata, ThriftService& context);
    static void gen_lobDataById(ThriftMetadata& metadata, ThriftService& context);
    static void gen_cppDoNothing(ThriftMetadata& metadata, ThriftService& context);
  };
  template <>
  class ServiceMetadata<::cpp2::MyServiceSvIf> final
      : public ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyService>> {};
  template <>
  class ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyServicePrioParent>> {
   public:
    static void gen(ThriftServiceMetadataResponse& response);
   private:
    static const ThriftServiceContextRef* genRecurse(ThriftMetadata& metadata, std::vector<ThriftServiceContextRef>& services);
  
    template <typename T>
    friend class ServiceMetadata;
  
    static void gen_ping(ThriftMetadata& metadata, ThriftService& context);
    static void gen_pong(ThriftMetadata& metadata, ThriftService& context);
  };
  template <>
  class ServiceMetadata<::cpp2::MyServicePrioParentSvIf> final
      : public ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyServicePrioParent>> {};
  template <>
  class ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyServicePrioChild>> {
   public:
    static void gen(ThriftServiceMetadataResponse& response);
   private:
    static const ThriftServiceContextRef* genRecurse(ThriftMetadata& metadata, std::vector<ThriftServiceContextRef>& services);
  
    template <typename T>
    friend class ServiceMetadata;
  
    static void gen_pang(ThriftMetadata& metadata, ThriftService& context);
  };
  template <>
  class ServiceMetadata<::cpp2::MyServicePrioChildSvIf> final
      : public ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::MyServicePrioChild>> {};
  template <>
  class ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::GoodService>> {
   public:
    static void gen(ThriftServiceMetadataResponse& response);
   private:
    static const ThriftServiceContextRef* genRecurse(ThriftMetadata& metadata, std::vector<ThriftServiceContextRef>& services);
  
    template <typename T>
    friend class ServiceMetadata;
  
    static void gen_bar(ThriftMetadata& metadata, ThriftService& context);
  };
  template <>
  class ServiceMetadata<::cpp2::GoodServiceSvIf> final
      : public ServiceMetadata<::apache::thrift::ServiceHandler<::cpp2::GoodService>> {};
  } // namespace md
  } // namespace detail
  } // namespace thrift
  } // namespace apache
  