From 5d58eb29cc9ae584335e3380c2645baf05b21222 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Mon, 3 Oct 2016 17:45:01 -0700 Subject: [package_spec] Force using the factories that do sanity checks --- toolsrc/include/package_spec.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'toolsrc/include') diff --git a/toolsrc/include/package_spec.h b/toolsrc/include/package_spec.h index 942b34adc..7410145ca 100644 --- a/toolsrc/include/package_spec.h +++ b/toolsrc/include/package_spec.h @@ -8,12 +8,19 @@ namespace vcpkg { struct package_spec { - static expected from_string(const std::string& spec, const triplet& default_target_triplet); + static expected from_string(const std::string& spec_as_string, const triplet& default_target_triplet); - std::string name; - triplet target_triplet; + static package_spec from_name_and_triplet(const std::string& name, const triplet& target_triplet); + + const std::string& name() const; + + const triplet& target_triplet() const; std::string dir() const; + + private: + std::string m_name; + triplet m_target_triplet; }; std::string to_string(const package_spec& spec); @@ -33,8 +40,8 @@ namespace std size_t operator()(const vcpkg::package_spec& value) const { size_t hash = 17; - hash = hash * 31 + std::hash()(value.name); - hash = hash * 31 + std::hash()(value.target_triplet); + hash = hash * 31 + std::hash()(value.name()); + hash = hash * 31 + std::hash()(value.target_triplet()); return hash; } }; -- cgit v1.2.3