@@ -319,102 +319,32 @@ object CodecMakerConfig extends CodecMakerConfig(
319
319
class PrintCodec
320
320
321
321
private [macros] given FromExpr [CodecMakerConfig ] with {
322
- def extract [X : FromExpr ](name : String , x : Expr [X ])(using Quotes ): X = {
323
- import quotes .reflect ._
324
-
325
- summon[FromExpr [X ]].unapply(x).getOrElse(throw FromExprException (s " Can't parse $name: ${x.show}, tree: ${x.asTerm}" , x))
326
- }
327
-
328
322
def unapply (x : Expr [CodecMakerConfig ])(using Quotes ): Option [CodecMakerConfig ] = {
329
323
import quotes .reflect ._
330
324
331
325
x match
332
- case ' {
333
- CodecMakerConfig (
334
- $exprFieldNameMapper,
335
- $exprJavaEnumValueNameMapper,
336
- $exprAdtLeafClassNameMapper,
337
- $exprDiscriminatorFieldName,
338
- $exprIsStringified,
339
- $exprMapAsArray,
340
- $exprSkipUnexpectedFields,
341
- $exprTransientDefault,
342
- $exprTransientEmpty,
343
- $exprTransientNone,
344
- $exprRequireCollectionFields,
345
- $exprBigDecimalPrecision,
346
- $exprBigDecimalScaleLimit,
347
- $exprBigDecimalDigitsLimit,
348
- $exprBigIntDigitsLimit,
349
- $exprBitSetValueLimit,
350
- $exprMapMaxInsertNumber,
351
- $exprSetMaxInsertNumber,
352
- $exprAllowRecursiveTypes,
353
- $exprRequireDiscriminatorFirst,
354
- $exprUseScalaEnumValueId,
355
- $exprSkipNestedOptionValues,
356
- $exprCirceLikeObjectEncoding,
357
- $exprEncodingOnly,
358
- $exprDecodingOnly,
359
- $exprRequireDefaultFields,
360
- $exprCheckFieldDuplication,
361
- $exprScalaTransientSupport,
362
- $exprInlineOneValueClasses,
363
- $exprAlwaysEmitDiscriminator)
364
- } =>
365
- try {
366
- Some (CodecMakerConfig (
367
- extract(" fieldNameMapper" , exprFieldNameMapper),
368
- extract(" javaEnumValueNameMapper" , exprJavaEnumValueNameMapper),
369
- extract(" eadtLeafClassNameMapper" , exprAdtLeafClassNameMapper),
370
- extract(" discriminatorFieldName" , exprDiscriminatorFieldName),
371
- extract(" isStringified" , exprIsStringified),
372
- extract(" mapAsArray" , exprMapAsArray),
373
- extract(" skipUnexpectedFields" , exprSkipUnexpectedFields),
374
- extract(" transientDefault" , exprTransientDefault),
375
- extract(" transientEmpty" , exprTransientEmpty),
376
- extract(" transientNone" , exprTransientNone),
377
- extract(" requireCollectionFields" , exprRequireCollectionFields),
378
- extract(" bigDecimalPrecision" , exprBigDecimalPrecision),
379
- extract(" bigDecimalScaleLimit" , exprBigDecimalScaleLimit),
380
- extract(" bigDecimalDigitsLimit" , exprBigDecimalDigitsLimit),
381
- extract(" bigIntDigitsLimit" , exprBigIntDigitsLimit),
382
- extract(" bitSetValueLimit" , exprBitSetValueLimit),
383
- extract(" mapMaxInsertNumber" , exprMapMaxInsertNumber),
384
- extract(" setMaxInsertNumber" , exprSetMaxInsertNumber),
385
- extract(" allowRecursiveTypes" , exprAllowRecursiveTypes),
386
- extract(" requireDiscriminatorFirst" , exprRequireDiscriminatorFirst),
387
- extract(" useScalaEnumValueId" , exprUseScalaEnumValueId),
388
- extract(" skipNestedOptionValues" , exprSkipNestedOptionValues),
389
- extract(" circeLikeObjectEncoding" , exprCirceLikeObjectEncoding),
390
- extract(" decodingOnly" , exprDecodingOnly),
391
- extract(" encodingOnly" , exprEncodingOnly),
392
- extract(" requireDefaultFields" , exprRequireDefaultFields),
393
- extract(" checkFieldDuplication" , exprCheckFieldDuplication),
394
- extract(" scalaTransientSupport" , exprScalaTransientSupport),
395
- extract(" inlineOneValueClasses" , exprInlineOneValueClasses),
396
- extract(" alwaysEmitDiscriminator" , exprAlwaysEmitDiscriminator),
397
- ))
398
- } catch {
399
- case FromExprException (message, expr) =>
400
- report.warning(message, expr)
401
- None
402
- }
403
- case ' { ($x : CodecMakerConfig ).withAllowRecursiveTypes($v) } => Some (x.valueOrAbort.withAllowRecursiveTypes(v.valueOrAbort))
404
- case ' { ($x : CodecMakerConfig ).withDiscriminatorFieldName($v) } => Some (x.valueOrAbort.withDiscriminatorFieldName(v.valueOrAbort))
405
- case ' { ($x : CodecMakerConfig ).withUseScalaEnumValueId($v) } => Some (x.valueOrAbort.withUseScalaEnumValueId(v.valueOrAbort))
406
- case ' { ($x : CodecMakerConfig ).withIsStringified($v) } => Some (x.valueOrAbort.withIsStringified(v.valueOrAbort))
407
326
case ' { CodecMakerConfig } => Some (CodecMakerConfig )
327
+ case ' { ($x : CodecMakerConfig ).withDiscriminatorFieldName($v) } => Some (x.valueOrAbort.withDiscriminatorFieldName(v.valueOrAbort))
408
328
case ' { ($x : CodecMakerConfig ).withFieldNameMapper($v) } => Some (x.valueOrAbort.copy(fieldNameMapper = ExprPartialFunctionWrapper (v)))
409
329
case ' { ($x : CodecMakerConfig ).withJavaEnumValueNameMapper($v) } => Some (x.valueOrAbort.copy(javaEnumValueNameMapper = ExprPartialFunctionWrapper (v)))
410
330
case ' { ($x : CodecMakerConfig ).withAdtLeafClassNameMapper($v) } => Some (x.valueOrAbort.copy(adtLeafClassNameMapper = ExprPartialFunctionWrapper (' { { case x => $v(x) } })))
331
+ case ' { ($x : CodecMakerConfig ).withAllowRecursiveTypes($v) } => Some (x.valueOrAbort.withAllowRecursiveTypes(v.valueOrAbort))
411
332
case ' { ($x : CodecMakerConfig ).withRequireDiscriminatorFirst($v) } => Some (x.valueOrAbort.copy(requireDiscriminatorFirst = v.valueOrAbort))
412
- case ' { ($x : CodecMakerConfig ).withMapAsArray($v) } => Some (x.valueOrAbort.withMapAsArray(v.valueOrAbort))
333
+ case ' { ($x : CodecMakerConfig ).withCheckFieldDuplication($v) } => Some (x.valueOrAbort.withCheckFieldDuplication(v.valueOrAbort))
334
+ case ' { ($x : CodecMakerConfig ).withInlineOneValueClasses($v) } => Some (x.valueOrAbort.withInlineOneValueClasses(v.valueOrAbort))
335
+ case ' { ($x : CodecMakerConfig ).withUseScalaEnumValueId($v) } => Some (x.valueOrAbort.withUseScalaEnumValueId(v.valueOrAbort))
336
+ case ' { ($x : CodecMakerConfig ).withIsStringified($v) } => Some (x.valueOrAbort.withIsStringified(v.valueOrAbort))
337
+ case ' { ($x : CodecMakerConfig ).withDecodingOnly($v) } => Some (x.valueOrAbort.withDecodingOnly(v.valueOrAbort))
338
+ case ' { ($x : CodecMakerConfig ).withEncodingOnly($v) } => Some (x.valueOrAbort.withEncodingOnly(v.valueOrAbort))
413
339
case ' { ($x : CodecMakerConfig ).withSkipUnexpectedFields($v) } => Some (x.valueOrAbort.withSkipUnexpectedFields(v.valueOrAbort))
414
340
case ' { ($x : CodecMakerConfig ).withTransientDefault($v) } => Some (x.valueOrAbort.withTransientDefault(v.valueOrAbort))
415
341
case ' { ($x : CodecMakerConfig ).withTransientEmpty($v) } => Some (x.valueOrAbort.withTransientEmpty(v.valueOrAbort))
416
342
case ' { ($x : CodecMakerConfig ).withTransientNone($v) } => Some (x.valueOrAbort.withTransientNone(v.valueOrAbort))
417
343
case ' { ($x : CodecMakerConfig ).withRequireCollectionFields($v) } => Some (x.valueOrAbort.withRequireCollectionFields(v.valueOrAbort))
344
+ case ' { ($x : CodecMakerConfig ).withRequireDefaultFields($v) } => Some (x.valueOrAbort.withRequireDefaultFields(v.valueOrAbort))
345
+ case ' { ($x : CodecMakerConfig ).withScalaTransientSupport($v) } => Some (x.valueOrAbort.withScalaTransientSupport(v.valueOrAbort))
346
+ case ' { ($x : CodecMakerConfig ).withAlwaysEmitDiscriminator($v) } => Some (x.valueOrAbort.withAlwaysEmitDiscriminator(v.valueOrAbort))
347
+ case ' { ($x : CodecMakerConfig ).withMapAsArray($v) } => Some (x.valueOrAbort.withMapAsArray(v.valueOrAbort))
418
348
case ' { ($x : CodecMakerConfig ).withBigDecimalPrecision($v) } => Some (x.valueOrAbort.withBigDecimalPrecision(v.valueOrAbort))
419
349
case ' { ($x : CodecMakerConfig ).withBigDecimalScaleLimit($v) } => Some (x.valueOrAbort.withBigDecimalScaleLimit(v.valueOrAbort))
420
350
case ' { ($x : CodecMakerConfig ).withBigDecimalDigitsLimit($v) } => Some (x.valueOrAbort.withBigDecimalDigitsLimit(v.valueOrAbort))
@@ -424,13 +354,6 @@ object CodecMakerConfig extends CodecMakerConfig(
424
354
case ' { ($x : CodecMakerConfig ).withSetMaxInsertNumber($v) } => Some (x.valueOrAbort.withSetMaxInsertNumber(v.valueOrAbort))
425
355
case ' { ($x : CodecMakerConfig ).withSkipNestedOptionValues($v) } => Some (x.valueOrAbort.withSkipNestedOptionValues(v.valueOrAbort))
426
356
case ' { ($x : CodecMakerConfig ).withCirceLikeObjectEncoding($v) } => Some (x.valueOrAbort.withCirceLikeObjectEncoding(v.valueOrAbort))
427
- case ' { ($x : CodecMakerConfig ).withDecodingOnly($v) } => Some (x.valueOrAbort.withDecodingOnly(v.valueOrAbort))
428
- case ' { ($x : CodecMakerConfig ).withEncodingOnly($v) } => Some (x.valueOrAbort.withEncodingOnly(v.valueOrAbort))
429
- case ' { ($x : CodecMakerConfig ).withRequireDefaultFields($v) } => Some (x.valueOrAbort.withRequireDefaultFields(v.valueOrAbort))
430
- case ' { ($x : CodecMakerConfig ).withCheckFieldDuplication($v) } => Some (x.valueOrAbort.withCheckFieldDuplication(v.valueOrAbort))
431
- case ' { ($x : CodecMakerConfig ).withScalaTransientSupport($v) } => Some (x.valueOrAbort.withScalaTransientSupport(v.valueOrAbort))
432
- case ' { ($x : CodecMakerConfig ).withInlineOneValueClasses($v) } => Some (x.valueOrAbort.withInlineOneValueClasses(v.valueOrAbort))
433
- case ' { ($x : CodecMakerConfig ).withAlwaysEmitDiscriminator($v) } => Some (x.valueOrAbort.withAlwaysEmitDiscriminator(v.valueOrAbort))
434
357
case other =>
435
358
report.error(s " Can't interpret ${other.show} as a constant expression, tree= $other" )
436
359
None
0 commit comments