34 if (m_info_list.empty()) {
38 for (
const auto& info : m_info_list) {
39 const auto& name = info.name;
40 if (!set.insert(name).second) {
47 if (this->m_info_list.size() != other.
m_info_list.size()) {
54 return !(*
this == other);
58 return m_info_list.size();
62 if (index >=
size()) {
65 return m_info_list[index];
69 auto iter =
std::find_if(m_info_list.begin(), m_info_list.end(), [&name](
const info_type& info) {
return info.name == name; });
70 if (iter == m_info_list.end()) {
77 auto begin = m_info_list.begin();
78 auto end = m_info_list.end();
81 size_t index{
static_cast<size_t>(
std::distance(begin, iter))};
bool operator==(const ColumnInfo &other) const
Returns true if this ColumnInfo represents the same columns with the given one.
std::vector< info_type > m_info_list
std::size_t size() const
Returns the number of columns represented by this ColumnInfo.
const ColumnDescription & getDescription(std::size_t index) const
Returns the description of the column with the given index or throws an exception if the index is big...
bool operator!=(const ColumnInfo &other) const
Returns false if this ColumnInfo represents the same columns with the given one.
Provides information about the columns of a Table.
ColumnInfo(std::vector< info_type > info_list)
Constructs a ColumnInfo representing the given column names and types.
std::unique_ptr< std::size_t > find(const std::string &name) const
Returns the index of a column, given the name of it, or nullptr if there is no column with this name...
Contains the description of a specific column of a Table.