我想使用scalaPB在scala中生成以下代数数据类型。
trait MyEventCmd
case class MyEvent(mytype: Int, cp: Option[Double], value: Option[String] = None, id: Option[String] = None) extends MyEventCmd
case object Flush extends MyEventCmd
我在protobuf myevent.proto
-
syntax = "proto3";
message MyEventCmd {
oneof sealed_value {
Flush lit = 1;
MyEvent event = 2;
}
}
message Flush {
}
message MyEvent {
int32 eType = 1;
double cp = 2;
string value = 3;
string id = 4;
}
我定义的问题是Flush
生成为case class
而不是case object
。
此外,我不知道如何将字段设置为默认值。
答案 0 :(得分:0)
即使没有字段,ScalaPB也会生成案例类。没有可用的选项来生成案例对象。
您可以通过设置no_default_values_in_constructor
来禁用文件(或包)中所有字段的默认值。请参阅:https://scalapb.github.io/customizations.html#file-level-options