Unverified Commit aaed5058 authored by david-perez's avatar david-perez Committed by GitHub
Browse files

Make `builderSymbol` return a `Symbol` (#1312)

It currently returns a `RuntimeType`. It makes no actual difference
whatsoever, but `RuntimeType` is kept for types we don't code-generate,
but that we use from other crates.
parent 71e2a6d9
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -35,10 +35,16 @@ import software.amazon.smithy.rust.codegen.smithy.rustType
import software.amazon.smithy.rust.codegen.util.dq
import software.amazon.smithy.rust.codegen.util.toSnakeCase

fun StructureShape.builderSymbol(symbolProvider: RustSymbolProvider): RuntimeType {
    val symbol = symbolProvider.toSymbol(this)
    val builderNamespace = RustReservedWords.escapeIfNeeded(symbol.name.toSnakeCase())
    return RuntimeType("Builder", null, "${symbol.namespace}::$builderNamespace")
fun StructureShape.builderSymbol(symbolProvider: RustSymbolProvider): Symbol {
    val structureSymbol = symbolProvider.toSymbol(this)
    val builderNamespace = RustReservedWords.escapeIfNeeded(structureSymbol.name.toSnakeCase())
    val rustType = RustType.Opaque("Builder", "${structureSymbol.namespace}::$builderNamespace")
    return Symbol.builder()
        .rustType(rustType)
        .name(rustType.name)
        .namespace(rustType.namespace, "::")
        .definitionFile(structureSymbol.definitionFile)
        .build()
}

fun RuntimeConfig.operationBuildError() = RuntimeType.operationModule(this).member("BuildError")