--
You received this message because you are subscribed to the Google Groups "ScalaPB" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scalapb+u...@googlegroups.com.
To post to this group, send email to sca...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scalapb/39215fac-778e-4fee-ac65-86fdb8183e08%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
syntax = "proto3";
option java_package = "com.example";
import "google/protobuf/wrappers.proto";
import "scalapb/scalapb.proto";
option (scalapb.options) = {
import: "com.example.Converters._"
};
enum Error {
NoError = 0;
SomeEnumError = 999999;
}
message EnumsHolder {
enum SomeEnum {
SomeValue = 0;
reserved 999999; // error mapping
}
message SomeEnumWrapper {
SomeEnum value = 1;
}
}
message OptionalEnumUsage {
int32 id = 1;
EnumsHolder.SomeEnumWrapper enum1 = 2 [(scalapb.field).type="EnumsHolder.SomeEnum"];
google.protobuf.Int32Value enum2 = 3 [(scalapb.field).type="EnumsHolder.SomeEnum"];
google.protobuf.StringValue enum3 = 4 [(scalapb.field).type="EnumsHolder.SomeEnum"];
}
package com.example
import com.google.protobuf.wrappers.{Int32Value, StringValue}
import scalapb.TypeMapper
object Converters {
implicit val Int32Value2NezasaTouroperatorMapper: TypeMapper[Int32Value, EnumsHolder.SomeEnum] =
TypeMapper[Int32Value, EnumsHolder.SomeEnum](i => EnumsHolder.SomeEnum.fromValue(i.value))(e => Int32Value(e.value))
implicit val StringValue2NezasaTouroperatorMapper: TypeMapper[StringValue, EnumsHolder.SomeEnum] =
TypeMapper[StringValue, EnumsHolder.SomeEnum](i => EnumsHolder.SomeEnum.fromName(i.value).getOrElse(EnumsHolder.SomeEnum.Unrecognized(Error.SomeEnumError.value)))(e => StringValue(e.name))
implicit val SomeEnumWrapper2SomeEnumMapper: TypeMapper[EnumsHolder.SomeEnumWrapper, EnumsHolder.SomeEnum] =
TypeMapper[EnumsHolder.SomeEnumWrapper, EnumsHolder.SomeEnum](_.value)(EnumsHolder.SomeEnumWrapper().withValue)
}