[
https://issues.apache.org/jira/browse/THRIFT-5859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17938713#comment-17938713
]
Yuxuan Wang commented on THRIFT-5859:
-------------------------------------
The concern with cloning (for either a map or a slice) is that it's O(N). so
_every_ time this `FooValues()` function is called there's O(N) cost on it.
I understand the concern that the global variable can be changed by any code in
the process, but in go that's a well known issue so most developers know not to
change things they don't own. I don't think we should go out of our way (by
cloning) to guard against that.
> 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)