mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
19 lines
361 B
Go
19 lines
361 B
Go
package protoutils
|
|
|
|
import "google.golang.org/protobuf/reflect/protoreflect"
|
|
|
|
type ProtoEnum interface {
|
|
~int32
|
|
Descriptor() protoreflect.EnumDescriptor
|
|
}
|
|
|
|
func EnumValues[T ProtoEnum]() []T {
|
|
var zero T
|
|
values := zero.Descriptor().Values()
|
|
enums := make([]T, values.Len())
|
|
for i := range enums {
|
|
enums[i] = T(values.Get(i).Number())
|
|
}
|
|
return enums
|
|
}
|