@@ -16,11 +16,11 @@ import software.amazon.smithy.model.shapes.IntegerShape
16
16
import software.amazon.smithy.model.shapes.ListShape
17
17
import software.amazon.smithy.model.shapes.LongShape
18
18
import software.amazon.smithy.model.shapes.MapShape
19
+ import software.amazon.smithy.model.shapes.NumberShape
19
20
import software.amazon.smithy.model.shapes.OperationShape
20
21
import software.amazon.smithy.model.shapes.ServiceShape
21
22
import software.amazon.smithy.model.shapes.SetShape
22
23
import software.amazon.smithy.model.shapes.Shape
23
- import software.amazon.smithy.model.shapes.ShapeId
24
24
import software.amazon.smithy.model.shapes.ShapeVisitor
25
25
import software.amazon.smithy.model.shapes.ShortShape
26
26
import software.amazon.smithy.model.shapes.StringShape
@@ -63,7 +63,6 @@ import software.amazon.smithy.rust.codegen.server.smithy.generators.ConstrainedM
63
63
import software.amazon.smithy.rust.codegen.server.smithy.generators.ConstrainedNumberGenerator
64
64
import software.amazon.smithy.rust.codegen.server.smithy.generators.ConstrainedStringGenerator
65
65
import software.amazon.smithy.rust.codegen.server.smithy.generators.ConstrainedTraitForEnumGenerator
66
- import software.amazon.smithy.rust.codegen.server.smithy.generators.ValidationExceptionConversionGenerator
67
66
import software.amazon.smithy.rust.codegen.server.smithy.generators.MapConstraintViolationGenerator
68
67
import software.amazon.smithy.rust.codegen.server.smithy.generators.PubCrateConstrainedCollectionGenerator
69
68
import software.amazon.smithy.rust.codegen.server.smithy.generators.PubCrateConstrainedMapGenerator
@@ -76,6 +75,7 @@ import software.amazon.smithy.rust.codegen.server.smithy.generators.ServerStruct
76
75
import software.amazon.smithy.rust.codegen.server.smithy.generators.UnconstrainedCollectionGenerator
77
76
import software.amazon.smithy.rust.codegen.server.smithy.generators.UnconstrainedMapGenerator
78
77
import software.amazon.smithy.rust.codegen.server.smithy.generators.UnconstrainedUnionGenerator
78
+ import software.amazon.smithy.rust.codegen.server.smithy.generators.ValidationExceptionConversionGenerator
79
79
import software.amazon.smithy.rust.codegen.server.smithy.generators.protocol.ServerProtocol
80
80
import software.amazon.smithy.rust.codegen.server.smithy.generators.protocol.ServerProtocolGenerator
81
81
import software.amazon.smithy.rust.codegen.server.smithy.protocols.ServerProtocolLoader
@@ -342,7 +342,13 @@ open class ServerCodegenVisitor(
342
342
343
343
if (isDirectlyConstrained || renderUnconstrainedList) {
344
344
rustCrate.withModule(ModelsModule ) {
345
- CollectionConstraintViolationGenerator (codegenContext, this , shape, constraintsInfo).render()
345
+ CollectionConstraintViolationGenerator (
346
+ codegenContext,
347
+ this ,
348
+ shape,
349
+ constraintsInfo,
350
+ validationExceptionConversionGenerator,
351
+ ).render()
346
352
}
347
353
}
348
354
}
@@ -382,7 +388,12 @@ open class ServerCodegenVisitor(
382
388
383
389
if (isDirectlyConstrained || renderUnconstrainedMap) {
384
390
rustCrate.withModule(ModelsModule ) {
385
- MapConstraintViolationGenerator (codegenContext, this , shape).render()
391
+ MapConstraintViolationGenerator (
392
+ codegenContext,
393
+ this ,
394
+ shape,
395
+ validationExceptionConversionGenerator,
396
+ ).render()
386
397
}
387
398
}
388
399
}
@@ -394,42 +405,19 @@ open class ServerCodegenVisitor(
394
405
*/
395
406
override fun stringShape (shape : StringShape ) {
396
407
fun serverEnumGeneratorFactory (codegenContext : ServerCodegenContext , writer : RustWriter , shape : StringShape ) =
397
- ServerEnumGenerator (codegenContext, writer, shape)
408
+ ServerEnumGenerator (codegenContext, writer, shape, validationExceptionConversionGenerator )
398
409
stringShape(shape, ::serverEnumGeneratorFactory)
399
410
}
400
411
401
- override fun integerShape (shape : IntegerShape ) {
402
- if (shape.isDirectlyConstrained(codegenContext.symbolProvider)) {
403
- logger.info(" [rust-server-codegen] Generating a constrained integer $shape " )
404
- rustCrate.withModule(ModelsModule ) {
405
- ConstrainedNumberGenerator (codegenContext, this , shape).render()
406
- }
407
- }
408
- }
409
-
410
- override fun shortShape (shape : ShortShape ) {
411
- if (shape.isDirectlyConstrained(codegenContext.symbolProvider)) {
412
- logger.info(" [rust-server-codegen] Generating a constrained short $shape " )
413
- rustCrate.withModule(ModelsModule ) {
414
- ConstrainedNumberGenerator (codegenContext, this , shape).render()
415
- }
416
- }
417
- }
418
-
419
- override fun longShape (shape : LongShape ) {
420
- if (shape.isDirectlyConstrained(codegenContext.symbolProvider)) {
421
- logger.info(" [rust-server-codegen] Generating a constrained long $shape " )
422
- rustCrate.withModule(ModelsModule ) {
423
- ConstrainedNumberGenerator (codegenContext, this , shape).render()
424
- }
425
- }
426
- }
427
-
428
- override fun byteShape (shape : ByteShape ) {
412
+ override fun integerShape (shape : IntegerShape ) = integralShape(shape)
413
+ override fun shortShape (shape : ShortShape ) = integralShape(shape)
414
+ override fun longShape (shape : LongShape ) = integralShape(shape)
415
+ override fun byteShape (shape : ByteShape ) = integralShape(shape)
416
+ private fun integralShape (shape : NumberShape ) {
429
417
if (shape.isDirectlyConstrained(codegenContext.symbolProvider)) {
430
- logger.info(" [rust-server-codegen] Generating a constrained byte $shape " )
418
+ logger.info(" [rust-server-codegen] Generating a constrained integral $shape " )
431
419
rustCrate.withModule(ModelsModule ) {
432
- ConstrainedNumberGenerator (codegenContext, this , shape).render()
420
+ ConstrainedNumberGenerator (codegenContext, this , shape, validationExceptionConversionGenerator ).render()
433
421
}
434
422
}
435
423
}
@@ -552,7 +540,7 @@ open class ServerCodegenVisitor(
552
540
553
541
if (shape.isDirectlyConstrained(codegenContext.symbolProvider)) {
554
542
rustCrate.withModule(ModelsModule ) {
555
- ConstrainedBlobGenerator (codegenContext, this , shape).render()
543
+ ConstrainedBlobGenerator (codegenContext, this , shape, validationExceptionConversionGenerator ).render()
556
544
}
557
545
}
558
546
}
0 commit comments