¿Cómo serializar / deserializar un mensaje protobuf que usa 'oneof' con ScalaPB?

Estoy usando ScalaPB para compilar mis clases de casos Scala para serializar mis mensajes de protobuf.

tengo un.proto archivo con los siguientes mensajes:

message WrapperMessage {
    oneof msg {
        Login login = 1;
        Register register = 2;
    }
}

message Login {
    required string email = 1;
    required string password = 2;
}

message Register {
    required string email = 1;
    required string password = 2;
    optional string firstName = 3;
    optional string lastName = 4;
}

¿Cómo creo miWrapperMessage sabiendo que quiero poner unLogin mensaje dentro delmsg?

  val login = Login(email = "[email protected]", password = "testpass")
  val wrapperMessage = WrapperMessage(???)
  val wrapperMessageBytes = wrapperMessage.toByteArray

Digamos ahora que estoy recibiendo unWrapperMessage sobre el cable; ¿Cómo deserializo el mensaje usando los métodos de clase de caso ScalaPB?

Respuestas a la pregunta(2)

Su respuesta a la pregunta