/**
 * Autogenerated by Thrift for thrift/compiler/test/fixtures/default_values/src/module.thrift
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */

#pragma once

#include <functional>
#include <folly/Range.h>

#include "thrift/compiler/test/fixtures/default_values/gen-cpp2/module_data.h"
#include "thrift/compiler/test/fixtures/default_values/gen-cpp2/module_types.h"
#include "thrift/compiler/test/fixtures/default_values/gen-cpp2/module_metadata.h"
namespace thrift {
namespace py3 {



template<>
inline void reset_field<::facebook::thrift::compiler::test::fixtures::default_values::TrivialStruct>(
    ::facebook::thrift::compiler::test::fixtures::default_values::TrivialStruct& obj, uint16_t index) {
  switch (index) {
    case 0:
      obj.int_value_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::TrivialStruct>().int_value_ref());
      return;
  }
}

template<>
inline void reset_field<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>(
    ::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues& obj, uint16_t index) {
  switch (index) {
    case 0:
      obj.unqualified_integer_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>().unqualified_integer_ref());
      return;
    case 1:
      obj.optional_integer_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>().optional_integer_ref());
      return;
    case 2:
      obj.required_integer_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>().required_integer_ref());
      return;
    case 3:
      obj.unqualified_struct_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>().unqualified_struct_ref());
      return;
    case 4:
      obj.optional_struct_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>().optional_struct_ref());
      return;
    case 5:
      obj.required_struct_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>().required_struct_ref());
      return;
  }
}

template<>
inline void reset_field<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>(
    ::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues& obj, uint16_t index) {
  switch (index) {
    case 0:
      obj.unqualified_integer_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>().unqualified_integer_ref());
      return;
    case 1:
      obj.optional_integer_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>().optional_integer_ref());
      return;
    case 2:
      obj.required_integer_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>().required_integer_ref());
      return;
    case 3:
      obj.unqualified_struct_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>().unqualified_struct_ref());
      return;
    case 4:
      obj.optional_struct_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>().optional_struct_ref());
      return;
    case 5:
      obj.required_struct_ref().copy_from(default_inst<::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>().required_struct_ref());
      return;
  }
}

template<>
inline const std::unordered_map<std::string_view, std::string_view>& PyStructTraits<
    ::facebook::thrift::compiler::test::fixtures::default_values::TrivialStruct>::namesmap() {
  static const folly::Indestructible<NamesMap> map {
    {
    }
  };
  return *map;
}

template<>
inline const std::unordered_map<std::string_view, std::string_view>& PyStructTraits<
    ::facebook::thrift::compiler::test::fixtures::default_values::StructWithNoCustomDefaultValues>::namesmap() {
  static const folly::Indestructible<NamesMap> map {
    {
    }
  };
  return *map;
}

template<>
inline const std::unordered_map<std::string_view, std::string_view>& PyStructTraits<
    ::facebook::thrift::compiler::test::fixtures::default_values::StructWithCustomDefaultValues>::namesmap() {
  static const folly::Indestructible<NamesMap> map {
    {
    }
  };
  return *map;
}
} // namespace py3
} // namespace thrift
