<commit_before>#pragma once
#include <string>
#include <vector>
#include <unordered_map>
#include <cassert>

#include "vcd_data_fwd.hpp"

//The classes defined in this file correspond to the data loaded from the VCD file

namespace vcdparse {

    enum class LogicValue {
        ONE,
        ZERO,
        UNKOWN,
        HIGHZ
    };
    std::ostream& operator<<(std::ostream& os, LogicValue val);

    class TimeValue {
        public:
            TimeValue(size_t new_time, LogicValue new_value)
                : time_(new_time)
                , value_(new_value) 
                {}

            size_t time() const { return time_; }
            LogicValue value() const { return value_; }
        
        private:
            size_t time_;
            LogicValue value_;
    };

    class Var {
        public:
            enum class Type {
                WIRE,
                REG,
                PARAMETER
            };

            Var() = default;
            Var(Type new_type, size_t new_width, std::string new_id, std::vector<std::string> new_hierarchical_name)
                : type_(new_type)
                , width_(new_width)<commit_msg>Add default constructor to TimeValue.<commit_after>#pragma once
#include <string>
#include <vector>
#include <unordered_map>
#include <cassert>
#include <limits>

#include "vcd_data_fwd.hpp"

//The classes defined in this file correspond to the data loaded from the VCD file

namespace vcdparse {

    enum class LogicValue {
        ONE,
        ZERO,
        UNKOWN,
        HIGHZ
    };
    std::ostream& operator<<(std::ostream& os, LogicValue val);

    class TimeValue {
        public:
            TimeValue(size_t new_time=0, LogicValue new_value=LogicValue::UNKOWN)
                : time_(new_time)
                , value_(new_value) 
                {}

            size_t time() const { return time_; }
            LogicValue value() const { return value_; }
        
        private:
            size_t time_;
            LogicValue value_;
    };

    class Var {
        public:
            enum class Type {
                WIRE,
                REG,
                PARAMETER
            };

            Var() = default;
            Var(Type new_type, size_t new_width, std::string new_id, std::vector<std::string> new_hierarchical_name)
                : type_(new_type)
                , width_(new_width)
{'fraction_non_alphanumeric': 0.08630079597821533, 'fraction_numerical': 0.00041893590280687055, 'mean_word_length': 1.6891891891891893, 'pattern_counts': {'":': 0, '<': 18, '<?xml version=': 0, '>': 14, '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': '4984257', 'n_tokens_mistral': 706, 'n_tokens_neox': 668, 'n_words': 177}