From 0f3e83b940145cfc9e8f15237b7a8412c35c0514 Mon Sep 17 00:00:00 2001 From: Akhtiam Sakaev Date: Tue, 28 Nov 2023 13:16:10 +0300 Subject: [PATCH 1/5] Use extension methods compatible with Scala 2.13 --- .../src/main/scala/ru/m2/calypso/syntax.scala | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala index 11f109a..a7e6ce4 100644 --- a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala +++ b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala @@ -7,27 +7,22 @@ import scala.jdk.CollectionConverters.* object syntax: - extension [A](a: A) - - def asBson(using Encoder[A]): BsonValue = - Encoder[A].apply(a) - - def asKey(using KeyEncoder[A]): String = - KeyEncoder[A].apply(a) - - extension (bson: BsonValue) + implicit class EncoderOps[A](a: A) extends AnyVal: + def asBson(using Encoder[A]): BsonValue = Encoder[A].apply(a) + def asKey(using KeyEncoder[A]): String = KeyEncoder[A].apply(a) + implicit class BsonOps(bson: BsonValue) extends AnyVal: def focus: Either[String, BsonDocument] = Either.catchNonFatal(bson.asDocument()).leftMap(_.getMessage) def as[A: Decoder]: Either[String, A] = Decoder[A].apply(bson) - extension (s: String) - def as[K: KeyDecoder]: Either[String, K] = - KeyDecoder[K].apply(s) + implicit class StringOps(s: String) extends AnyVal: + def as[K: KeyDecoder]: Either[String, K] = KeyDecoder[K].apply(s) + + implicit class BsonDocumentOps(bson: BsonDocument) extends AnyVal: - extension (bson: BsonDocument) /** BsonNull on non-existing keys allows to avoid Zipper/Cursor on decoding */ def downField(k: String): BsonValue = From c6ee540cb591b8c4f170158937f3d3d30e8031ad Mon Sep 17 00:00:00 2001 From: Akhtiam Sakaev Date: Tue, 28 Nov 2023 13:18:03 +0300 Subject: [PATCH 2/5] Cleanup --- modules/core/src/main/scala/ru/m2/calypso/syntax.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala index a7e6ce4..ad49bbf 100644 --- a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala +++ b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala @@ -11,7 +11,7 @@ object syntax: def asBson(using Encoder[A]): BsonValue = Encoder[A].apply(a) def asKey(using KeyEncoder[A]): String = KeyEncoder[A].apply(a) - implicit class BsonOps(bson: BsonValue) extends AnyVal: + implicit class BsonValueOps(bson: BsonValue) extends AnyVal: def focus: Either[String, BsonDocument] = Either.catchNonFatal(bson.asDocument()).leftMap(_.getMessage) From 63aef99c8c5f8e8e3be1b70a4fdd5ff075327abe Mon Sep 17 00:00:00 2001 From: Akhtiam Sakaev Date: Tue, 28 Nov 2023 13:29:50 +0300 Subject: [PATCH 3/5] Cleanup --- modules/core/src/main/scala/ru/m2/calypso/syntax.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala index ad49bbf..450a6a8 100644 --- a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala +++ b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala @@ -7,21 +7,21 @@ import scala.jdk.CollectionConverters.* object syntax: - implicit class EncoderOps[A](a: A) extends AnyVal: + implicit class EncoderOps[A](val a: A) extends AnyVal: def asBson(using Encoder[A]): BsonValue = Encoder[A].apply(a) def asKey(using KeyEncoder[A]): String = KeyEncoder[A].apply(a) - implicit class BsonValueOps(bson: BsonValue) extends AnyVal: + implicit class BsonValueOps(val bson: BsonValue) extends AnyVal: def focus: Either[String, BsonDocument] = Either.catchNonFatal(bson.asDocument()).leftMap(_.getMessage) def as[A: Decoder]: Either[String, A] = Decoder[A].apply(bson) - implicit class StringOps(s: String) extends AnyVal: + implicit class StringOps(val s: String) extends AnyVal: def as[K: KeyDecoder]: Either[String, K] = KeyDecoder[K].apply(s) - implicit class BsonDocumentOps(bson: BsonDocument) extends AnyVal: + implicit class BsonDocumentOps(val bson: BsonDocument) extends AnyVal: /** BsonNull on non-existing keys allows to avoid Zipper/Cursor on decoding */ From d528ff00c6c7528cc384900f079624f82344374a Mon Sep 17 00:00:00 2001 From: Akhtiam Sakaev Date: Tue, 28 Nov 2023 13:33:32 +0300 Subject: [PATCH 4/5] Revert "Cleanup" This reverts commit 63aef99c8c5f8e8e3be1b70a4fdd5ff075327abe. --- modules/core/src/main/scala/ru/m2/calypso/syntax.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala index 450a6a8..ad49bbf 100644 --- a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala +++ b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala @@ -7,21 +7,21 @@ import scala.jdk.CollectionConverters.* object syntax: - implicit class EncoderOps[A](val a: A) extends AnyVal: + implicit class EncoderOps[A](a: A) extends AnyVal: def asBson(using Encoder[A]): BsonValue = Encoder[A].apply(a) def asKey(using KeyEncoder[A]): String = KeyEncoder[A].apply(a) - implicit class BsonValueOps(val bson: BsonValue) extends AnyVal: + implicit class BsonValueOps(bson: BsonValue) extends AnyVal: def focus: Either[String, BsonDocument] = Either.catchNonFatal(bson.asDocument()).leftMap(_.getMessage) def as[A: Decoder]: Either[String, A] = Decoder[A].apply(bson) - implicit class StringOps(val s: String) extends AnyVal: + implicit class StringOps(s: String) extends AnyVal: def as[K: KeyDecoder]: Either[String, K] = KeyDecoder[K].apply(s) - implicit class BsonDocumentOps(val bson: BsonDocument) extends AnyVal: + implicit class BsonDocumentOps(bson: BsonDocument) extends AnyVal: /** BsonNull on non-existing keys allows to avoid Zipper/Cursor on decoding */ From 5a35f1425caabbe9340c7a4bc225b5ad70c32791 Mon Sep 17 00:00:00 2001 From: Akhtiam Sakaev Date: Tue, 28 Nov 2023 13:34:40 +0300 Subject: [PATCH 5/5] Revert "Revert "Cleanup"" This reverts commit d528ff00c6c7528cc384900f079624f82344374a. --- modules/core/src/main/scala/ru/m2/calypso/syntax.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala index ad49bbf..450a6a8 100644 --- a/modules/core/src/main/scala/ru/m2/calypso/syntax.scala +++ b/modules/core/src/main/scala/ru/m2/calypso/syntax.scala @@ -7,21 +7,21 @@ import scala.jdk.CollectionConverters.* object syntax: - implicit class EncoderOps[A](a: A) extends AnyVal: + implicit class EncoderOps[A](val a: A) extends AnyVal: def asBson(using Encoder[A]): BsonValue = Encoder[A].apply(a) def asKey(using KeyEncoder[A]): String = KeyEncoder[A].apply(a) - implicit class BsonValueOps(bson: BsonValue) extends AnyVal: + implicit class BsonValueOps(val bson: BsonValue) extends AnyVal: def focus: Either[String, BsonDocument] = Either.catchNonFatal(bson.asDocument()).leftMap(_.getMessage) def as[A: Decoder]: Either[String, A] = Decoder[A].apply(bson) - implicit class StringOps(s: String) extends AnyVal: + implicit class StringOps(val s: String) extends AnyVal: def as[K: KeyDecoder]: Either[String, K] = KeyDecoder[K].apply(s) - implicit class BsonDocumentOps(bson: BsonDocument) extends AnyVal: + implicit class BsonDocumentOps(val bson: BsonDocument) extends AnyVal: /** BsonNull on non-existing keys allows to avoid Zipper/Cursor on decoding */