#pragma once #include "StatusParagraph.h" #include namespace vcpkg { struct StatusParagraphs { StatusParagraphs(); explicit StatusParagraphs(std::vector>&& ps); using container = std::vector>; using iterator = container::reverse_iterator; using const_iterator = container::const_reverse_iterator; const_iterator find(const package_spec& spec) const { return find(spec.name(), spec.target_triplet()); } const_iterator find(const std::string& name, const triplet& target_triplet) const; iterator find(const std::string& name, const triplet& target_triplet); iterator find_installed(const std::string& name, const triplet& target_triplet); iterator insert(std::unique_ptr); friend std::ostream& operator<<(std::ostream&, const StatusParagraphs&); auto end() { return paragraphs.rend(); } auto end() const { return paragraphs.rend(); } auto begin() { return paragraphs.rbegin(); } auto begin() const { return paragraphs.rbegin(); } private: std::vector> paragraphs; }; std::ostream& operator<<(std::ostream&, const StatusParagraphs&); }