Loading codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCodegenVisitor.kt +1 −1 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ class ServerCodegenVisitor(context: PluginContext, private val codegenDecorator: override fun structureShape(shape: StructureShape) { logger.info("[rust-server-codegen] Generating a structure $shape") rustCrate.useShapeWriter(shape) { writer -> StructureGenerator(model, symbolProvider, writer, shape).render() StructureGenerator(model, symbolProvider, writer, shape).renderServer() val builderGenerator = BuilderGenerator(codegenContext.model, codegenContext.symbolProvider, shape) builderGenerator.render(writer) Loading codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerRuntimeTypes.kt→codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerRuntimeType.kt +0 −0 File moved. View file codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerCombinedErrorGenerator.kt +7 −1 Original line number Diff line number Diff line Loading @@ -68,12 +68,18 @@ class ServerCombinedErrorGenerator( rust("matches!(&self, ${symbol.name}::${errorSymbol.name}(_))") } } writer.rust("/// Returns the error name string by matching the correct variant.") writer.rustBlock("pub fn name(&self) -> &'static str") { delegateToVariants { rust("_inner.name()") } } } writer.rustBlock("impl #T for ${symbol.name}", RuntimeType.StdError) { rustBlock("fn source(&self) -> Option<&(dyn #T + 'static)>", RuntimeType.StdError) { delegateToVariants { rust("Some(_inner)"); rust("Some(_inner)") } } } Loading codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerOperationHandlerGenerator.kt +9 −2 Original line number Diff line number Diff line Loading @@ -66,6 +66,13 @@ class ServerOperationHandlerGenerator( } else { "impl<B, Fun, Fut> #{ServerOperationHandler}::Handler<B, (), $inputName> for Fun" } val storeErrorInExtensions = """{ let error = aws_smithy_http_server::ExtensionRejection::new(r.to_string()); let mut response = r.into_response(); response.extensions_mut().insert(error); return response.map($serverCrate::boxed); } """.trimIndent() writer.rustBlockTemplate( """ ##[#{AsyncTrait}::async_trait] Loading @@ -78,7 +85,7 @@ class ServerOperationHandlerGenerator( val callImpl = if (state) { """let state = match $serverCrate::Extension::<S>::from_request(&mut req).await { Ok(v) => v, Err(r) => return r.into_response().map($serverCrate::boxed) Err(r) => $storeErrorInExtensions }; let input_inner = input_wrapper.into(); let output_inner = self(input_inner, state).await;""" Loading @@ -95,7 +102,7 @@ class ServerOperationHandlerGenerator( use #{AxumCore}::response::IntoResponse; let input_wrapper = match $inputWrapperName::from_request(&mut req).await { Ok(v) => v, Err(r) => return r.into_response().map(#{SmithyHttpServer}::boxed) Err(r) => $storeErrorInExtensions }; $callImpl let output_wrapper: $outputWrapperName = output_inner.into(); Loading codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerOperationRegistryGeneration.kt→codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerOperationRegistryGenerator.kt +0 −0 File moved. View file Loading
codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerCodegenVisitor.kt +1 −1 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ class ServerCodegenVisitor(context: PluginContext, private val codegenDecorator: override fun structureShape(shape: StructureShape) { logger.info("[rust-server-codegen] Generating a structure $shape") rustCrate.useShapeWriter(shape) { writer -> StructureGenerator(model, symbolProvider, writer, shape).render() StructureGenerator(model, symbolProvider, writer, shape).renderServer() val builderGenerator = BuilderGenerator(codegenContext.model, codegenContext.symbolProvider, shape) builderGenerator.render(writer) Loading
codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerRuntimeTypes.kt→codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/ServerRuntimeType.kt +0 −0 File moved. View file
codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerCombinedErrorGenerator.kt +7 −1 Original line number Diff line number Diff line Loading @@ -68,12 +68,18 @@ class ServerCombinedErrorGenerator( rust("matches!(&self, ${symbol.name}::${errorSymbol.name}(_))") } } writer.rust("/// Returns the error name string by matching the correct variant.") writer.rustBlock("pub fn name(&self) -> &'static str") { delegateToVariants { rust("_inner.name()") } } } writer.rustBlock("impl #T for ${symbol.name}", RuntimeType.StdError) { rustBlock("fn source(&self) -> Option<&(dyn #T + 'static)>", RuntimeType.StdError) { delegateToVariants { rust("Some(_inner)"); rust("Some(_inner)") } } } Loading
codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerOperationHandlerGenerator.kt +9 −2 Original line number Diff line number Diff line Loading @@ -66,6 +66,13 @@ class ServerOperationHandlerGenerator( } else { "impl<B, Fun, Fut> #{ServerOperationHandler}::Handler<B, (), $inputName> for Fun" } val storeErrorInExtensions = """{ let error = aws_smithy_http_server::ExtensionRejection::new(r.to_string()); let mut response = r.into_response(); response.extensions_mut().insert(error); return response.map($serverCrate::boxed); } """.trimIndent() writer.rustBlockTemplate( """ ##[#{AsyncTrait}::async_trait] Loading @@ -78,7 +85,7 @@ class ServerOperationHandlerGenerator( val callImpl = if (state) { """let state = match $serverCrate::Extension::<S>::from_request(&mut req).await { Ok(v) => v, Err(r) => return r.into_response().map($serverCrate::boxed) Err(r) => $storeErrorInExtensions }; let input_inner = input_wrapper.into(); let output_inner = self(input_inner, state).await;""" Loading @@ -95,7 +102,7 @@ class ServerOperationHandlerGenerator( use #{AxumCore}::response::IntoResponse; let input_wrapper = match $inputWrapperName::from_request(&mut req).await { Ok(v) => v, Err(r) => return r.into_response().map(#{SmithyHttpServer}::boxed) Err(r) => $storeErrorInExtensions }; $callImpl let output_wrapper: $outputWrapperName = output_inner.into(); Loading
codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerOperationRegistryGeneration.kt→codegen-server/src/main/kotlin/software/amazon/smithy/rust/codegen/server/smithy/generators/ServerOperationRegistryGenerator.kt +0 −0 File moved. View file