ApplicabilityDetails.h (1093B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 4 #pragma once 5 6 #include "Result.h" 7 8 #include <memory> 9 #include <string> 10 #include <vector> 11 12 namespace SFS 13 { 14 enum class Architecture 15 { 16 None, 17 Amd64, 18 Arm, 19 Arm64, 20 x86, 21 }; 22 23 class ApplicabilityDetails 24 { 25 public: 26 [[nodiscard]] static Result Make(std::vector<Architecture> architectures, 27 std::vector<std::string> platformApplicabilityForPackage, 28 std::unique_ptr<ApplicabilityDetails>& out) noexcept; 29 30 ApplicabilityDetails(const ApplicabilityDetails&) = delete; 31 ApplicabilityDetails& operator=(const ApplicabilityDetails&) = delete; 32 33 const std::vector<Architecture>& GetArchitectures() const noexcept; 34 const std::vector<std::string>& GetPlatformApplicabilityForPackage() const noexcept; 35 36 private: 37 ApplicabilityDetails() = default; 38 39 std::vector<Architecture> m_architectures; 40 std::vector<std::string> m_platformApplicabilityForPackage; 41 }; 42 } // namespace SFS