Я хочу сгенерировать ниже алгебраические типы данных в scala с использованием scalaPB.
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
.
Кроме того, я не знаю, как сделать поле необязательным и со значением по умолчанию.