<commit_before>#pragma once

#include <string>
#include <ctime>
#include <glm/glm.hpp>
#include "linking.hpp"

/// Logging class.
/**
 * Usage:
 * @code{.cpp}
 * Log() << "Testing: " << 5 << "\n";
 * @endcode
 */
class Log {
    public:
        UTILITY_API const enum Channel {
            DEFAULT = 0,    ///< Default channel.
            INFO,           ///< Information.
            WARNING,        ///< Warnings.
            ERR,            ///< Error.
            CONSOLE,        ///< Console.
            MAX             ///< Maximum number of channels, ensure this is the last element of the enum if adding channels.
        };

        /// Destructor.
        UTILITY_API ~Log();
        
        /// Output some text to stderr.
        /**
         * @param text Text to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(std::string text);
        
        /// Output an integer to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(int value);
        
        /// Output an unsigned integer to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(unsigned int value);
        
        /// Output a float to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(float value);
        
        /// Output a double to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(double value);
        
        /// Output a time to stderr.
        /**
         * Formatted Y-m-d H:M:S.
         * @param value Value to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(time_t value);
        
        /// Output a vec2 to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(const glm::vec2& value);
        
        /// Output a vec3 to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(const glm::vec3& value);
        
        /// Output a vec4 to stderr.
        /**
        * @param value Value to output.
        * @return The %Log instance.
        */
        UTILITY_API Log& operator<<(const glm::vec4& value);
};
<commit_msg>Changed name of max to number of channels.<commit_after>#pragma once

#include <string>
#include <ctime>
#include <glm/glm.hpp>
#include "linking.hpp"

/// Logging class.
/**
 * Usage:
 * @code{.cpp}
 * Log() << "Testing: " << 5 << "\n";
 * @endcode
 */
class Log {
    public:
        UTILITY_API const enum Channel {
            DEFAULT = 0,        ///< Default channel.
            INFO,               ///< Information.
            WARNING,            ///< Warnings.
            ERR,                ///< Error.
            CONSOLE,            ///< Console.
            NUMBER_OF_CHANNELS  ///< Maximum number of channels, ensure this is the last element of the enum if adding channels.
        };

        /// Destructor.
        UTILITY_API ~Log();
        
        /// Output some text to stderr.
        /**
         * @param text Text to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(std::string text);
        
        /// Output an integer to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(int value);
        
        /// Output an unsigned integer to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(unsigned int value);
        
        /// Output a float to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(float value);
        
        /// Output a double to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(double value);
        
        /// Output a time to stderr.
        /**
         * Formatted Y-m-d H:M:S.
         * @param value Value to output.
         * @return The %Log instance
         */
        UTILITY_API Log& operator<<(time_t value);
        
        /// Output a vec2 to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(const glm::vec2& value);
        
        /// Output a vec3 to stderr.
        /**
         * @param value Value to output.
         * @return The %Log instance.
         */
        UTILITY_API Log& operator<<(const glm::vec3& value);
        
        /// Output a vec4 to stderr.
        /**
        * @param value Value to output.
        * @return The %Log instance.
        */
        UTILITY_API Log& operator<<(const glm::vec4& value);
};

{'fraction_non_alphanumeric': 0.12110197053759326, 'fraction_numerical': 0.003061029271092405, 'mean_word_length': 1.3173758865248226, 'pattern_counts': {'":': 0, '<': 69, '<?xml version=': 0, '>': 9, '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': '1833267', 'n_tokens_mistral': 1474, 'n_tokens_neox': 1430, 'n_words': 463}