#ifndef MATADOR_RECORD_PRINTER_HPP #define MATADOR_RECORD_PRINTER_HPP #include "matador/sql/record.hpp" #include #include namespace matador::sql { class field; class record; } namespace matador::test { class record_printer final { public: explicit record_printer(std::ostream &os); void print_header(const sql::record &rec) const; void print(const sql::record &rec) const; template < class Type, template class ContainerType > void print(ContainerType &records) const { bool first = true; for (const auto &rec: records) { if (first) { print_header(rec); first = false; } print(rec); } } private: [[nodiscard]] static int width(const sql::field &f) ; private: std::ostream &os_; std::map type_widths_; }; } #endif //MATADOR_RECORD_PRINTER_HPP