Skip to content

Commit e3ef873

Browse files
authored
Remove stringset and replace with stdlib (GoogleCloudPlatform#17322)
1 parent 24e92e5 commit e3ef873

13 files changed

Lines changed: 60 additions & 43 deletions

File tree

mmv1/third_party/terraform/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ module github.com/hashicorp/terraform-provider-google
33
go 1.26.0
44

55
require (
6-
bitbucket.org/creachadair/stringset v0.0.11
76
cloud.google.com/go/auth v0.20.0
87
cloud.google.com/go/auth/oauth2adapt v0.2.8
98
cloud.google.com/go/bigquery v1.74.0

mmv1/third_party/terraform/go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
bitbucket.org/creachadair/stringset v0.0.11 h1:6Sv4CCv14Wm+OipW4f3tWOb0SQVpBDLW0knnJqUnmZ8=
2-
bitbucket.org/creachadair/stringset v0.0.11/go.mod h1:wh0BHewFe+j0HrzWz7KcGbSNpFzWwnpmgPRlB57U5jU=
31
cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4=
42
cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
53
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=

mmv1/third_party/terraform/tpgdclresource/canonicalize.go

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,25 @@ import (
99
"strings"
1010
"time"
1111

12-
"bitbucket.org/creachadair/stringset"
1312
glog "github.com/golang/glog"
1413
)
1514

16-
var selfLinkIgnorableComponents = stringset.New("projects", "regions", "locations", "zones", "organizations", "compute", "v1", "v1beta1", "beta")
15+
var selfLinkIgnorableComponents = map[string]struct{}{
16+
"projects": {},
17+
"regions": {},
18+
"locations": {},
19+
"zones": {},
20+
"organizations": {},
21+
"compute": {},
22+
"v1": {},
23+
"v1beta1": {},
24+
"beta": {},
25+
}
26+
27+
func hasKey(m map[string]struct{}, k string) bool {
28+
_, ok := m[k]
29+
return ok
30+
}
1731

1832
// SelfLinkToSelfLink returns true if left and right are equivalent for selflinks.
1933
// That means that they are piecewise equal, comparing components, allowing for
@@ -54,9 +68,9 @@ func SelfLinkToSelfLink(l, r *string) bool {
5468
case lcomp[li] == rcomp[ri]:
5569
li++
5670
ri++
57-
case selfLinkIgnorableComponents.Contains(lcomp[li]):
71+
case hasKey(selfLinkIgnorableComponents, lcomp[li]):
5872
li++
59-
case selfLinkIgnorableComponents.Contains(rcomp[ri]):
73+
case hasKey(selfLinkIgnorableComponents, rcomp[ri]):
6074
ri++
6175
// The second-to-last element in a long-form self-link contains the
6276
// name of the resource. The name of the resource might be anything,
@@ -192,9 +206,9 @@ func PartialSelfLinkToSelfLink(l, r *string) bool {
192206
case lcomp[li] == rcomp[ri]:
193207
li--
194208
ri--
195-
case selfLinkIgnorableComponents.Contains(lcomp[li]):
209+
case hasKey(selfLinkIgnorableComponents, lcomp[li]):
196210
li--
197-
case selfLinkIgnorableComponents.Contains(rcomp[ri]):
211+
case hasKey(selfLinkIgnorableComponents, rcomp[ri]):
198212
ri--
199213
// As in SelfLinkToSelfLink, we permit any value in the second-to-last field
200214
// for the value which is longer.

mmv1/third_party/terraform/tpgdclresource/update.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import (
77
"strings"
88
"unicode"
99
"unicode/utf8"
10-
11-
"bitbucket.org/creachadair/stringset"
1210
)
1311

1412
// UpdateMask creates a Update Mask string according to https://google.aip.dev/161
@@ -18,13 +16,25 @@ func UpdateMask(ds []*FieldDiff) string {
1816
ss = append(ss, convertUpdateMaskVal(v.FieldName))
1917
}
2018

21-
dupesRemoved := stringset.New(ss...).Elements()
19+
dupesRemoved := removeDuplicates(ss)
2220

2321
// Sorting the entries is optional, but makes it easier to read + test.
2422
sort.Strings(dupesRemoved)
2523
return strings.Join(dupesRemoved, ",")
2624
}
2725

26+
func removeDuplicates(ss []string) []string {
27+
m := make(map[string]struct{})
28+
var out []string
29+
for _, s := range ss {
30+
if _, ok := m[s]; !ok {
31+
m[s] = struct{}{}
32+
out = append(out, s)
33+
}
34+
}
35+
return out
36+
}
37+
2838
func titleCaseToCamelCase(s string) string {
2939
r, n := utf8.DecodeRuneInString(s)
3040
p := string(unicode.ToLower(r))
@@ -71,7 +81,7 @@ func TopLevelUpdateMask(ds []*FieldDiff) string {
7181
ss = append(ss, convertUpdateMaskVal(part))
7282
}
7383

74-
dupesRemoved := stringset.New(ss...).Elements()
84+
dupesRemoved := removeDuplicates(ss)
7585

7686
// Sorting the entries is optional, but makes it easier to read + test.
7787
sort.Strings(dupesRemoved)
@@ -84,7 +94,7 @@ func SnakeCaseUpdateMask(ds []*FieldDiff) string {
8494
for _, v := range ds {
8595
ss = append(ss, TitleToSnakeCase(convertUpdateMaskVal(v.FieldName)))
8696
}
87-
dupesRemoved := stringset.New(ss...).Elements()
97+
dupesRemoved := removeDuplicates(ss)
8898

8999
// Sorting the entries is optional, but makes it easier to read + test.
90100
sort.Strings(dupesRemoved)

mmv1/third_party/tgc_next/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ require (
4040
)
4141

4242
require (
43-
bitbucket.org/creachadair/stringset v0.0.11 // indirect
4443
cel.dev/expr v0.25.1 // indirect
4544
cloud.google.com/go v0.123.0 // indirect
4645
cloud.google.com/go/compute/metadata v0.9.0 // indirect

tools/diff-processor/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ require (
2929
)
3030

3131
require (
32-
bitbucket.org/creachadair/stringset v0.0.8 // indirect
3332
cel.dev/expr v0.15.0 // indirect
3433
cloud.google.com/go v0.115.1 // indirect
3534
cloud.google.com/go/auth v0.9.0 // indirect

tpgtools/BUILD.bazel

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,6 @@ go_binary(
210210
"@com_github_kylelemons_godebug//pretty",
211211
"@com_github_nasa9084_go_openapi//:go-openapi",
212212
"@in_gopkg_yaml_v2//:yaml_v2",
213-
"@org_bitbucket_creachadair_stringset//:stringset",
214213
],
215214
)
216215

@@ -249,7 +248,6 @@ go_binary(
249248
"@com_github_kylelemons_godebug//pretty",
250249
"@com_github_nasa9084_go_openapi//:go-openapi",
251250
"@in_gopkg_yaml_v2//:yaml_v2",
252-
"@org_bitbucket_creachadair_stringset//:stringset",
253251
] + ["@com_github_googlecloudplatform_declarative_resource_client_library//services/google/" + s for s in SERVICES] +
254252
["@com_github_googlecloudplatform_declarative_resource_client_library//services/google/" + s + "/beta" for s in SERVICES],
255253
)
@@ -353,6 +351,5 @@ go_library(
353351
"@com_github_kylelemons_godebug//pretty",
354352
"@com_github_nasa9084_go_openapi//:go-openapi",
355353
"@in_gopkg_yaml_v2//:yaml_v2",
356-
"@org_bitbucket_creachadair_stringset//:stringset",
357354
],
358355
)

tpgtools/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ module github.com/GoogleCloudPlatform/magic-modules/tpgtools
33
go 1.26
44

55
require (
6-
bitbucket.org/creachadair/stringset v0.0.11
76
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.84.0
87
github.com/golang/glog v1.1.2
98
github.com/hashicorp/hcl v1.0.0
@@ -13,6 +12,7 @@ require (
1312
)
1413

1514
require (
15+
bitbucket.org/creachadair/stringset v0.0.8 // indirect
1616
cloud.google.com/go/compute v1.23.0 // indirect
1717
cloud.google.com/go/compute/metadata v0.2.3 // indirect
1818
github.com/cenkalti/backoff v2.2.1+incompatible // indirect

tpgtools/go.sum

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
bitbucket.org/creachadair/stringset v0.0.11 h1:6Sv4CCv14Wm+OipW4f3tWOb0SQVpBDLW0knnJqUnmZ8=
2-
bitbucket.org/creachadair/stringset v0.0.11/go.mod h1:wh0BHewFe+j0HrzWz7KcGbSNpFzWwnpmgPRlB57U5jU=
1+
bitbucket.org/creachadair/stringset v0.0.8 h1:gQqe4vs8XWgMyijfyKE6K8o4TcyGGrRXe0JvHgx5H+M=
2+
bitbucket.org/creachadair/stringset v0.0.8/go.mod h1:AgthVMyMxC/6FK1KBJ2ALdqkZObGN8hOetgpwXyMn34=
33
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
44
cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY=
55
cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM=
@@ -13,6 +13,7 @@ github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QH
1313
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
1414
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1515
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
16+
github.com/creachadair/staticfile v0.1.2/go.mod h1:a3qySzCIXEprDGxk6tSxSI+dBBdLzqeBOMhZ+o2d3pM=
1617
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
1718
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1819
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

tpgtools/id.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"sort"
2121
"strings"
2222

23-
"bitbucket.org/creachadair/stringset"
2423
"github.com/nasa9084/go-openapi"
2524
)
2625

@@ -81,9 +80,8 @@ func defaultImportFormats(id string, onlyLongFormFormat bool) (formats []string)
8180
if onlyLongFormFormat {
8281
return []string{id}
8382
}
84-
uniqueFormats := stringset.New()
85-
86-
uniqueFormats.Add(id)
83+
uniqueFormats := make(map[string]struct{})
84+
uniqueFormats[id] = struct{}{}
8785

8886
parts := idParts(id)
8987
for i, v := range parts {
@@ -101,7 +99,7 @@ func defaultImportFormats(id string, onlyLongFormFormat bool) (formats []string)
10199
}
102100
}
103101
if len(locationalParts) != 0 {
104-
uniqueFormats.Add(strings.Join(locationalParts, "/"))
102+
uniqueFormats[strings.Join(locationalParts, "/")] = struct{}{}
105103
}
106104

107105
// short form sans project, region, zone
@@ -112,10 +110,10 @@ func defaultImportFormats(id string, onlyLongFormFormat bool) (formats []string)
112110
}
113111
}
114112
if len(resourceParts) != 0 {
115-
uniqueFormats.Add(strings.Join(resourceParts, "/"))
113+
uniqueFormats[strings.Join(resourceParts, "/")] = struct{}{}
116114
}
117115

118-
for _, f := range uniqueFormats.Elements() {
116+
for f := range uniqueFormats {
119117
formats = append(formats, f)
120118
}
121119

0 commit comments

Comments
 (0)