Skip to content

Commit 1131a4a

Browse files
committed
Fix compilation error for CodecMakerConfig.withFieldNameMapper(JsonCodecMaker.enforce_snake_case2) using Scala 3
1 parent 9154715 commit 1131a4a

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

jsoniter-scala-macros/shared/src/main/scala-3/com/github/plokhotnyuk/jsoniter_scala/macros/NameMapper.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ private[macros] object CompileTimeEval {
310310
case "enforceCamelCase" => JsonCodecMaker.enforceCamelCase
311311
case "EnforcePascalCase" => JsonCodecMaker.EnforcePascalCase
312312
case "enforce_snake_case" => JsonCodecMaker.enforce_snake_case
313+
case "enforce_snake_case2" => JsonCodecMaker.enforce_snake_case2
313314
case "enforce-kebab-case" => JsonCodecMaker.`enforce-kebab-case`
314315
case _ => throw CompileTimeEvalException(s"Unknonwn JsonCodeMaker parial function field: $fieldName", t.asExpr)
315316
}

jsoniter-scala-macros/shared/src/test/scala/com/github/plokhotnyuk/jsoniter_scala/macros/JsonCodecMakerSpec.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,6 +1915,21 @@ class JsonCodecMakerSpec extends VerifyingSpec {
19151915
"""{"CamelCase":1,"PascalCase":2,"SnakeCase":3,"KebabCase":4,"Camel1":5,"Pascal1":6,"Snake1":7,"Kebab1":8}""",
19161916
"""missing required field "camel_case", offset: 0x00000066""")
19171917
}
1918+
"serialize and deserialize with keys enforced to snake_case2 and throw parse exception when they are missing" in {
1919+
val codec_of_enforced_snake_case2 =
1920+
make[CamelPascalSnakeKebabCases](CodecMakerConfig.withFieldNameMapper(JsonCodecMaker.enforce_snake_case2))
1921+
verifySerDeser(codec_of_enforced_snake_case2, CamelPascalSnakeKebabCases(1, 2, 3, 4, 5, 6, 7, 8),
1922+
"""{"camel_case":1,"pascal_case":2,"snake_case":3,"kebab_case":4,"camel1":5,"pascal1":6,"snake1":7,"kebab1":8}""")
1923+
verifyDeserError(codec_of_enforced_snake_case2,
1924+
"""{"camelCase":1,"pascalCase":2,"snakeCase":3,"kebabCase":4,"camel1":5,"pascal1":6,"snake1":7,"kebab1":8}""",
1925+
"""missing required field "camel_case", offset: 0x00000066""")
1926+
verifyDeserError(codec_of_enforced_snake_case2,
1927+
"""{"camel-case":1,"pascal-case":2,"snake-case":3,"kebab-case":4,"camel-1":5,"pascal-1":6,"snake-1":7,"kebab-1":8}""",
1928+
"""missing required field "camel_case", offset: 0x0000006e""")
1929+
verifyDeserError(codec_of_enforced_snake_case2,
1930+
"""{"CamelCase":1,"PascalCase":2,"SnakeCase":3,"KebabCase":4,"Camel1":5,"Pascal1":6,"Snake1":7,"Kebab1":8}""",
1931+
"""missing required field "camel_case", offset: 0x00000066""")
1932+
}
19181933
"serialize and deserialize with keys enforced to kebab-case and throw parse exception when they are missing" in {
19191934
val `codec-of-enforced-kebab-case` =
19201935
make[CamelPascalSnakeKebabCases](CodecMakerConfig.withFieldNameMapper(JsonCodecMaker.`enforce-kebab-case`))

0 commit comments

Comments
 (0)