如何在proto3中保留枚举的所有值?

时间:2019-10-24 23:11:02

标签: proto3

我有一个我想弃用的枚举类型的字段。没有客户端使用此字段或其枚举类型。我想保留此枚举中的所有值,以使其无法重用。

message Example {
    ...
    enum Foo {
        BAR = 0;
        BAZ = 1;
    }
    Foo foo = 42;
}

我的第一个想法是尝试保留来自0 to max的值,如下所示:

message Example {
    ...
    enum Foo {
        reserved "BAR", "BAZ";
        reserved 0 to max;
    }
    reserved "foo";
    reserved 42;
}

但是,我收到一条错误消息,指出Foo必须包含至少一个值。有什么方法可以弃用整个枚举,以确保它不会被重用?

1 个答案:

答案 0 :(得分:0)

尽管您不能保留整个枚举(据我所知,因为需要一个零值),但是您可以 保留其中的任何内容以及每次使用它。 / p>

message Example {
    ...
    enum Foo {
        reserved "BAR", "BAZ";
        reserved 1 to max;
        RESERVED = 0;
    }
    reserved "foo";
    reserved 42;
}