在 protobuf 中,我可以将地图的键限制为某些值吗?
In protobuf can I constrain a map's key to certain values?
因此 protobuf 不允许字符串枚举作为映射中的键
我想将地图限制为只有键 a、b 或 c。
我在 Kotlin 工作,可以使用像 [(validate.rules).string = {pattern: "^a|b|c$"}]
这样的验证器
message payload {
map<desired_constrained_key_here, string> my_map = 1;
}
这能做到吗?
我该怎么做?
我在 protobuf 文档中没有看到这个。
不,那不可能;没有语法来表达这一点,也没有在任何实施中强制执行。
然而,以下是可能的并且效率更高,但需要不同的用法:
message payload {
string a = 1;
string b = 2;
string c = 3;
}
最终,这是表示 3 个可选键 a
、b
、c
和每个键的 string
值之间映射的另一种方式。
因此 protobuf 不允许字符串枚举作为映射中的键
我想将地图限制为只有键 a、b 或 c。
我在 Kotlin 工作,可以使用像 [(validate.rules).string = {pattern: "^a|b|c$"}]
message payload {
map<desired_constrained_key_here, string> my_map = 1;
}
这能做到吗? 我该怎么做? 我在 protobuf 文档中没有看到这个。
不,那不可能;没有语法来表达这一点,也没有在任何实施中强制执行。
然而,以下是可能的并且效率更高,但需要不同的用法:
message payload {
string a = 1;
string b = 2;
string c = 3;
}
最终,这是表示 3 个可选键 a
、b
、c
和每个键的 string
值之间映射的另一种方式。