gpt4 book ai didi

go - 如何访问 proto.EnumValueOptions 扩展值

转载 作者:IT王子 更新时间:2023-10-29 02:08:05 25 4
gpt4 key购买 nike

我有类似下面的设置,如何使用“github.com/golang/protobuf/proto”从 XYZ 枚举访问我的扩展值?

  extend google.protobuf.EnumValueOptions {
Details meta = 50001;
}

message Details {
string description = 1;
}

enum MyEnum {
MY_ENUM_UNSPECIFIED = 0;
XYZ = 1 [deprecated=true, (meta) = {description: "lorem ipsum"}];
}

我知道 proto.GetExtension(proto.Message, proto.ExtensionDesc),但是我无法弄清楚它如何用于枚举...

最佳答案

有点晚了,但我也遇到了同样的情况;你可以这样做:

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
}
}
}
}

可能有一种更直接的方法来获取枚举描述符,尽管经过一番争论后我还没有成功。

关于go - 如何访问 proto.EnumValueOptions 扩展值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53889888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com