<commit_before>#ifndef SWOOSH_GRAPH_H_
#define SWOOSH_GRAPH_H_

#include "param.h"
#include <string>
#include <tuple>
#include <vector>
#include <unordered_map>
#include <unordered_set>

namespace std {

// edge field indices
#define F_S               0           // source node id
#define F_STYPE           1           // source node type
#define F_D               2           // destination node id
#define F_DTYPE           3           // destination node type
#define F_ETYPE           4           // edge type
//#define F_T               5           // timestamp
#define F_GID             5           // graph id (tag)

// data structures
typedef tuple<uint32_t,char,uint32_t,char,char,uint32_t> edge;
typedef unordered_map<pair<uint32_t,char>,
                      vector<tuple<uint32_t,char,char>>> graph;
typedef vector<uint32_t> shingle_vector;

void update_graphs(edge& e, vector<graph>& graphs);
void print_edge(edge& e);<commit_msg>missing bitset include<commit_after>#ifndef SWOOSH_GRAPH_H_
#define SWOOSH_GRAPH_H_

#include <bitset>
#include "param.h"
#include <string>
#include <tuple>
#include <vector>
#include <unordered_map>
#include <unordered_set>

namespace std {

// edge field indices
#define F_S               0           // source node id
#define F_STYPE           1           // source node type
#define F_D               2           // destination node id
#define F_DTYPE           3           // destination node type
#define F_ETYPE           4           // edge type
//#define F_T               5           // timestamp
#define F_GID             5           // graph id (tag)

// data structures
typedef tuple<uint32_t,char,uint32_t,char,char,uint32_t> edge;
typedef unordered_map<pair<uint32_t,char>,
                      vector<tuple<uint32_t,char,char>>> graph;
typedef vector<uint32_t> shingle_vector;

void update_graphs(edge& e, vector<graph>& graphs);
void print_edge(edge& e);
{'fraction_non_alphanumeric': 0.09546165884194054, 'fraction_numerical': 0.0198226395409494, 'mean_word_length': 2.2674616695059626, 'pattern_counts': {'":': 0, '<': 28, '<?xml version=': 0, '>': 28, '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': '4685607', 'n_tokens_mistral': 629, 'n_tokens_neox': 590, 'n_words': 163}