File: PrintUtils.h

package info (click to toggle)
pymol 3.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 74,084 kB
  • sloc: cpp: 482,660; python: 89,328; ansic: 29,512; javascript: 6,792; sh: 84; makefile: 25
file content (31 lines) | stat: -rw-r--r-- 885 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include <type_traits>
#include <vector>
#include <string>
#include <sstream>

/***********************************************************************
 * Table pretty printing utility class
 * ---------------------------------------------------------------------
 * Will autofill to the row with the largest column
 ***********************************************************************/
class display_table_t {
public:
  // both begins and ends a row
  display_table_t & begin_row();

  // inserts a new cell with some printable type in it
  template <typename T>
  display_table_t & insert_cell(T s) {
    std::stringstream ss;
    ss << s;
    _table[_current_row].emplace_back(ss.str());
    return *this;
  }

  // finalizes the table and prints it to std out
  void display();
private:
  int _current_row { -1 };
  std::vector<std::vector<std::string>> _table;
};