30 lines
611 B
C++
30 lines
611 B
C++
#pragma once
|
|
|
|
#include "parser.h"
|
|
#include "row.h"
|
|
|
|
#include <vector>
|
|
|
|
// TODO make it a class
|
|
struct Table {
|
|
|
|
// public:
|
|
Table(const Table& other);
|
|
|
|
Table(const std::string name, const std::vector<ColDefNode> columns);
|
|
|
|
ColDefNode get_column_def(const std::string& col_name);
|
|
int columns_count() { return m_col_defs.size(); };
|
|
|
|
Row createEmptyRow(); // TODO this means unnecessary copying
|
|
void addRow(const Row &row);
|
|
|
|
void print();
|
|
|
|
|
|
// private:
|
|
std::string m_name;
|
|
std::vector<ColDefNode> m_col_defs;
|
|
std::vector<Row> m_rows;
|
|
};
|