Unverified Commit 4aca7b32 authored by Zelda Hessler's avatar Zelda Hessler Committed by GitHub
Browse files

update: CargoDependency companion fn names for smithy runtime crates (#1996)

* update: CargoDependency companion fn names for smithy runtime crates
rename: CargoDependency.asType to CargoDependency.toType
fix: errors in InlineDependency doc comment
formatting: run import optimizer for all kotlin files
fix: gradle issue with incorrectly named tasks

* fix: server test broken by removal of rustName
parent d99a0dbb
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import software.amazon.smithy.rust.codegen.core.rustlang.CargoDependency
import software.amazon.smithy.rust.codegen.core.rustlang.RustModule
import software.amazon.smithy.rust.codegen.core.rustlang.RustWriter
import software.amazon.smithy.rust.codegen.core.rustlang.Writable
import software.amazon.smithy.rust.codegen.core.rustlang.asType
import software.amazon.smithy.rust.codegen.core.rustlang.rust
import software.amazon.smithy.rust.codegen.core.rustlang.rustBlockTemplate
import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate
@@ -95,18 +94,18 @@ class EndpointConfigCustomization(
) :
    ConfigCustomization() {
    private val runtimeConfig = codegenContext.runtimeConfig
    private val resolveAwsEndpoint = runtimeConfig.awsEndpoint().asType().copy(name = "ResolveAwsEndpoint")
    private val resolveAwsEndpoint = runtimeConfig.awsEndpoint().toType().copy(name = "ResolveAwsEndpoint")
    private val smithyEndpointResolver =
        CargoDependency.SmithyHttp(runtimeConfig).asType().member("endpoint::ResolveEndpoint")
    private val placeholderEndpointParams = runtimeConfig.awsEndpoint().asType().member("Params")
    private val endpointShim = runtimeConfig.awsEndpoint().asType().member("EndpointShim")
        CargoDependency.smithyHttp(runtimeConfig).toType().member("endpoint::ResolveEndpoint")
    private val placeholderEndpointParams = runtimeConfig.awsEndpoint().toType().member("Params")
    private val endpointShim = runtimeConfig.awsEndpoint().toType().member("EndpointShim")
    private val moduleUseName = codegenContext.moduleUseName()
    private val codegenScope = arrayOf(
        "SmithyResolver" to smithyEndpointResolver,
        "PlaceholderParams" to placeholderEndpointParams,
        "ResolveAwsEndpoint" to resolveAwsEndpoint,
        "EndpointShim" to endpointShim,
        "aws_types" to awsTypes(runtimeConfig).asType(),
        "aws_types" to awsTypes(runtimeConfig).toType(),
    )

    override fun section(section: ServiceConfig): Writable = writable {
@@ -184,7 +183,7 @@ class EndpointConfigCustomization(

class EndpointResolverFeature(private val runtimeConfig: RuntimeConfig, private val operationShape: OperationShape) :
    OperationCustomization() {
    private val placeholderEndpointParams = runtimeConfig.awsEndpoint().asType().member("Params")
    private val placeholderEndpointParams = runtimeConfig.awsEndpoint().toType().member("Params")
    private val codegenScope = arrayOf(
        "PlaceholderParams" to placeholderEndpointParams,
        "BuildError" to runtimeConfig.operationBuildError(),
@@ -215,7 +214,7 @@ class PubUseEndpoint(private val runtimeConfig: RuntimeConfig) : LibRsCustomizat
            is LibRsSection.Body -> writable {
                rust(
                    "pub use #T::endpoint::Endpoint;",
                    CargoDependency.SmithyHttp(runtimeConfig).asType(),
                    CargoDependency.smithyHttp(runtimeConfig).toType(),
                )
            }
            else -> emptySection
@@ -226,8 +225,8 @@ class PubUseEndpoint(private val runtimeConfig: RuntimeConfig) : LibRsCustomizat
class EndpointResolverGenerator(codegenContext: CodegenContext, private val endpointData: ObjectNode) {
    private val runtimeConfig = codegenContext.runtimeConfig
    private val endpointPrefix = codegenContext.serviceShape.expectTrait<ServiceTrait>().endpointPrefix
    private val awsEndpoint = runtimeConfig.awsEndpoint().asType()
    private val awsTypes = runtimeConfig.awsTypes().asType()
    private val awsEndpoint = runtimeConfig.awsEndpoint().toType()
    private val awsTypes = runtimeConfig.awsTypes().toType()
    private val codegenScope =
        arrayOf(
            "Partition" to awsEndpoint.member("Partition"),
+8 −9
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import software.amazon.smithy.rust.codegen.core.rustlang.GenericTypeArg
import software.amazon.smithy.rust.codegen.core.rustlang.RustGenerics
import software.amazon.smithy.rust.codegen.core.rustlang.RustWriter
import software.amazon.smithy.rust.codegen.core.rustlang.Writable
import software.amazon.smithy.rust.codegen.core.rustlang.asType
import software.amazon.smithy.rust.codegen.core.rustlang.rust
import software.amazon.smithy.rust.codegen.core.rustlang.rustBlockTemplate
import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate
@@ -39,13 +38,13 @@ import software.amazon.smithy.rust.codegen.core.util.expectTrait
import software.amazon.smithy.rustsdk.AwsRuntimeType.defaultMiddleware

private class Types(runtimeConfig: RuntimeConfig) {
    private val smithyTypesDep = CargoDependency.SmithyTypes(runtimeConfig)
    private val smithyClientDep = CargoDependency.SmithyClient(runtimeConfig)
    private val smithyHttpDep = CargoDependency.SmithyHttp(runtimeConfig)
    private val smithyTypesDep = CargoDependency.smithyTypes(runtimeConfig)
    private val smithyClientDep = CargoDependency.smithyClient(runtimeConfig)
    private val smithyHttpDep = CargoDependency.smithyHttp(runtimeConfig)

    val awsTypes = awsTypes(runtimeConfig).asType()
    val awsTypes = awsTypes(runtimeConfig).toType()
    val smithyClientRetry = RuntimeType("retry", smithyClientDep, "aws_smithy_client")
    val awsSmithyClient = smithyClientDep.asType()
    val awsSmithyClient = smithyClientDep.toType()

    val connectorSettings = RuntimeType("ConnectorSettings", smithyClientDep, "aws_smithy_client::http_connector")
    val defaultMiddleware = runtimeConfig.defaultMiddleware()
@@ -106,7 +105,7 @@ class AwsFluentClientDecorator : RustCodegenDecorator<ClientProtocolGenerator, C
                AwsPresignedFluentBuilderMethod(runtimeConfig),
                AwsFluentClientDocs(codegenContext),
            ),
            retryClassifier = runtimeConfig.awsHttp().asType().member("retry::AwsResponseRetryClassifier"),
            retryClassifier = runtimeConfig.awsHttp().toType().member("retry::AwsResponseRetryClassifier"),
        ).render(rustCrate)
        rustCrate.withNonRootModule(CustomizableOperationGenerator.CUSTOMIZE_MODULE) {
            renderCustomizableOperationSendMethod(runtimeConfig, generics, this)
@@ -214,7 +213,7 @@ private class AwsFluentClientDocs(private val codegenContext: CodegenContext) :
    private val serviceShape = codegenContext.serviceShape
    private val crateName = codegenContext.moduleUseName()
    private val codegenScope =
        arrayOf("aws_config" to codegenContext.runtimeConfig.awsConfig().copy(scope = DependencyScope.Dev).asType())
        arrayOf("aws_config" to codegenContext.runtimeConfig.awsConfig().copy(scope = DependencyScope.Dev).toType())

    // If no `aws-config` version is provided, assume that docs referencing `aws-config` cannot be given.
    // Also, STS and SSO must NOT reference `aws-config` since that would create a circular dependency.
@@ -279,7 +278,7 @@ private fun renderCustomizableOperationSendMethod(
    generics: FluentClientGenerics,
    writer: RustWriter,
) {
    val smithyHttp = CargoDependency.SmithyHttp(runtimeConfig).asType()
    val smithyHttp = CargoDependency.smithyHttp(runtimeConfig).toType()

    val operationGenerics = RustGenerics(GenericTypeArg("O"), GenericTypeArg("Retry"))
    val handleGenerics = generics.toRustGenerics()
+5 −6
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import software.amazon.smithy.rust.codegen.client.smithy.generators.protocol.Cli
import software.amazon.smithy.rust.codegen.core.rustlang.CargoDependency
import software.amazon.smithy.rust.codegen.core.rustlang.RustWriter
import software.amazon.smithy.rust.codegen.core.rustlang.Writable
import software.amazon.smithy.rust.codegen.core.rustlang.asType
import software.amazon.smithy.rust.codegen.core.rustlang.docs
import software.amazon.smithy.rust.codegen.core.rustlang.rust
import software.amazon.smithy.rust.codegen.core.rustlang.rustBlock
@@ -145,10 +144,10 @@ class AwsInputPresignedMethod(
        "PresignedRequest" to AwsRuntimeType.Presigning.member("request::PresignedRequest"),
        "PresignedRequestService" to AwsRuntimeType.Presigning.member("service::PresignedRequestService"),
        "PresigningConfig" to AwsRuntimeType.Presigning.member("config::PresigningConfig"),
        "SdkError" to CargoDependency.SmithyHttp(runtimeConfig).asType().member("result::SdkError"),
        "aws_sigv4" to runtimeConfig.awsRuntimeDependency("aws-sigv4").asType(),
        "sig_auth" to runtimeConfig.sigAuth().asType(),
        "tower" to CargoDependency.Tower.asType(),
        "SdkError" to CargoDependency.smithyHttp(runtimeConfig).toType().member("result::SdkError"),
        "aws_sigv4" to runtimeConfig.awsRuntimeDependency("aws-sigv4").toType(),
        "sig_auth" to runtimeConfig.sigAuth().toType(),
        "tower" to CargoDependency.Tower.toType(),
        "Middleware" to runtimeConfig.defaultMiddleware(),
    )

@@ -253,7 +252,7 @@ class AwsPresignedFluentBuilderMethod(
        "Error" to AwsRuntimeType.Presigning.member("config::Error"),
        "PresignedRequest" to AwsRuntimeType.Presigning.member("request::PresignedRequest"),
        "PresigningConfig" to AwsRuntimeType.Presigning.member("config::PresigningConfig"),
        "SdkError" to CargoDependency.SmithyHttp(runtimeConfig).asType().member("result::SdkError"),
        "SdkError" to CargoDependency.smithyHttp(runtimeConfig).toType().member("result::SdkError"),
    )

    override fun section(section: FluentClientSection): Writable =
+3 −3
Original line number Diff line number Diff line
@@ -50,9 +50,9 @@ object AwsRuntimeType {
    fun RuntimeConfig.defaultMiddleware() = RuntimeType.forInlineDependency(
        InlineAwsDependency.forRustFile(
            "middleware", visibility = Visibility.PUBLIC,
            CargoDependency.SmithyHttp(this),
            CargoDependency.SmithyHttpTower(this),
            CargoDependency.SmithyClient(this),
            CargoDependency.smithyHttp(this),
            CargoDependency.smithyHttpTower(this),
            CargoDependency.smithyClient(this),
            CargoDependency.Tower,
            sigAuth(),
            awsHttp(),
+2 −3
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@ import software.amazon.smithy.rust.codegen.client.smithy.generators.config.Confi
import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig
import software.amazon.smithy.rust.codegen.client.smithy.generators.protocol.ClientProtocolGenerator
import software.amazon.smithy.rust.codegen.core.rustlang.Writable
import software.amazon.smithy.rust.codegen.core.rustlang.asType
import software.amazon.smithy.rust.codegen.core.rustlang.rust
import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate
import software.amazon.smithy.rust.codegen.core.rustlang.writable
@@ -60,7 +59,7 @@ class CredentialsProviderDecorator : RustCodegenDecorator<ClientProtocolGenerato
class CredentialProviderConfig(runtimeConfig: RuntimeConfig) : ConfigCustomization() {
    private val defaultProvider = defaultProvider()
    private val codegenScope = arrayOf(
        "credentials" to awsTypes(runtimeConfig).asType().member("credentials"),
        "credentials" to awsTypes(runtimeConfig).toType().member("credentials"),
        "DefaultProvider" to defaultProvider,
    )

@@ -131,7 +130,7 @@ class PubUseCredentials(private val runtimeConfig: RuntimeConfig) : LibRsCustomi
            is LibRsSection.Body -> writable {
                rust(
                    "pub use #T::Credentials;",
                    awsTypes(runtimeConfig).asType(),
                    awsTypes(runtimeConfig).toType(),
                )
            }

Loading