繁体   English   中英

如何在proto3中将oneof用作类型?

[英]How to use oneof as a type in proto3?

给定一条看起来像这样的消息,

message Event {
    required int32 event_id = 1;

    oneof EventType {
        FooEvent foo_event = 2;
        BarEvent bar_event = 3;
        BazEvent baz_event = 4;
    }
}

我想定义另一个使用EventType oneof作为类型的地图。 确切地说,我想定义这样的内容

message Sample {
    map<string, Event.EventTypeCase> someMap = 1;
}

但是,这不起作用。 我得到的错误

PROTOC FAILED: "Event.EventTypeCase" is not defined.

我想定义另一个使用EventType oneof作为类型的地图。

它不是DSL中的类型,因此:您不能。 它是特定消息中字段的概念性分组。 据我所知, Event.EventTypeCase的存在是一个实现细节,甚至不是DSL规范中甚至没有提到的东西(尽管如果您定义自己的enum或同名messageprotoc可能会或可能不会检测到冲突)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM