override fun render()

in smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/integration/httpResponse/HttpResponseBindingErrorInitGenerator.kt [46:88]


    override fun render() {
        val responseBindings = httpBindingResolver.responseBindings(shape)
        val headerBindings = responseBindings
            .filter { it.location == HttpBinding.Location.HEADER }
            .sortedBy { it.memberName }
        val rootNamespace = ctx.settings.moduleName
        val errorShapeName = ctx.symbolProvider.toSymbol(shape).name

        val httpBindingSymbol = Symbol.builder()
            .definitionFile("./$rootNamespace/models/$errorShapeName+Init.swift")
            .name(errorShapeName)
            .build()

        ctx.delegator.useShapeWriter(httpBindingSymbol) { writer ->
            writer.addImport(SwiftDependency.CLIENT_RUNTIME.target)
            writer.openBlock("extension \$L {", "}", errorShapeName) {
                writer.declareSection(HttpResponseBindingErrorInit) {
                    writer.write(
                        "public init (httpResponse: \$N, decoder: \$D, message: \$D, requestID: \$D) throws {",
                        ClientRuntimeTypes.Http.HttpResponse,
                        ClientRuntimeTypes.Serde.ResponseDecoder,
                        SwiftTypes.String,
                        SwiftTypes.String
                    )
                }

                writer.indent()
                HttpResponseHeaders(ctx, headerBindings, defaultTimestampFormat, writer).render()
                HttpResponsePrefixHeaders(ctx, responseBindings, writer).render()
                httpResponseTraitPayload(ctx, responseBindings, errorShapeName, writer)
                HttpResponseTraitQueryParams(ctx, responseBindings, writer).render()
                HttpResponseTraitResponseCode(ctx, responseBindings, writer).render()
                writer.write("self._headers = httpResponse.headers")
                writer.write("self._statusCode = httpResponse.statusCode")
                writer.write("self._requestID = requestID")
                writer.write("self._message = message")
                writer.declareSection(HttpResponseBindingErrorInitMemberAssignment)
                writer.dedent()
                writer.write("}")
            }
            writer.write("")
        }
    }