[
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)