<commit_before>#include <string>

// Calls a native function and returns its result.
//
// The function is pulled from the file "libmodule.so" in the working directory, replacing module with the value of the module parameter.
// Throws a runtime_error if the module or function cannot be found.
//
// WARNING: Your method call may fail spectacularly unless all of the ArgTypes and the RetType are standard layout types.
// http://en.cppreference.com/w/cpp/concept/StandardLayoutType
// In particular, references (like int&) and standard library types (like std::vector) are NOT standard layout types.
template <typename RetType, typename... ArgType>
RetType call_native(std::string module, std::string function, ArgType... argv);<commit_msg>Add header guards to native.h<commit_after>#ifndef _NATIVE_H_
#define _NATIVE_H_

#include <string>

// Calls a native function and returns its result.
//
// The function is pulled from the file "libmodule.so" in the working directory, replacing module with the value of the module parameter.
// Throws a runtime_error if the module or function cannot be found.
//
// WARNING: Your method call may fail spectacularly unless all of the ArgTypes and the RetType are standard layout types.
// http://en.cppreference.com/w/cpp/concept/StandardLayoutType
// In particular, references (like int&) and standard library types (like std::vector) are NOT standard layout types.
template <typename RetType, typename... ArgType>
RetType call_native(std::string module, std::string function, ArgType... argv);

#endif
{'fraction_non_alphanumeric': 0.08932038834951456, 'fraction_numerical': 0.0, 'mean_word_length': 4.501779359430605, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, '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': '2662841', 'n_tokens_mistral': 406, 'n_tokens_neox': 399, 'n_words': 190}