【问题标题】:How can I reserve all values of an enum in proto3?如何在 proto3 中保留枚举的所有值?
【发布时间】:2019-10-24 23:11:02
【问题描述】:

我想弃用一个枚举类型的字段。没有客户端使用此字段或其枚举类型。我想保留这个枚举中的所有值,以便它不能被重用。

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 必须至少包含一个值。有没有办法像这样弃用整个枚举以确保它不被重用?

【问题讨论】:

    标签: proto3


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2011-01-17
      • 2016-05-02
      相关资源
      最近更新 更多