Public Member Functions | Private Member Functions | Private Attributes | List of all members
art::detail::MetadataSummaryFor< suffix_type::module > Class Template Reference

#include <MetadataSummaryForModule.h>

Inheritance diagram for art::detail::MetadataSummaryFor< suffix_type::module >:
art::detail::MetadataSummary

Public Member Functions

 MetadataSummaryFor (LibraryInfoCollection const &coll)
 
- Public Member Functions inherited from art::detail::MetadataSummary
std::string header () const
 
Summary summary (LibraryInfo const &li, std::size_t const entry) const
 
std::vector< std::size_t > const & widths () const
 
virtual ~MetadataSummary ()=default
 

Private Member Functions

Widths const & doWidths () const override
 
std::string doHeader () const override
 
Summary doSummary (LibraryInfo const &li, std::size_t const entry) const override
 

Private Attributes

LibraryInfoCollection const & coll_
 
Widths widths_
 

Detailed Description

template<>
class art::detail::MetadataSummaryFor< suffix_type::module >

Definition at line 15 of file MetadataSummaryForModule.h.

Constructor & Destructor Documentation

Definition at line 17 of file MetadataSummaryForModule.h.

18  : coll_{coll}
19  , widths_{std::to_string(coll.size()).size(),
20  columnWidth(coll, &LibraryInfo::short_spec, "module_type"),
21  columnWidth(coll, &LibraryInfo::plugin_type, "Type"),
22  columnWidth(coll, &LibraryInfo::path, "Source location")}
23  {}
std::size_t columnWidth(T const &coll, std::string const Elem::*cp, std::string const &header)
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Definition: StdUtils.h:92
std::string const & short_spec() const
Definition: LibraryInfo.h:43
std::string const & path() const
Definition: LibraryInfo.h:53
std::string const & plugin_type() const
Definition: LibraryInfo.h:68
std::string to_string(ModuleType const mt)
Definition: ModuleType.h:34

Member Function Documentation

std::string art::detail::MetadataSummaryFor< suffix_type::module >::doHeader ( ) const
inlineoverrideprivatevirtual

Implements art::detail::MetadataSummary.

Definition at line 36 of file MetadataSummaryForModule.h.

37  {
38  std::ostringstream result;
39  result << indent(widths_[0] + 2) << std::setw(widths_[1] + 4) << std::left
40  << "module_type" << std::setw(widths_[2] + 4) << std::left
41  << "Type" << std::left << "Source location";
42  return result.str();
43  }
static QCString result
std::string indent(std::size_t const i)
Q_EXPORT QTSManip setw(int w)
Definition: qtextstream.h:331
Summary art::detail::MetadataSummaryFor< suffix_type::module >::doSummary ( LibraryInfo const &  li,
std::size_t const  entry 
) const
inlineoverrideprivatevirtual

Implements art::detail::MetadataSummary.

Definition at line 46 of file MetadataSummaryForModule.h.

47  {
48  auto const count = std::count_if(
49  coll_.cbegin(), coll_.cend(), LibraryInfoMatch{li.short_spec()});
50  bool const is_duplicate = count != 1;
51  auto const dupl = is_duplicate ? '*' : ' ';
52 
53  std::ostringstream result;
54  result << std::setw(widths_[0]) << std::right << entry << '.' << dupl
55  << std::setw(widths_[1] + 4) << std::left << li.short_spec()
56  << std::setw(widths_[2] + 4) << std::left << li.plugin_type()
57  << std::left << li.path() << "\n";
58  return {result.str(), is_duplicate};
59  }
QList< Entry > entry
static QCString result
Q_EXPORT QTSManip setw(int w)
Definition: qtextstream.h:331
Widths const& art::detail::MetadataSummaryFor< suffix_type::module >::doWidths ( ) const
inlineoverrideprivatevirtual

Member Data Documentation

Definition at line 26 of file MetadataSummaryForModule.h.

Definition at line 27 of file MetadataSummaryForModule.h.


The documentation for this class was generated from the following file: