[ https://issues.apache.org/jira/browse/THRIFT-5859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17938709#comment-17938709 ]
Yuxuan Wang commented on THRIFT-5859: ------------------------------------- I think a map is better for the use case of checking whether a value is defined (for a slice, you have to do an O(N) lookup, or a one-time O(N) operation to build a map for the lookups). If you want to make it a function (instead of just a global variable), do you want to return a clone (via https://pkg.go.dev/maps#Clone) so that the changes to the returned map are protected against altering the original map? > go: Generate a map for know values of an enum type > -------------------------------------------------- > > Key: THRIFT-5859 > URL: https://issues.apache.org/jira/browse/THRIFT-5859 > Project: Thrift > Issue Type: Task > Components: Go - Compiler > Affects Versions: 0.21.0 > Reporter: Yuxuan Wang > Assignee: Yuxuan Wang > Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > When an enum type is defined in thrift, in generated go code, there's no way > to enumerate all the known values of the enum type. In most other languages > there's usually a way (via reflecting, access to some private fields, etc.) > to get those. > I propose to also generate a map like: > {code:go} > var FooKnownValues = map[Foo]bool { > ONE: true, > TWO: true, > } > {code} > So it can be used to enumerate all defined values programmatically. > Open to suggestions on the name of the map value :) -- This message was sent by Atlassian Jira (v8.20.10#820010)