Skip to content

Commit 6aa8b0a

Browse files
update
1 parent c771f99 commit 6aa8b0a

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/rustlang/RustType.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,9 @@ class Attribute(val inner: Writable) {
467467
public fun SerdeDeserialize(): Attribute {
468468
return Attribute(cfgAttr(all(writable("aws_sdk_unstable"), feature("serde-deserialize")), derive(RuntimeType.SerdeDeserialize)))
469469
}
470+
public fun SerdeSkip(): Attribute {
471+
return Attribute(serde("skip"))
472+
}
470473

471474
companion object {
472475
val AllowClippyBoxedLocal = Attribute(allow("clippy::boxed_local"))
@@ -530,6 +533,7 @@ class Attribute(val inner: Writable) {
530533
fun allow(lints: Collection<String>): Writable = macroWithArgs("allow", *lints.toTypedArray())
531534
fun allow(vararg lints: String): Writable = macroWithArgs("allow", *lints)
532535
fun deny(vararg lints: String): Writable = macroWithArgs("deny", *lints)
536+
fun serde(vararg lints: String): Writable = macroWithArgs("serde", *lints)
533537
fun any(vararg attrMacros: Writable): Writable = macroWithArgs("any", *attrMacros)
534538
fun cfg(vararg attrMacros: Writable): Writable = macroWithArgs("cfg", *attrMacros)
535539
fun cfg(vararg attrMacros: String): Writable = macroWithArgs("cfg", *attrMacros)

codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/smithy/generators/BuilderGenerator.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ class BuilderGenerator(
225225
// All fields in the builder are optional.
226226
val memberSymbol = symbolProvider.toSymbol(member).makeOptional()
227227
SensitiveWarning.addDoc(writer, member)
228+
RenderSerdeAttribute.skipIfStream(writer, member, model)
228229
renderBuilderMember(this, memberName, memberSymbol)
229230
}
230231
writeCustomizations(customizations, BuilderSection.AdditionalFields(shape))

codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/smithy/generators/RenderSerdeAttribute.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
package software.amazon.smithy.rust.codegen.core.smithy.generators
77

88
import software.amazon.smithy.model.Model
9+
import software.amazon.smithy.model.shapes.MemberShape
910
import software.amazon.smithy.model.shapes.StructureShape
1011
import software.amazon.smithy.rust.codegen.core.rustlang.Attribute
1112
import software.amazon.smithy.rust.codegen.core.rustlang.RustWriter
1213
import software.amazon.smithy.rust.codegen.core.util.isEventStream
14+
import software.amazon.smithy.rust.codegen.core.util.isStreaming
1315

1416
// Part of RFC30
1517
public object RenderSerdeAttribute {
@@ -19,6 +21,15 @@ public object RenderSerdeAttribute {
1921
}
2022
}
2123

24+
public fun skipIfStream(writer: RustWriter, member: MemberShape, model: Model) {
25+
if (member.isEventStream(model)) {
26+
return;
27+
}
28+
if (member.isStreaming(model)) {
29+
Attribute("").SerdeSkip().render(writer)
30+
}
31+
}
32+
2233
public fun writeAttributes(writer: RustWriter) {
2334
Attribute("").SerdeSerialize().render(writer)
2435
Attribute("").SerdeDeserialize().render(writer)

codegen-core/src/main/kotlin/software/amazon/smithy/rust/codegen/core/smithy/generators/StructureGenerator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ open class StructureGenerator(
154154

155155
open fun renderStructureMember(writer: RustWriter, member: MemberShape, memberName: String, memberSymbol: Symbol) {
156156
writer.renderMemberDoc(member, memberSymbol)
157-
SensitiveWarning.addDoc(writer, shape)
158157
writer.deprecatedShape(member)
159158
memberSymbol.expectRustMetadata().render(writer)
160159
writer.write("$memberName: #T,", memberSymbol)
@@ -172,6 +171,7 @@ open class StructureGenerator(
172171
writer.rustBlock("struct $name ${lifetimeDeclaration()}") {
173172
writer.forEachMember(members) { member, memberName, memberSymbol ->
174173
SensitiveWarning.addDoc(writer, shape)
174+
RenderSerdeAttribute.skipIfStream(writer, member, model)
175175
renderStructureMember(writer, member, memberName, memberSymbol)
176176
}
177177
writeCustomizations(customizations, StructureSection.AdditionalFields(shape))

0 commit comments

Comments
 (0)