diff options
| author | Daniel Shaw <t-dansha@microsoft.com> | 2017-06-05 15:58:47 -0700 |
|---|---|---|
| committer | Daniel Shaw <t-dansha@microsoft.com> | 2017-06-06 14:02:59 -0700 |
| commit | 264cd050e6280e5b87ec055e0a9d8985a7ba30b3 (patch) | |
| tree | f508fa927970257011747643f893b182691dac1e /toolsrc/include/SourceParagraph.h | |
| parent | 7b4d83c444b0e7fee241ed293614efca17c67201 (diff) | |
| download | vcpkg-264cd050e6280e5b87ec055e0a9d8985a7ba30b3.tar.gz vcpkg-264cd050e6280e5b87ec055e0a9d8985a7ba30b3.zip | |
ExpectedT factory class
Diffstat (limited to 'toolsrc/include/SourceParagraph.h')
| -rw-r--r-- | toolsrc/include/SourceParagraph.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/toolsrc/include/SourceParagraph.h b/toolsrc/include/SourceParagraph.h index 19f558170..9874eb3a9 100644 --- a/toolsrc/include/SourceParagraph.h +++ b/toolsrc/include/SourceParagraph.h @@ -1,5 +1,6 @@ #pragma once +#include "vcpkg_expected.h" #include <unordered_map> #include <vector> @@ -15,14 +16,23 @@ namespace vcpkg const std::string& to_string(const Dependency& dep); + struct ParseControlErrorInfo + { + std::string name; + std::string remaining_fields_as_string; + std::string valid_fields_as_string; + std::error_code error; + }; + /// <summary> /// Port metadata (CONTROL file) /// </summary> struct SourceParagraph { - SourceParagraph(); + static ExpectedT<SourceParagraph, ParseControlErrorInfo> parse_control_file( + std::unordered_map<std::string, std::string> fields); - explicit SourceParagraph(std::unordered_map<std::string, std::string> fields); + SourceParagraph(); std::string name; std::string version; @@ -31,6 +41,9 @@ namespace vcpkg std::vector<Dependency> depends; }; + void print_error_message(const ParseControlErrorInfo& info); + void print_error_message(std::vector<ParseControlErrorInfo> error_info_list); + std::vector<std::string> filter_dependencies(const std::vector<Dependency>& deps, const Triplet& t); std::vector<Dependency> expand_qualified_dependencies(const std::vector<std::string>& depends); |
