Unverified Commit 8a79ba50 authored by 82marbag's avatar 82marbag Committed by GitHub
Browse files

Remove CodegenMode, use CodegenTarget (#1414)



* Remove CodegenMode, use CodegenTarget

Closes: #1413

Signed-off-by: default avatarDaniele Ahmed <ahmeddan@amazon.de>
parent e5777665
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import software.amazon.smithy.rust.codegen.server.smithy.generators.ServerEnumGe
import software.amazon.smithy.rust.codegen.server.smithy.generators.ServerServiceGenerator
import software.amazon.smithy.rust.codegen.server.smithy.protocols.ServerProtocolLoader
import software.amazon.smithy.rust.codegen.smithy.CodegenContext
import software.amazon.smithy.rust.codegen.smithy.CodegenMode
import software.amazon.smithy.rust.codegen.smithy.DefaultPublicModules
import software.amazon.smithy.rust.codegen.smithy.RustCrate
import software.amazon.smithy.rust.codegen.smithy.RustSettings
@@ -86,7 +85,7 @@ class ServerCodegenVisitor(context: PluginContext, private val codegenDecorator:
        symbolProvider =
            codegenDecorator.symbolProvider(generator.symbolProvider(model, baseProvider))

        codegenContext = CodegenContext(model, symbolProvider, service, protocol, settings, mode = CodegenMode.Server)
        codegenContext = CodegenContext(model, symbolProvider, service, protocol, settings, target = CodegenTarget.SERVER)

        rustCrate = RustCrate(context.fileManifest, symbolProvider, DefaultPublicModules, settings.codegenConfig)
        protocolGenerator = protocolGeneratorFactory.buildProtocolGenerator(codegenContext)
+2 −2
Original line number Diff line number Diff line
@@ -12,10 +12,10 @@ import software.amazon.smithy.rust.codegen.rustlang.rust
import software.amazon.smithy.rust.codegen.rustlang.rustBlock
import software.amazon.smithy.rust.codegen.rustlang.rustTemplate
import software.amazon.smithy.rust.codegen.server.smithy.ServerRuntimeType
import software.amazon.smithy.rust.codegen.smithy.CodegenMode
import software.amazon.smithy.rust.codegen.smithy.RuntimeConfig
import software.amazon.smithy.rust.codegen.smithy.RuntimeType
import software.amazon.smithy.rust.codegen.smithy.RustSymbolProvider
import software.amazon.smithy.rust.codegen.smithy.generators.CodegenTarget
import software.amazon.smithy.rust.codegen.smithy.generators.EnumGenerator
import software.amazon.smithy.rust.codegen.util.dq

@@ -27,7 +27,7 @@ class ServerEnumGenerator(
    enumTrait: EnumTrait,
    private val runtimeConfig: RuntimeConfig,
) : EnumGenerator(model, symbolProvider, writer, shape, enumTrait) {
    override var mode: CodegenMode = CodegenMode.Server
    override var target: CodegenTarget = CodegenTarget.SERVER
    private val errorStruct = "${enumName}UnknownVariantError"

    override fun renderFromForStr() {
+2 −2
Original line number Diff line number Diff line
@@ -34,8 +34,8 @@ import software.amazon.smithy.rust.codegen.rustlang.withBlock
import software.amazon.smithy.rust.codegen.server.smithy.ServerCargoDependency
import software.amazon.smithy.rust.codegen.server.smithy.protocols.ServerHttpBoundProtocolGenerator
import software.amazon.smithy.rust.codegen.smithy.CodegenContext
import software.amazon.smithy.rust.codegen.smithy.CodegenMode
import software.amazon.smithy.rust.codegen.smithy.RuntimeType
import software.amazon.smithy.rust.codegen.smithy.generators.CodegenTarget
import software.amazon.smithy.rust.codegen.smithy.generators.Instantiator
import software.amazon.smithy.rust.codegen.smithy.generators.protocol.ProtocolSupport
import software.amazon.smithy.rust.codegen.testutil.TokioTest
@@ -72,7 +72,7 @@ class ServerProtocolTestGenerator(
    private val operationErrorName = "crate::error::${operationSymbol.name}Error"

    private val instantiator = with(codegenContext) {
        Instantiator(symbolProvider, model, runtimeConfig, CodegenMode.Server)
        Instantiator(symbolProvider, model, runtimeConfig, CodegenTarget.SERVER)
    }

    private val codegenScope = arrayOf(
+4 −11
Original line number Diff line number Diff line
@@ -8,14 +8,7 @@ package software.amazon.smithy.rust.codegen.smithy
import software.amazon.smithy.model.Model
import software.amazon.smithy.model.shapes.ServiceShape
import software.amazon.smithy.model.shapes.ShapeId

/**
 * Code generation mode: In some situations, codegen has different behavior for client vs. server (eg. required fields)
 */
sealed class CodegenMode {
    object Server : CodegenMode()
    object Client : CodegenMode()
}
import software.amazon.smithy.rust.codegen.smithy.generators.CodegenTarget

/**
 * Configuration needed to generate the client for a given Service<->Protocol pair
@@ -52,7 +45,7 @@ data class CodegenContext(
     *
     * Some settings are dependent on whether server vs. client codegen is being invoked.
     */
    val mode: CodegenMode,
    val target: CodegenTarget,
) {
    constructor(
        model: Model,
@@ -60,8 +53,8 @@ data class CodegenContext(
        serviceShape: ServiceShape,
        protocol: ShapeId,
        settings: RustSettings,
        mode: CodegenMode,
    ) : this(model, symbolProvider, settings.runtimeConfig, serviceShape, protocol, settings, mode)
        target: CodegenTarget,
    ) : this(model, symbolProvider, settings.runtimeConfig, serviceShape, protocol, settings, target)

    /**
     * The name of the cargo crate to generate e.g. `aws-sdk-s3`
+2 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import software.amazon.smithy.model.traits.EnumTrait
import software.amazon.smithy.model.transform.ModelTransformer
import software.amazon.smithy.rust.codegen.smithy.customize.RustCodegenDecorator
import software.amazon.smithy.rust.codegen.smithy.generators.BuilderGenerator
import software.amazon.smithy.rust.codegen.smithy.generators.CodegenTarget
import software.amazon.smithy.rust.codegen.smithy.generators.EnumGenerator
import software.amazon.smithy.rust.codegen.smithy.generators.ServiceGenerator
import software.amazon.smithy.rust.codegen.smithy.generators.StructureGenerator
@@ -68,7 +69,7 @@ class CodegenVisitor(context: PluginContext, private val codegenDecorator: RustC
        val baseProvider = RustCodegenPlugin.baseSymbolProvider(model, service, symbolVisitorConfig)
        symbolProvider = codegenDecorator.symbolProvider(generator.symbolProvider(model, baseProvider))

        codegenContext = CodegenContext(model, symbolProvider, service, protocol, settings, mode = CodegenMode.Client)
        codegenContext = CodegenContext(model, symbolProvider, service, protocol, settings, target = CodegenTarget.CLIENT)
        rustCrate = RustCrate(
            context.fileManifest,
            symbolProvider,
Loading