microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
22.54k stars 1.39k forks source link

Move SourceType to an Enum #4463

Open Trenly opened 1 month ago

Trenly commented 1 month ago

Description of the new feature / enhancement

Currently source types are all either std::string or std::string_view in the code. To me, it seems like this isn't a very good way of ensuring the source types are well managed

Proposed technical implementation details

Refactor the code to use a SourceType enum with a method for converting to SourceType from a string or string_view, and a method for converting SourceType to string view. This can then be used for stronger argument validation on the source add command