Loading aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/AwsFluentClientDecorator.kt +4 −3 Original line number Diff line number Diff line Loading @@ -9,8 +9,9 @@ import software.amazon.smithy.codegen.core.Symbol import software.amazon.smithy.model.shapes.ShapeId import software.amazon.smithy.model.traits.TitleTrait import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.ClientRustModule import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.generators.client.CustomizableOperationGenerator import software.amazon.smithy.rust.codegen.client.smithy.featureGatedCustomizeModule import software.amazon.smithy.rust.codegen.client.smithy.generators.client.FluentClientCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.client.FluentClientGenerator import software.amazon.smithy.rust.codegen.client.smithy.generators.client.FluentClientGenerics Loading Loading @@ -102,10 +103,10 @@ class AwsFluentClientDecorator : ClientCodegenDecorator { ), retryClassifier = AwsRuntimeType.awsHttp(runtimeConfig).resolve("retry::AwsResponseRetryClassifier"), ).render(rustCrate) rustCrate.withModule(CustomizableOperationGenerator.CustomizeModule) { rustCrate.withModule(codegenContext.featureGatedCustomizeModule()) { renderCustomizableOperationSendMethod(runtimeConfig, generics, this) } rustCrate.withModule(FluentClientGenerator.clientModule) { rustCrate.withModule(ClientRustModule.client) { AwsFluentClientExtensions(types).render(this) } val awsSmithyClient = "aws-smithy-client" Loading aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/BaseRequestIdDecorator.kt +2 −2 Original line number Diff line number Diff line Loading @@ -7,10 +7,10 @@ package software.amazon.smithy.rustsdk import software.amazon.smithy.model.shapes.OperationShape import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.ClientRustModule import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.generators.error.ErrorCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.error.ErrorSection import software.amazon.smithy.rust.codegen.core.rustlang.RustModule import software.amazon.smithy.rust.codegen.core.rustlang.Writable import software.amazon.smithy.rust.codegen.core.rustlang.rust import software.amazon.smithy.rust.codegen.core.rustlang.rustBlock Loading Loading @@ -66,7 +66,7 @@ abstract class BaseRequestIdDecorator : ClientCodegenDecorator { ): List<BuilderCustomization> = baseCustomizations + listOf(RequestIdBuilderCustomization()) override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { rustCrate.withModule(RustModule.Types) { rustCrate.withModule(ClientRustModule.Types) { // Re-export RequestId in generated crate rust("pub use #T;", accessorTrait(codegenContext)) } Loading aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/CredentialProviders.kt +8 −25 Original line number Diff line number Diff line Loading @@ -8,9 +8,9 @@ package software.amazon.smithy.rustsdk import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.customize.TestUtilFeature import software.amazon.smithy.rust.codegen.client.smithy.featureGatedConfigModule import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ConfigCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig import software.amazon.smithy.rust.codegen.core.rustlang.Writable 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 Loading @@ -19,8 +19,6 @@ import software.amazon.smithy.rust.codegen.core.smithy.RuntimeType import software.amazon.smithy.rust.codegen.core.smithy.RustCrate import software.amazon.smithy.rust.codegen.core.smithy.customize.AdHocCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.adhocCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection class CredentialsProviderDecorator : ClientCodegenDecorator { override val name: String = "CredentialsProvider" Loading @@ -33,13 +31,6 @@ class CredentialsProviderDecorator : ClientCodegenDecorator { return baseCustomizations + CredentialProviderConfig(codegenContext.runtimeConfig) } override fun libRsCustomizations( codegenContext: ClientCodegenContext, baseCustomizations: List<LibRsCustomization>, ): List<LibRsCustomization> { return baseCustomizations + PubUseCredentials(codegenContext.runtimeConfig) } override fun extraSections(codegenContext: ClientCodegenContext): List<AdHocCustomization> = listOf( adhocCustomization<SdkConfigSection.CopySdkConfigToClientConfig> { section -> Loading @@ -49,6 +40,13 @@ class CredentialsProviderDecorator : ClientCodegenDecorator { override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { rustCrate.mergeFeature(TestUtilFeature.copy(deps = listOf("aws-credential-types/test-util"))) rustCrate.withModule(codegenContext.featureGatedConfigModule()) { rust( "pub use #T::Credentials;", AwsRuntimeType.awsCredentialTypes(codegenContext.runtimeConfig), ) } } } Loading Loading @@ -95,20 +93,5 @@ class CredentialProviderConfig(runtimeConfig: RuntimeConfig) : ConfigCustomizati } } class PubUseCredentials(private val runtimeConfig: RuntimeConfig) : LibRsCustomization() { override fun section(section: LibRsSection): Writable { return when (section) { is LibRsSection.Body -> writable { rust( "pub use #T::Credentials;", AwsRuntimeType.awsCredentialTypes(runtimeConfig), ) } else -> emptySection } } } fun defaultProvider() = RuntimeType.forInlineDependency(InlineAwsDependency.forRustFile("no_credentials")).resolve("NoCredentials") aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/RegionDecorator.kt +10 −24 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import software.amazon.smithy.rulesengine.language.syntax.parameters.Parameter import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.endpoint.EndpointCustomization import software.amazon.smithy.rust.codegen.client.smithy.featureGatedConfigModule import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ConfigCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig import software.amazon.smithy.rust.codegen.core.rustlang.Writable Loading @@ -20,12 +21,11 @@ import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate import software.amazon.smithy.rust.codegen.core.rustlang.writable import software.amazon.smithy.rust.codegen.core.smithy.CodegenContext import software.amazon.smithy.rust.codegen.core.smithy.RuntimeConfig import software.amazon.smithy.rust.codegen.core.smithy.RustCrate import software.amazon.smithy.rust.codegen.core.smithy.customize.AdHocCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.OperationCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.OperationSection import software.amazon.smithy.rust.codegen.core.smithy.customize.adhocCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection import software.amazon.smithy.rust.codegen.core.util.dq import software.amazon.smithy.rust.codegen.core.util.extendIf import software.amazon.smithy.rust.codegen.core.util.thenSingletonListOf Loading Loading @@ -101,13 +101,6 @@ class RegionDecorator : ClientCodegenDecorator { return baseCustomizations.extendIf(usesRegion(codegenContext)) { RegionConfigPlugin() } } override fun libRsCustomizations( codegenContext: ClientCodegenContext, baseCustomizations: List<LibRsCustomization>, ): List<LibRsCustomization> { return baseCustomizations.extendIf(usesRegion(codegenContext)) { PubUseRegion(codegenContext.runtimeConfig) } } override fun extraSections(codegenContext: ClientCodegenContext): List<AdHocCustomization> { return usesRegion(codegenContext).thenSingletonListOf { adhocCustomization<SdkConfigSection.CopySdkConfigToClientConfig> { section -> Loading @@ -121,6 +114,14 @@ class RegionDecorator : ClientCodegenDecorator { } } override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { if (usesRegion(codegenContext)) { rustCrate.withModule(codegenContext.featureGatedConfigModule()) { rust("pub use #T::Region;", region(codegenContext.runtimeConfig)) } } } override fun endpointCustomizations(codegenContext: ClientCodegenContext): List<EndpointCustomization> { if (!usesRegion(codegenContext)) { return listOf() Loading Loading @@ -221,19 +222,4 @@ class RegionConfigPlugin : OperationCustomization() { } } class PubUseRegion(private val runtimeConfig: RuntimeConfig) : LibRsCustomization() { override fun section(section: LibRsSection): Writable { return when (section) { is LibRsSection.Body -> writable { rust( "pub use #T::Region;", region(runtimeConfig), ) } else -> emptySection } } } fun region(runtimeConfig: RuntimeConfig) = AwsRuntimeType.awsTypes(runtimeConfig).resolve("region") aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/endpoints/AwsEndpointDecorator.kt +8 −25 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.endpoint.EndpointTypesGenerator import software.amazon.smithy.rust.codegen.client.smithy.endpoint.generators.EndpointsModule import software.amazon.smithy.rust.codegen.client.smithy.featureGatedConfigModule import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ConfigCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig import software.amazon.smithy.rust.codegen.core.rustlang.Attribute Loading @@ -27,12 +28,9 @@ 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 import software.amazon.smithy.rust.codegen.core.smithy.CodegenContext import software.amazon.smithy.rust.codegen.core.smithy.RuntimeConfig import software.amazon.smithy.rust.codegen.core.smithy.RustCrate import software.amazon.smithy.rust.codegen.core.smithy.customize.AdHocCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.adhocCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection import software.amazon.smithy.rust.codegen.core.util.extendIf import software.amazon.smithy.rust.codegen.core.util.letIf import software.amazon.smithy.rust.codegen.core.util.thenSingletonListOf Loading Loading @@ -91,14 +89,14 @@ class AwsEndpointDecorator : ClientCodegenDecorator { } } override fun libRsCustomizations( codegenContext: ClientCodegenContext, baseCustomizations: List<LibRsCustomization>, ): List<LibRsCustomization> { return baseCustomizations + PubUseEndpoint(codegenContext.runtimeConfig) override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { rustCrate.withModule(codegenContext.featureGatedConfigModule()) { rust( "pub use #T::endpoint::Endpoint;", CargoDependency.smithyHttp(codegenContext.runtimeConfig).toType(), ) } override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { val epTypes = EndpointTypesGenerator.fromContext(codegenContext) if (epTypes.defaultResolver() == null) { throw CodegenException( Loading Loading @@ -257,21 +255,6 @@ class AwsEndpointDecorator : ClientCodegenDecorator { } } } class PubUseEndpoint(private val runtimeConfig: RuntimeConfig) : LibRsCustomization() { override fun section(section: LibRsSection): Writable { return when (section) { is LibRsSection.Body -> writable { rust( "pub use #T::endpoint::Endpoint;", CargoDependency.smithyHttp(runtimeConfig).toType(), ) } else -> emptySection } } } } fun ClientCodegenContext.isRegionalized() = getBuiltIn(Builtins.REGION) != null Loading
aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/AwsFluentClientDecorator.kt +4 −3 Original line number Diff line number Diff line Loading @@ -9,8 +9,9 @@ import software.amazon.smithy.codegen.core.Symbol import software.amazon.smithy.model.shapes.ShapeId import software.amazon.smithy.model.traits.TitleTrait import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.ClientRustModule import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.generators.client.CustomizableOperationGenerator import software.amazon.smithy.rust.codegen.client.smithy.featureGatedCustomizeModule import software.amazon.smithy.rust.codegen.client.smithy.generators.client.FluentClientCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.client.FluentClientGenerator import software.amazon.smithy.rust.codegen.client.smithy.generators.client.FluentClientGenerics Loading Loading @@ -102,10 +103,10 @@ class AwsFluentClientDecorator : ClientCodegenDecorator { ), retryClassifier = AwsRuntimeType.awsHttp(runtimeConfig).resolve("retry::AwsResponseRetryClassifier"), ).render(rustCrate) rustCrate.withModule(CustomizableOperationGenerator.CustomizeModule) { rustCrate.withModule(codegenContext.featureGatedCustomizeModule()) { renderCustomizableOperationSendMethod(runtimeConfig, generics, this) } rustCrate.withModule(FluentClientGenerator.clientModule) { rustCrate.withModule(ClientRustModule.client) { AwsFluentClientExtensions(types).render(this) } val awsSmithyClient = "aws-smithy-client" Loading
aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/BaseRequestIdDecorator.kt +2 −2 Original line number Diff line number Diff line Loading @@ -7,10 +7,10 @@ package software.amazon.smithy.rustsdk import software.amazon.smithy.model.shapes.OperationShape import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.ClientRustModule import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.generators.error.ErrorCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.error.ErrorSection import software.amazon.smithy.rust.codegen.core.rustlang.RustModule import software.amazon.smithy.rust.codegen.core.rustlang.Writable import software.amazon.smithy.rust.codegen.core.rustlang.rust import software.amazon.smithy.rust.codegen.core.rustlang.rustBlock Loading Loading @@ -66,7 +66,7 @@ abstract class BaseRequestIdDecorator : ClientCodegenDecorator { ): List<BuilderCustomization> = baseCustomizations + listOf(RequestIdBuilderCustomization()) override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { rustCrate.withModule(RustModule.Types) { rustCrate.withModule(ClientRustModule.Types) { // Re-export RequestId in generated crate rust("pub use #T;", accessorTrait(codegenContext)) } Loading
aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/CredentialProviders.kt +8 −25 Original line number Diff line number Diff line Loading @@ -8,9 +8,9 @@ package software.amazon.smithy.rustsdk import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.customize.TestUtilFeature import software.amazon.smithy.rust.codegen.client.smithy.featureGatedConfigModule import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ConfigCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig import software.amazon.smithy.rust.codegen.core.rustlang.Writable 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 Loading @@ -19,8 +19,6 @@ import software.amazon.smithy.rust.codegen.core.smithy.RuntimeType import software.amazon.smithy.rust.codegen.core.smithy.RustCrate import software.amazon.smithy.rust.codegen.core.smithy.customize.AdHocCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.adhocCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection class CredentialsProviderDecorator : ClientCodegenDecorator { override val name: String = "CredentialsProvider" Loading @@ -33,13 +31,6 @@ class CredentialsProviderDecorator : ClientCodegenDecorator { return baseCustomizations + CredentialProviderConfig(codegenContext.runtimeConfig) } override fun libRsCustomizations( codegenContext: ClientCodegenContext, baseCustomizations: List<LibRsCustomization>, ): List<LibRsCustomization> { return baseCustomizations + PubUseCredentials(codegenContext.runtimeConfig) } override fun extraSections(codegenContext: ClientCodegenContext): List<AdHocCustomization> = listOf( adhocCustomization<SdkConfigSection.CopySdkConfigToClientConfig> { section -> Loading @@ -49,6 +40,13 @@ class CredentialsProviderDecorator : ClientCodegenDecorator { override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { rustCrate.mergeFeature(TestUtilFeature.copy(deps = listOf("aws-credential-types/test-util"))) rustCrate.withModule(codegenContext.featureGatedConfigModule()) { rust( "pub use #T::Credentials;", AwsRuntimeType.awsCredentialTypes(codegenContext.runtimeConfig), ) } } } Loading Loading @@ -95,20 +93,5 @@ class CredentialProviderConfig(runtimeConfig: RuntimeConfig) : ConfigCustomizati } } class PubUseCredentials(private val runtimeConfig: RuntimeConfig) : LibRsCustomization() { override fun section(section: LibRsSection): Writable { return when (section) { is LibRsSection.Body -> writable { rust( "pub use #T::Credentials;", AwsRuntimeType.awsCredentialTypes(runtimeConfig), ) } else -> emptySection } } } fun defaultProvider() = RuntimeType.forInlineDependency(InlineAwsDependency.forRustFile("no_credentials")).resolve("NoCredentials")
aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/RegionDecorator.kt +10 −24 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import software.amazon.smithy.rulesengine.language.syntax.parameters.Parameter import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.endpoint.EndpointCustomization import software.amazon.smithy.rust.codegen.client.smithy.featureGatedConfigModule import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ConfigCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig import software.amazon.smithy.rust.codegen.core.rustlang.Writable Loading @@ -20,12 +21,11 @@ import software.amazon.smithy.rust.codegen.core.rustlang.rustTemplate import software.amazon.smithy.rust.codegen.core.rustlang.writable import software.amazon.smithy.rust.codegen.core.smithy.CodegenContext import software.amazon.smithy.rust.codegen.core.smithy.RuntimeConfig import software.amazon.smithy.rust.codegen.core.smithy.RustCrate import software.amazon.smithy.rust.codegen.core.smithy.customize.AdHocCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.OperationCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.OperationSection import software.amazon.smithy.rust.codegen.core.smithy.customize.adhocCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection import software.amazon.smithy.rust.codegen.core.util.dq import software.amazon.smithy.rust.codegen.core.util.extendIf import software.amazon.smithy.rust.codegen.core.util.thenSingletonListOf Loading Loading @@ -101,13 +101,6 @@ class RegionDecorator : ClientCodegenDecorator { return baseCustomizations.extendIf(usesRegion(codegenContext)) { RegionConfigPlugin() } } override fun libRsCustomizations( codegenContext: ClientCodegenContext, baseCustomizations: List<LibRsCustomization>, ): List<LibRsCustomization> { return baseCustomizations.extendIf(usesRegion(codegenContext)) { PubUseRegion(codegenContext.runtimeConfig) } } override fun extraSections(codegenContext: ClientCodegenContext): List<AdHocCustomization> { return usesRegion(codegenContext).thenSingletonListOf { adhocCustomization<SdkConfigSection.CopySdkConfigToClientConfig> { section -> Loading @@ -121,6 +114,14 @@ class RegionDecorator : ClientCodegenDecorator { } } override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { if (usesRegion(codegenContext)) { rustCrate.withModule(codegenContext.featureGatedConfigModule()) { rust("pub use #T::Region;", region(codegenContext.runtimeConfig)) } } } override fun endpointCustomizations(codegenContext: ClientCodegenContext): List<EndpointCustomization> { if (!usesRegion(codegenContext)) { return listOf() Loading Loading @@ -221,19 +222,4 @@ class RegionConfigPlugin : OperationCustomization() { } } class PubUseRegion(private val runtimeConfig: RuntimeConfig) : LibRsCustomization() { override fun section(section: LibRsSection): Writable { return when (section) { is LibRsSection.Body -> writable { rust( "pub use #T::Region;", region(runtimeConfig), ) } else -> emptySection } } } fun region(runtimeConfig: RuntimeConfig) = AwsRuntimeType.awsTypes(runtimeConfig).resolve("region")
aws/sdk-codegen/src/main/kotlin/software/amazon/smithy/rustsdk/endpoints/AwsEndpointDecorator.kt +8 −25 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import software.amazon.smithy.rust.codegen.client.smithy.ClientCodegenContext import software.amazon.smithy.rust.codegen.client.smithy.customize.ClientCodegenDecorator import software.amazon.smithy.rust.codegen.client.smithy.endpoint.EndpointTypesGenerator import software.amazon.smithy.rust.codegen.client.smithy.endpoint.generators.EndpointsModule import software.amazon.smithy.rust.codegen.client.smithy.featureGatedConfigModule import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ConfigCustomization import software.amazon.smithy.rust.codegen.client.smithy.generators.config.ServiceConfig import software.amazon.smithy.rust.codegen.core.rustlang.Attribute Loading @@ -27,12 +28,9 @@ 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 import software.amazon.smithy.rust.codegen.core.smithy.CodegenContext import software.amazon.smithy.rust.codegen.core.smithy.RuntimeConfig import software.amazon.smithy.rust.codegen.core.smithy.RustCrate import software.amazon.smithy.rust.codegen.core.smithy.customize.AdHocCustomization import software.amazon.smithy.rust.codegen.core.smithy.customize.adhocCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsCustomization import software.amazon.smithy.rust.codegen.core.smithy.generators.LibRsSection import software.amazon.smithy.rust.codegen.core.util.extendIf import software.amazon.smithy.rust.codegen.core.util.letIf import software.amazon.smithy.rust.codegen.core.util.thenSingletonListOf Loading Loading @@ -91,14 +89,14 @@ class AwsEndpointDecorator : ClientCodegenDecorator { } } override fun libRsCustomizations( codegenContext: ClientCodegenContext, baseCustomizations: List<LibRsCustomization>, ): List<LibRsCustomization> { return baseCustomizations + PubUseEndpoint(codegenContext.runtimeConfig) override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { rustCrate.withModule(codegenContext.featureGatedConfigModule()) { rust( "pub use #T::endpoint::Endpoint;", CargoDependency.smithyHttp(codegenContext.runtimeConfig).toType(), ) } override fun extras(codegenContext: ClientCodegenContext, rustCrate: RustCrate) { val epTypes = EndpointTypesGenerator.fromContext(codegenContext) if (epTypes.defaultResolver() == null) { throw CodegenException( Loading Loading @@ -257,21 +255,6 @@ class AwsEndpointDecorator : ClientCodegenDecorator { } } } class PubUseEndpoint(private val runtimeConfig: RuntimeConfig) : LibRsCustomization() { override fun section(section: LibRsSection): Writable { return when (section) { is LibRsSection.Body -> writable { rust( "pub use #T::endpoint::Endpoint;", CargoDependency.smithyHttp(runtimeConfig).toType(), ) } else -> emptySection } } } } fun ClientCodegenContext.isRegionalized() = getBuiltIn(Builtins.REGION) != null