Scala Protobuf:如何使用现有案例类

Scala Protobuf:如何使用现有案例类,scala,protocol-buffers,protobuf-java,Scala,Protocol Buffers,Protobuf Java,项目中已经使用了一些案例类。 这些类也用于slick映射。这些类扩展了一些额外的特性 我不想从*.protodescription生成所有这些类 是否有机会在protobuf中扩展它们? 或者我应该用包装纸包装它们。这些包装将在*.proto中描述并从中生成。用于proto定义 message PBPerson { int64 id = 1; string name = 2; google.protobuf.StringValue phone = 3; repeated stri

项目中已经使用了一些案例类。 这些类也用于slick映射。这些类扩展了一些额外的特性

我不想从
*.proto
description生成所有这些类

是否有机会在
protobuf
中扩展它们? 或者我应该用包装纸包装它们。这些包装将在
*.proto
中描述并从中生成。

用于proto定义

message PBPerson {
  int64 id = 1;
  string name = 2;
  google.protobuf.StringValue phone = 3;
  repeated string hobbies = 4;
}
case class Person(
  id: Long,
  name: String,
  phone: Option[String],
  hobbies: Seq[String])
和scala case类定义

message PBPerson {
  int64 id = 1;
  string name = 2;
  google.protobuf.StringValue phone = 3;
  repeated string hobbies = 4;
}
case class Person(
  id: Long,
  name: String,
  phone: Option[String],
  hobbies: Seq[String])
你可以用


此外,这个库使用scala宏来确保它是一个类型安全的转换。

我明白了-你试过了吗?我个人不喜欢混合层,所以我会为Slick和Protobuf保留单独的case类。并使用(免责声明:我帮助创建了此库)将一个转换为另一个。我认为从case类继承非case类仍然不是,但这并不是一个好主意。