Skip to content

Commit 7416069

Browse files
author
Bartłomiej Wiśniewski
committed
review
1 parent 6a72146 commit 7416069

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

commons-core/src/main/scala/com/avsystem/commons/serialization/cbor/CborAdtMetadata.scala

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.avsystem.commons.meta._
66
import com.avsystem.commons.misc.ValueOf
77
import com.avsystem.commons.serialization.GenCodec.OOOFieldsObjectCodec
88
import com.avsystem.commons.serialization._
9-
import monix.execution.atomic.AtomicBoolean
109

1110
/**
1211
* Like [[HasGenCodec]] but generates a codec optimized for writing and reading CBOR via [[CborOutput]] and
@@ -268,11 +267,7 @@ trait CborAdtPolyInstances[C[_]] {
268267
* Like [[HasCborCodec]] but for parameterized (generic) data types.
269268
*/
270269
abstract class HasPolyCborCodec[C[_]](implicit instances: MacroInstances[CborOptimizedCodecs, CborAdtPolyInstances[C]]) {
271-
private val alreadyValidated = AtomicBoolean(false)
270+
private lazy val validatedInstances = instances(CborOptimizedCodecs, this).setup(_.metadata[Nothing].validate())
272271

273-
implicit def codec[T: GenCodec]: GenObjectCodec[C[T]] = {
274-
val codec = instances(CborOptimizedCodecs, this).cborCodec(!alreadyValidated.get())
275-
if (!alreadyValidated.get()) alreadyValidated.set(true)
276-
codec
277-
}
272+
implicit def codec[T: GenCodec]: GenObjectCodec[C[T]] = validatedInstances.cborCodec(false)
278273
}

0 commit comments

Comments
 (0)