<commit_before>#pragma once

#include <functional>
#include <unordered_map>
#include <memory>
#include <string>
#include <ostream>
#include <set>
#include <utility>
#include <SFML/Window.hpp>

// This can be switched out for a larger type to improve input precision, but this will increase the size of replays.
// This type should always be a signed integer type.
#ifndef ECSE_INPUT_INTERNAL_TYPE
#define ECSE_INPUT_INTERNAL_TYPE int8_t
#endif

// The lower this is, the more precise input will be, but the larger replays will be.
// The input will be rounded into "chunks" of size 1 << ECSE_INPUT_PRECISION.
#ifndef ECSE_INPUT_PRECISION
#define ECSE_INPUT_PRECISION 3
#endif

namespace ECSE
{

//! Aggregates input from various sources through a single interface.
class InputManager
{<commit_msg>Reduce precision of inputs a bit<commit_after>#pragma once

#include <functional>
#include <unordered_map>
#include <memory>
#include <string>
#include <ostream>
#include <set>
#include <utility>
#include <SFML/Window.hpp>

// This can be switched out for a larger type to improve input precision, but this will increase the size of replays.
// This type should always be a signed integer type.
#ifndef ECSE_INPUT_INTERNAL_TYPE
#define ECSE_INPUT_INTERNAL_TYPE int8_t
#endif

// The lower this is, the more precise input will be, but the larger replays will be.
// The input will be rounded into "chunks" of size 1 << ECSE_INPUT_PRECISION.
#ifndef ECSE_INPUT_PRECISION
#define ECSE_INPUT_PRECISION 4
#endif

namespace ECSE
{

//! Aggregates input from various sources through a single interface.
class InputManager
{
{'fraction_non_alphanumeric': 0.07563546187228766, 'fraction_numerical': 0.0037197768133911966, 'mean_word_length': 5.113636363636363, 'pattern_counts': {'":': 0, '<': 23, '<?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': '189371', 'n_tokens_mistral': 503, 'n_tokens_neox': 488, 'n_words': 205}