1616
1717#include " cuttlefish/host/libs/config/file_source.h"
1818
19- #include < cctype>
20- #include < string>
19+ #include < ostream>
20+ #include < string_view>
21+
22+ #include " absl/strings/match.h"
2123
2224namespace cuttlefish {
2325
24- FileSource SourceStringToEnum (std::string source) {
25- for (auto & c : source) {
26- c = std::tolower (c);
27- }
28- if (source == " default_build" ) {
26+ FileSource SourceStringToEnum (std::string_view source) {
27+ if (absl::EqualsIgnoreCase (source, " default_build" )) {
2928 return FileSource::DEFAULT_BUILD;
30- } else if (source == " system_build" ) {
29+ } else if (absl::EqualsIgnoreCase ( source, " system_build" ) ) {
3130 return FileSource::SYSTEM_BUILD;
32- } else if (source == " kernel_build" ) {
31+ } else if (absl::EqualsIgnoreCase ( source, " kernel_build" ) ) {
3332 return FileSource::KERNEL_BUILD;
34- } else if (source == " local_file" ) {
33+ } else if (absl::EqualsIgnoreCase ( source, " local_file" ) ) {
3534 return FileSource::LOCAL_FILE;
36- } else if (source == " generated" ) {
35+ } else if (absl::EqualsIgnoreCase ( source, " generated" ) ) {
3736 return FileSource::GENERATED;
38- } else if (source == " bootloader_build" ) {
37+ } else if (absl::EqualsIgnoreCase ( source, " bootloader_build" ) ) {
3938 return FileSource::BOOTLOADER_BUILD;
40- } else if (source == " android_efi_loader_build" ) {
39+ } else if (absl::EqualsIgnoreCase ( source, " android_efi_loader_build" ) ) {
4140 return FileSource::ANDROID_EFI_LOADER_BUILD;
42- } else if (source == " boot_build" ) {
41+ } else if (absl::EqualsIgnoreCase ( source, " boot_build" ) ) {
4342 return FileSource::BOOT_BUILD;
44- } else if (source == " host_package_build" ) {
43+ } else if (absl::EqualsIgnoreCase ( source, " host_package_build" ) ) {
4544 return FileSource::HOST_PACKAGE_BUILD;
46- } else if (source == " chrome_os_build" ) {
45+ } else if (absl::EqualsIgnoreCase ( source, " chrome_os_build" ) ) {
4746 return FileSource::CHROME_OS_BUILD;
4847 } else {
4948 return FileSource::UNKNOWN_PURPOSE;
5049 }
5150}
5251
53- std::string SourceEnumToString (const FileSource& source) {
52+ std::string_view SourceEnumToString (FileSource source) {
5453 if (source == FileSource::DEFAULT_BUILD) {
5554 return " default_build" ;
5655 } else if (source == FileSource::SYSTEM_BUILD) {
@@ -76,4 +75,8 @@ std::string SourceEnumToString(const FileSource& source) {
7675 }
7776}
7877
78+ std::ostream& operator <<(std::ostream& out, FileSource source) {
79+ return out << SourceEnumToString (source);
80+ }
81+
7982} // namespace cuttlefish
0 commit comments