Loading codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/smithy/protocols/parse/JsonParserGenerator.kt +4 −3 Original line number Diff line number Diff line Loading @@ -523,6 +523,7 @@ class JsonParserGenerator( "Shape" to returnSymbolToParse.symbol, ) { rust("let mut variant = None;") val checkValueSet = !shape.members().all { it.isTargetUnit() } && !codegenTarget.renderUnknownVariant() rustBlock("match tokens.next().transpose()?") { rustBlockTemplate( """ Loading Loading @@ -555,7 +556,7 @@ class JsonParserGenerator( } else { withBlock("Some(#T::$variantName(", "))", returnSymbolToParse.symbol) { deserializeMember(member) unwrapOrDefaultOrError(member) unwrapOrDefaultOrError(member, checkValueSet) } } } Loading Loading @@ -593,8 +594,8 @@ class JsonParserGenerator( rust("#T(tokens)?", nestedParser) } private fun RustWriter.unwrapOrDefaultOrError(member: MemberShape) { if (symbolProvider.toSymbol(member).canUseDefault()) { private fun RustWriter.unwrapOrDefaultOrError(member: MemberShape, checkValueSet: Boolean) { if (symbolProvider.toSymbol(member).canUseDefault() && !checkValueSet) { rust(".unwrap_or_default()") } else { rustTemplate( Loading codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/protocol/ServerProtocolTestGenerator.kt +0 −2 Original line number Diff line number Diff line Loading @@ -774,8 +774,6 @@ class ServerProtocolTestGenerator( FailingTest(RestJson, "RestJsonWithBodyExpectsApplicationJsonContentType", TestType.MalformedRequest), FailingTest(RestJson, "RestJsonMalformedUnionNoFieldsSet", TestType.MalformedRequest), // Tests involving constraint traits, which are not yet fully implemented. // See https://github.com/awslabs/smithy-rs/issues/1401. FailingTest(RestJsonValidation, "RestJsonMalformedRangeFloat_case0", TestType.MalformedRequest), Loading Loading
codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/smithy/protocols/parse/JsonParserGenerator.kt +4 −3 Original line number Diff line number Diff line Loading @@ -523,6 +523,7 @@ class JsonParserGenerator( "Shape" to returnSymbolToParse.symbol, ) { rust("let mut variant = None;") val checkValueSet = !shape.members().all { it.isTargetUnit() } && !codegenTarget.renderUnknownVariant() rustBlock("match tokens.next().transpose()?") { rustBlockTemplate( """ Loading Loading @@ -555,7 +556,7 @@ class JsonParserGenerator( } else { withBlock("Some(#T::$variantName(", "))", returnSymbolToParse.symbol) { deserializeMember(member) unwrapOrDefaultOrError(member) unwrapOrDefaultOrError(member, checkValueSet) } } } Loading Loading @@ -593,8 +594,8 @@ class JsonParserGenerator( rust("#T(tokens)?", nestedParser) } private fun RustWriter.unwrapOrDefaultOrError(member: MemberShape) { if (symbolProvider.toSymbol(member).canUseDefault()) { private fun RustWriter.unwrapOrDefaultOrError(member: MemberShape, checkValueSet: Boolean) { if (symbolProvider.toSymbol(member).canUseDefault() && !checkValueSet) { rust(".unwrap_or_default()") } else { rustTemplate( Loading
codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/protocol/ServerProtocolTestGenerator.kt +0 −2 Original line number Diff line number Diff line Loading @@ -774,8 +774,6 @@ class ServerProtocolTestGenerator( FailingTest(RestJson, "RestJsonWithBodyExpectsApplicationJsonContentType", TestType.MalformedRequest), FailingTest(RestJson, "RestJsonMalformedUnionNoFieldsSet", TestType.MalformedRequest), // Tests involving constraint traits, which are not yet fully implemented. // See https://github.com/awslabs/smithy-rs/issues/1401. FailingTest(RestJsonValidation, "RestJsonMalformedRangeFloat_case0", TestType.MalformedRequest), Loading