<commit_before>#pragma once
/*
**  Copyright (C) 2013 Aldebaran Robotics
**  See COPYING for the license
*/

#ifndef _QITYPE_DETAIL_TYPETUPLE_HXX_
#define _QITYPE_DETAIL_TYPETUPLE_HXX_

#include <boost/type_traits.hpp>
#include <boost/utility/enable_if.hpp>
#include <qi/type/fwd.hpp>
#include <qi/type/detail/accessor.hxx>
#include <qi/preproc.hpp>

namespace qi
{
  namespace detail {

    bool QI_API fillMissingFieldsWithDefaultValues(
        std::map<std::string, ::qi::AnyValue>& fields,
        const std::vector<std::tuple<std::string, TypeInterface*>>& missing,
        const char** which=0, int whichLength=0);

    template <typename T>
    struct StructVersioningDelegateAddFields
    {
      static bool convertFrom(StructTypeInterface* type,
                              std::map<std::string, qi::AnyValue>& fields,
                              const std::vector<std::tuple<std::string, TypeInterface*>>& missing)
      {
        return missing.empty();
      }
      static bool convertTo(const std::map<std::string, qi::AnyReference>& dropFields)
      {
        return dropFields.empty();
      }
    };
    template <typename T>
    struct StructVersioningDelegateDropFields<commit_msg>StructTypeInterface: explicitely includes dependencies<commit_after>#pragma once
/*
**  Copyright (C) 2013 Aldebaran Robotics
**  See COPYING for the license
*/

#ifndef _QITYPE_DETAIL_TYPETUPLE_HXX_
#define _QITYPE_DETAIL_TYPETUPLE_HXX_

#include <map>
#include <boost/type_traits.hpp>
#include <boost/utility/enable_if.hpp>
#include <qi/api.hpp>
#include <qi/type/fwd.hpp>
#include <qi/type/detail/accessor.hxx>
#include <qi/type/typeinterface.hpp>
#include <qi/preproc.hpp>

namespace qi
{
  namespace detail {

    bool QI_API fillMissingFieldsWithDefaultValues(
        std::map<std::string, ::qi::AnyValue>& fields,
        const std::vector<std::tuple<std::string, TypeInterface*>>& missing,
        const char** which=0, int whichLength=0);

    template <typename T>
    struct StructVersioningDelegateAddFields
    {
      static bool convertFrom(StructTypeInterface* type,
                              std::map<std::string, qi::AnyValue>& fields,
                              const std::vector<std::tuple<std::string, TypeInterface*>>& missing)
      {
        return missing.empty();
      }
      static bool convertTo(const std::map<std::string, qi::AnyReference>& dropFields)
      {
        return dropFields.empty();
      }
    };
    template <typename T>
    struct StructVersioningDelegateDropFields
{'fraction_non_alphanumeric': 0.11743772241992882, 'fraction_numerical': 0.004744958481613286, 'mean_word_length': 3.4308231173380035, 'pattern_counts': {'":': 0, '<': 34, '<?xml version=': 0, '>': 34, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7644781', 'n_tokens_mistral': 807, 'n_tokens_neox': 782, 'n_words': 160}