Support custom table entry formats
authorMichael Andres <ma@suse.de>
Wed, 16 Jan 2013 19:01:05 +0000 (20:01 +0100)
committerMichael Andres <ma@suse.de>
Wed, 16 Jan 2013 19:03:45 +0000 (20:03 +0100)
src/Table.h

index ae60f3f..31f9ed7 100644 (file)
@@ -15,6 +15,8 @@
 #include <list>
 #include <vector>
 
+#include <zypp/base/String.h>
+
 using std::string;
 using std::ostream;
 using std::list;
@@ -76,25 +78,26 @@ private:
   friend class Table;
 };
 
-/** \relates TableRow */
-inline TableRow & operator<<( TableRow & tr, const string & s )
+/** \relates TableRow Add colummn. */
+template<class _Tp>
+TableRow & operator<<( TableRow & tr, const _Tp & val )
 {
-  tr.add (s);
+  tr.add( zypp::str::asString( val ) );
   return tr;
 }
 
+
+
 class TableHeader : public TableRow {
 public:
   //! Constructor. Reserve place for c columns.
   TableHeader (unsigned c = 0): TableRow (c) {}
 };
 
-/** \relates TableHeader */
-inline TableHeader & operator<<( TableHeader & tr, const string & s )
-{
-  tr.add (s);
-  return tr;
-}
+/** \relates TableHeader  Add colummn. */
+template<class _Tp>
+TableHeader & operator<<( TableHeader & th, const _Tp & val )
+{ static_cast<TableRow&>( th ) << val; return th; }
 
 /** \todo nice idea but poor interface */
 class Table {