winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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