@@ -319,102 +319,32 @@ object CodecMakerConfig extends CodecMakerConfig(
319319 class PrintCodec
320320
321321 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-
328322 def unapply (x : Expr [CodecMakerConfig ])(using Quotes ): Option [CodecMakerConfig ] = {
329323 import quotes .reflect ._
330324
331325 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))
407326 case ' { CodecMakerConfig } => Some (CodecMakerConfig )
327+ case ' { ($x : CodecMakerConfig ).withDiscriminatorFieldName($v) } => Some (x.valueOrAbort.withDiscriminatorFieldName(v.valueOrAbort))
408328 case ' { ($x : CodecMakerConfig ).withFieldNameMapper($v) } => Some (x.valueOrAbort.copy(fieldNameMapper = ExprPartialFunctionWrapper (v)))
409329 case ' { ($x : CodecMakerConfig ).withJavaEnumValueNameMapper($v) } => Some (x.valueOrAbort.copy(javaEnumValueNameMapper = ExprPartialFunctionWrapper (v)))
410330 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))
411332 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))
413339 case ' { ($x : CodecMakerConfig ).withSkipUnexpectedFields($v) } => Some (x.valueOrAbort.withSkipUnexpectedFields(v.valueOrAbort))
414340 case ' { ($x : CodecMakerConfig ).withTransientDefault($v) } => Some (x.valueOrAbort.withTransientDefault(v.valueOrAbort))
415341 case ' { ($x : CodecMakerConfig ).withTransientEmpty($v) } => Some (x.valueOrAbort.withTransientEmpty(v.valueOrAbort))
416342 case ' { ($x : CodecMakerConfig ).withTransientNone($v) } => Some (x.valueOrAbort.withTransientNone(v.valueOrAbort))
417343 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))
418348 case ' { ($x : CodecMakerConfig ).withBigDecimalPrecision($v) } => Some (x.valueOrAbort.withBigDecimalPrecision(v.valueOrAbort))
419349 case ' { ($x : CodecMakerConfig ).withBigDecimalScaleLimit($v) } => Some (x.valueOrAbort.withBigDecimalScaleLimit(v.valueOrAbort))
420350 case ' { ($x : CodecMakerConfig ).withBigDecimalDigitsLimit($v) } => Some (x.valueOrAbort.withBigDecimalDigitsLimit(v.valueOrAbort))
@@ -424,13 +354,6 @@ object CodecMakerConfig extends CodecMakerConfig(
424354 case ' { ($x : CodecMakerConfig ).withSetMaxInsertNumber($v) } => Some (x.valueOrAbort.withSetMaxInsertNumber(v.valueOrAbort))
425355 case ' { ($x : CodecMakerConfig ).withSkipNestedOptionValues($v) } => Some (x.valueOrAbort.withSkipNestedOptionValues(v.valueOrAbort))
426356 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))
434357 case other =>
435358 report.error(s " Can't interpret ${other.show} as a constant expression, tree= $other" )
436359 None
0 commit comments