@@ -457,22 +457,24 @@ object BsonSchemaCodec {
457
457
// scalafmt: { maxColumn = 400, optIn.configStyleArguments = false }
458
458
private [codec] def schemaEncoder [A ](schema : Schema [A ]): BsonEncoder [A ] =
459
459
schema match {
460
- case Schema .Primitive (standardType, _) => primitiveCodec(standardType).encoder
461
- case Schema .Sequence (schema, _, g, _, _) => chunkEncoder(schemaEncoder(schema)).contramap(g)
462
- case Schema .Map (ks, vs, _) => mapEncoder(ks, vs)
463
- case Schema .Set (s, _) => chunkEncoder(schemaEncoder(s)).contramap(m => Chunk .fromIterable(m))
464
- case Schema .Transform (c, _, g, _, _) => transformEncoder(c, g)
465
- case Schema .Tuple2 (l, r, _) => tuple2Encoder(schemaEncoder(l), schemaEncoder(r))
466
- case Schema .Optional (schema, _) => BsonEncoder .option(schemaEncoder(schema))
467
- case Schema .Fail (_, _) => unitEncoder.contramap(_ => ())
468
- case Schema .GenericRecord (_, structure, _) => genericRecordEncoder(structure.toChunk)
469
- case Schema .Either (left, right, _) => eitherEncoder(schemaEncoder(left), schemaEncoder(right))
470
- case Schema .Fallback (left, right, _, _) => fallbackEncoder(schemaEncoder(left), schemaEncoder(right))
471
- case l @ Schema .Lazy (_) => schemaEncoder(l.schema)
472
- case r : Schema .Record [A ] => caseClassEncoder(r)
473
- case e : Schema .Enum [A ] => enumEncoder(e, e.cases)
474
- case d @ Schema .Dynamic (_) => dynamicEncoder(d)
475
- case null => throw new Exception (s " A captured schema is null, most likely due to wrong field initialization order " )
460
+ case Schema .Primitive (standardType, _) => primitiveCodec(standardType).encoder
461
+ case Schema .Sequence (schema, _, g, _, _) => chunkEncoder(schemaEncoder(schema)).contramap(g)
462
+ case Schema .NonEmptySequence (schema, _, g, _, _) => chunkEncoder(schemaEncoder(schema)).contramap(g)
463
+ case Schema .Map (ks, vs, _) => mapEncoder(ks, vs)
464
+ case Schema .NonEmptyMap (ks, vs, _) => mapEncoder(ks, vs).contramap(_.toMap)
465
+ case Schema .Set (s, _) => chunkEncoder(schemaEncoder(s)).contramap(m => Chunk .fromIterable(m))
466
+ case Schema .Transform (c, _, g, _, _) => transformEncoder(c, g)
467
+ case Schema .Tuple2 (l, r, _) => tuple2Encoder(schemaEncoder(l), schemaEncoder(r))
468
+ case Schema .Optional (schema, _) => BsonEncoder .option(schemaEncoder(schema))
469
+ case Schema .Fail (_, _) => unitEncoder.contramap(_ => ())
470
+ case Schema .GenericRecord (_, structure, _) => genericRecordEncoder(structure.toChunk)
471
+ case Schema .Either (left, right, _) => eitherEncoder(schemaEncoder(left), schemaEncoder(right))
472
+ case Schema .Fallback (left, right, _, _) => fallbackEncoder(schemaEncoder(left), schemaEncoder(right))
473
+ case l @ Schema .Lazy (_) => schemaEncoder(l.schema)
474
+ case r : Schema .Record [A ] => caseClassEncoder(r)
475
+ case e : Schema .Enum [A ] => enumEncoder(e, e.cases)
476
+ case d @ Schema .Dynamic (_) => dynamicEncoder(d)
477
+ case null => throw new Exception (s " A captured schema is null, most likely due to wrong field initialization order " )
476
478
}
477
479
// scalafmt: { maxColumn = 120, optIn.configStyleArguments = true }
478
480
@@ -773,22 +775,24 @@ object BsonSchemaCodec {
773
775
774
776
// scalafmt: { maxColumn = 400, optIn.configStyleArguments = false }
775
777
private [codec] def schemaDecoder [A ](schema : Schema [A ]): BsonDecoder [A ] = schema match {
776
- case Schema .Primitive (standardType, _) => primitiveCodec(standardType).decoder
777
- case Schema .Optional (codec, _) => BsonDecoder .option(schemaDecoder(codec))
778
- case Schema .Tuple2 (left, right, _) => tuple2Decoder(schemaDecoder(left), schemaDecoder(right))
779
- case Schema .Transform (codec, f, _, _, _) => schemaDecoder(codec).mapOrFail(f)
780
- case Schema .Sequence (codec, f, _, _, _) => chunkDecoder(schemaDecoder(codec)).map(f)
781
- case Schema .Map (ks, vs, _) => mapDecoder(ks, vs)
782
- case Schema .Set (s, _) => chunkDecoder(schemaDecoder(s)).map(entries => entries.toSet)
783
- case Schema .Fail (message, _) => failDecoder(message)
784
- case Schema .GenericRecord (_, structure, _) => recordDecoder(structure.toChunk)
785
- case Schema .Either (left, right, _) => eitherDecoder(schemaDecoder(left), schemaDecoder(right))
786
- case Schema .Fallback (left, right, _, _) => fallbackDecoder(schemaDecoder(left), schemaDecoder(right))
787
- case l @ Schema .Lazy (_) => schemaDecoder(l.schema)
788
- case s : Schema .Record [A ] => caseClassDecoder(s)
789
- case e : Schema .Enum [A ] => enumDecoder(e)
790
- case d @ Schema .Dynamic (_) => dynamicDecoder(d)
791
- case null => throw new Exception (s " Missing a handler for decoding of schema $schema. " )
778
+ case Schema .Primitive (standardType, _) => primitiveCodec(standardType).decoder
779
+ case Schema .Optional (codec, _) => BsonDecoder .option(schemaDecoder(codec))
780
+ case Schema .Tuple2 (left, right, _) => tuple2Decoder(schemaDecoder(left), schemaDecoder(right))
781
+ case Schema .Transform (codec, f, _, _, _) => schemaDecoder(codec).mapOrFail(f)
782
+ case Schema .Sequence (codec, f, _, _, _) => chunkDecoder(schemaDecoder(codec)).map(f)
783
+ case s @ Schema .NonEmptySequence (codec, _, _, _, _) => chunkDecoder(schemaDecoder(codec)).map(s.fromChunk)
784
+ case Schema .Map (ks, vs, _) => mapDecoder(ks, vs)
785
+ case s @ Schema .NonEmptyMap (ks, vs, _) => mapDecoder(ks, vs).map(s.fromMap)
786
+ case Schema .Set (s, _) => chunkDecoder(schemaDecoder(s)).map(entries => entries.toSet)
787
+ case Schema .Fail (message, _) => failDecoder(message)
788
+ case Schema .GenericRecord (_, structure, _) => recordDecoder(structure.toChunk)
789
+ case Schema .Either (left, right, _) => eitherDecoder(schemaDecoder(left), schemaDecoder(right))
790
+ case Schema .Fallback (left, right, _, _) => fallbackDecoder(schemaDecoder(left), schemaDecoder(right))
791
+ case l @ Schema .Lazy (_) => schemaDecoder(l.schema)
792
+ case s : Schema .Record [A ] => caseClassDecoder(s)
793
+ case e : Schema .Enum [A ] => enumDecoder(e)
794
+ case d @ Schema .Dynamic (_) => dynamicDecoder(d)
795
+ case _ => throw new Exception (s " Missing a handler for decoding of schema $schema. " )
792
796
}
793
797
// scalafmt: { maxColumn = 120, optIn.configStyleArguments = true }
794
798
0 commit comments