6 "github.com/hashicorp/terraform/addrs"
9 // AddressedTypes is a helper that extracts all of the distinct provider
10 // types from the given list of relative provider configuration addresses.
11 func AddressedTypes(providerAddrs []addrs.ProviderConfig) []string {
12 if len(providerAddrs) == 0 {
15 m := map[string]struct{}{}
16 for _, addr := range providerAddrs {
17 m[addr.Type] = struct{}{}
20 names := make([]string, 0, len(m))
21 for typeName := range m {
22 names = append(names, typeName)
25 sort.Strings(names) // Stable result for tests
29 // AddressedTypesAbs is a helper that extracts all of the distinct provider
30 // types from the given list of absolute provider configuration addresses.
31 func AddressedTypesAbs(providerAddrs []addrs.AbsProviderConfig) []string {
32 if len(providerAddrs) == 0 {
35 m := map[string]struct{}{}
36 for _, addr := range providerAddrs {
37 m[addr.ProviderConfig.Type] = struct{}{}
40 names := make([]string, 0, len(m))
41 for typeName := range m {
42 names = append(names, typeName)
45 sort.Strings(names) // Stable result for tests