Немного поздно, но я столкнулся с тем же;Вы можете сделать это так:
fd, _ := descriptor.ForMessage(&pb.Details{})
for _, e := range fd.EnumType {
if e.GetName() == "MyEnum" {
for _, v := range e.Value {
ext, err := proto.GetExtension(v.Options, pb.E_Meta)
if err == nil {
details := ext.(*pb.Details)
// do stuff with details
}
}
}
}
Возможно, есть более прямой способ получить дескриптор enum, хотя мне не удалось после небольшого спора.