<commit_before>#pragma once

#include <cstdint>
#include <functional>
#include <string>
#include <type_traits>

#include <boost/mpl/contains.hpp>
#include <boost/mpl/vector.hpp>

#include "blackhole/cpp17/string_view.hpp"

namespace blackhole {
inline namespace v1 {

/// Trait that describes how to format user defined types provided as attributes.
template<typename T>
struct display_traits;

/// Represents a trait for mapping an owned types to their associated lightweight view types.
///
/// By default all types are transparently mapped to itself, but Blackhole provides some
/// specializations.
///
/// \warning it is undefined behavior to add specializations for this trait.
template<typename T>
struct view_of {
    typedef T type;
};

/// Forward.
class writer_t;

}  // namespace v1
}  // namespace blackhole

namespace blackhole {<commit_msg>docs: add comments<commit_after>#pragma once

#include <cstdint>
#include <functional>
#include <string>
#include <type_traits>

#include <boost/mpl/contains.hpp>
#include <boost/mpl/vector.hpp>

#include "blackhole/cpp17/string_view.hpp"

namespace blackhole {
inline namespace v1 {

/// Trait that describes how to format user defined types provided as attributes.
///
/// The trait must implement `apply` function that matches attribute function type signature.
template<typename T>
struct display_traits;

/// Represents a trait for mapping an owned types to their associated lightweight view types.
///
/// By default all types are transparently mapped to itself, but Blackhole provides some
/// specializations.
///
/// \warning it is undefined behavior to add specializations for this trait.
template<typename T>
struct view_of {
    typedef T type;
};

/// Forward.
class writer_t;

}  // namespace v1
}  // namespace blackhole

namespace blackhole {
{'fraction_non_alphanumeric': 0.09817981246552675, 'fraction_numerical': 0.00441257584114727, 'mean_word_length': 4.095505617977528, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, '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': '4416850', 'n_tokens_mistral': 513, 'n_tokens_neox': 496, 'n_words': 198}