| 690 | } |
| 691 | |
| 692 | void EmitExtensionConfigs(const Config& env_config, YAML::Emitter& out) { |
| 693 | if (env_config.GetExtensionConfigs().empty()) { |
| 694 | return; |
| 695 | } |
| 696 | |
| 697 | // Sort the extensions to make the output deterministic. |
| 698 | std::vector<Config::ExtensionConfig> sorted_extensions = |
| 699 | env_config.GetExtensionConfigs(); |
| 700 | absl::c_sort(sorted_extensions, [](const Config::ExtensionConfig& a, |
| 701 | const Config::ExtensionConfig& b) { |
| 702 | return a.name < b.name; |
| 703 | }); |
| 704 | out << YAML::Key << "extensions"; |
| 705 | out << YAML::Value << YAML::BeginSeq; |
| 706 | for (const Config::ExtensionConfig& extension_config : sorted_extensions) { |
| 707 | out << YAML::BeginMap; |
| 708 | out << YAML::Key << "name"; |
| 709 | out << YAML::Value << YAML::DoubleQuoted << extension_config.name; |
| 710 | if (extension_config.version != Config::ExtensionConfig::kLatest) { |
| 711 | out << YAML::Key << "version"; |
| 712 | out << YAML::Value << extension_config.version; |
| 713 | } |
| 714 | out << YAML::EndMap; |
| 715 | } |
| 716 | out << YAML::EndSeq; |
| 717 | } |
| 718 | |
| 719 | void EmitMacroList(YAML::Emitter& out, absl::string_view key, |
| 720 | const absl::flat_hash_set<std::string>& macros) { |
no test coverage detected