Skip to content

Commit 0710a2e

Browse files
committed
Speedup BinaryCodec::streamDecoder implementations
1 parent 85da535 commit 0710a2e

File tree

6 files changed

+15
-25
lines changed

6 files changed

+15
-25
lines changed

build.sbt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import sbtcrossproject.CrossPlugin.autoImport._
2-
import BuildHelper.{ crossProjectSettings, _ }
3-
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
1+
import sbtcrossproject.CrossPlugin.autoImport.*
2+
import BuildHelper.{crossProjectSettings, *}
3+
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport.*
44
import com.typesafe.tools.mima.plugin.MimaKeys.mimaPreviousArtifacts
5+
import sbt.{Resolver, ThisBuild}
56

67
Global / onChangedBuildSource := ReloadOnSourceChanges
78

@@ -35,7 +36,9 @@ inThisBuild(
3536
licenses := Seq("Apache-2.0" -> url(s"${scmInfo.value.map(_.browseUrl).get}/blob/v${version.value}/LICENSE")),
3637
pgpPassphrase := sys.env.get("PGP_PASSWORD").map(_.toArray),
3738
pgpPublicRing := file("/tmp/public.asc"),
38-
pgpSecretRing := file("/tmp/secret.asc")
39+
pgpSecretRing := file("/tmp/secret.asc"),
40+
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
41+
resolvers ++= Resolver.sonatypeOssRepos("staging")
3942
)
4043
)
4144

project/BuildHelper.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ object BuildHelper {
3333
val Scala213: String = versions("2.13")
3434
val Scala3: String = versions("3.3")
3535

36-
val zioVersion = "2.1.15"
36+
val zioVersion = "2.1.17+28-a8d9c23d-SNAPSHOT"
3737
val zioJsonVersion = "0.7.25"
3838
val zioPreludeVersion = "1.0.0-RC39"
3939
val zioOpticsVersion = "0.2.2"

zio-schema-avro/src/main/scala/zio/schema/codec/AvroCodec.scala

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,8 @@ object AvroCodec {
6060
decodeValue(decoded, schema)
6161
}
6262

63-
override def streamDecoder: ZPipeline[Any, DecodeError, Byte, A] = ZPipeline.mapChunksZIO { chunk =>
64-
ZIO.fromEither(
65-
decode(chunk).map(Chunk(_))
66-
)
67-
}
63+
override def streamDecoder: ZPipeline[Any, DecodeError, Byte, A] =
64+
ZPipeline.mapChunksEither(bytes => decode(bytes).map(Chunk(_)))
6865

6966
override def encodeGenericRecord(value: A)(implicit schema: Schema[A]): GenericData.Record =
7067
encodeValue(value, schema).asInstanceOf[GenericData.Record]

zio-schema-msg-pack/src/main/scala/zio/schema/codec/MessagePackCodec.scala

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,9 @@ object MessagePackCodec {
2828
}
2929

3030
override def streamDecoder: ZPipeline[Any, DecodeError, Byte, A] =
31-
ZPipeline.mapChunksZIO { chunk =>
32-
ZIO.fromEither(
33-
decodeChunk(chunk).map(Chunk(_))
34-
)
35-
}
31+
ZPipeline.mapChunksEither(bytes => decodeChunk(bytes).map(Chunk.single))
3632

37-
private def decodeChunk(chunk: Chunk[Byte]) =
33+
private def decodeChunk(chunk: Chunk[Byte]): Either[DecodeError, A] =
3834
new MessagePackDecoder(chunk)
3935
.decode(schema)
4036
.left

zio-schema-protobuf/shared/src/main/scala/zio/schema/codec/ProtobufCodec.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,13 @@ object ProtobufCodec {
2525
new Decoder(whole).decode(schema)
2626

2727
override def streamDecoder: ZPipeline[Any, DecodeError, Byte, A] =
28-
ZPipeline.mapChunksZIO(chunk => ZIO.fromEither(new Decoder(chunk).decode(schema).map(Chunk(_))))
28+
ZPipeline.mapChunksEither(bytes => new Decoder(bytes).decode(schema).map(Chunk.single))
2929

3030
override def encode(value: A): Chunk[Byte] =
3131
Encoder.process(schema, value)
3232

3333
override def streamEncoder: ZPipeline[Any, Nothing, A, Byte] =
34-
ZPipeline.mapChunks(
35-
_.flatMap(encode)
36-
)
34+
ZPipeline.mapChunks(_.flatMap(encode))
3735
}
3836

3937
object Protobuf {

zio-schema-thrift/src/main/scala/zio/schema/codec/ThriftCodec.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,7 @@ object ThriftCodec {
2727
decodeChunk(whole)
2828

2929
override def streamDecoder: ZPipeline[Any, DecodeError, Byte, A] =
30-
ZPipeline.mapChunksZIO { chunk =>
31-
ZIO.fromEither(
32-
decodeChunk(chunk).map(Chunk(_))
33-
)
34-
}
30+
ZPipeline.mapChunksEither(bytes => decodeChunk(bytes).map(Chunk.single))
3531

3632
override def encode(value: A): Chunk[Byte] =
3733
new Encoder().encode(schema, value)

0 commit comments

Comments
 (0)