From 0caafa60b73e49eb383cba03079c67f881b09b4d Mon Sep 17 00:00:00 2001 From: "dmitry.shakhtarin" Date: Wed, 4 Jul 2018 17:25:47 +0300 Subject: [PATCH 1/2] add protobuf codecs, change version --- build.sbt | 2 +- project/plugins.sbt | 4 +++- .../scala/fluence/codec/pb/ProtobufCodecs.scala | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 931c2e9..c293537 100644 --- a/build.sbt +++ b/build.sbt @@ -14,7 +14,7 @@ val scalaV = scalaVersion := "2.12.5" val commons = Seq( scalaV, - version := "0.0.3", + version := "0.0.4", fork in Test := true, parallelExecution in Test := false, organization := "one.fluence", diff --git a/project/plugins.sbt b/project/plugins.sbt index 4759522..5fd7d55 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -18,4 +18,6 @@ addSbtPlugin("com.lihaoyi" % "workbench" % "0.4.0") libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.7.1" -addSbtPlugin("org.foundweekends" % "sbt-bintray" % "0.5.4") \ No newline at end of file +addSbtPlugin("org.foundweekends" % "sbt-bintray" % "0.5.4") + +addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.0.0-M11") diff --git a/protobuf/src/main/scala/fluence/codec/pb/ProtobufCodecs.scala b/protobuf/src/main/scala/fluence/codec/pb/ProtobufCodecs.scala index 865c9e3..319f5b6 100644 --- a/protobuf/src/main/scala/fluence/codec/pb/ProtobufCodecs.scala +++ b/protobuf/src/main/scala/fluence/codec/pb/ProtobufCodecs.scala @@ -19,6 +19,7 @@ package fluence.codec.pb import com.google.protobuf.ByteString import fluence.codec.PureCodec +import scalapb.{GeneratedMessage, GeneratedMessageCompanion, Message} import scala.language.higherKinds @@ -30,4 +31,19 @@ object ProtobufCodecs { arr ⇒ ByteString.copyFrom(arr) ) + /** + * Codec for converting byte array to protobuf class. + * + * @param gen Protobuf class's companion. + * @return New codec for converting byte array to a specific protobuf class. + */ + def protobufDynamicCodec[A <: GeneratedMessage with Message[A]]( + gen: GeneratedMessageCompanion[A] + ): PureCodec.Func[Array[Byte], A] = PureCodec.liftFunc[Array[Byte], A](gen.parseFrom) + + /** + * Codec for converting protobuf class to a byte array. + */ + val generatedMessageCodec: PureCodec.Func[GeneratedMessage, Array[Byte]] = + PureCodec.liftFunc[GeneratedMessage, Array[Byte]](_.toByteArray) } From ba56af66bd2b4f1e10254e45f4a6da9b4883a8c3 Mon Sep 17 00:00:00 2001 From: "dmitry.shakhtarin" Date: Wed, 4 Jul 2018 17:28:05 +0300 Subject: [PATCH 2/2] revert --- project/plugins.sbt | 2 -- 1 file changed, 2 deletions(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 5fd7d55..7d5c6bf 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -19,5 +19,3 @@ addSbtPlugin("com.lihaoyi" % "workbench" % "0.4.0") libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.7.1" addSbtPlugin("org.foundweekends" % "sbt-bintray" % "0.5.4") - -addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "1.0.0-M11")